Partner Multilang

Automatic transliteration and multi-language support for partners, companies, and addresses

This module extends the functionality of multilingual names to support automatic transliteration (ISO 9, ΕΛΟΤ 743) and provides easy field translations for partners, companies, and addresses. Perfect for Cyrillic, Greek, and other non-Latin scripts.

Key Features

Automatic Transliteration

Automatically detects language and transliterates names from Cyrillic, Greek, and other scripts to Latin using lingua and transliterate libraries

Multi-Language Search

Search partners in any language - finds records using original or transliterated names with JSONB translation support

Smart Sorting

List and Kanban views automatically sort by user's language for proper alphabetical ordering

Supported Languages

Bulgarian (bg)

ISO 9 standard

Russian (ru)

ISO 9 standard

Serbian (sr)

Cyrillic to Latin

Macedonian (mk)

Cyrillic to Latin

Ukrainian (uk)

Cyrillic to Latin

Belarusian (be)

Cyrillic to Latin

Auto-detection: The module automatically detects the input language using the Lingua library (primary) and langdetect (fallback).

Use Cases / Context

Legal Requirements

Countries using Cyrillic letters (Bulgaria, Russia, Serbia, Macedonia, Ukraine) have legal requirements for transliteration to Latin in official documents.

Sorting Problems

Non-Latin scripts create sorting issues in list and kanban views. For example, Cyrillic "Г" and Latin "G" are positioned differently, leading to confusion.

International Business

Companies working internationally need partner names displayed in multiple scripts for better communication and document management.

Configuration

Step 1

Install the module from Apps menu

Step 2

Go to Settings → Translations → Languages

Step 3

Enable "Transliterate" checkbox for desired languages

Step 4

Start creating partners - transliteration is automatic!

Technical Details

Transliterated Fields

  • Partners: name, street, street2, city, function, company_name, commercial_company_name
  • Companies: name, street, street2, city
  • Country States: name

Dependencies

  • transliterate - Language-specific transliteration
  • unidecode - Universal Unicode to ASCII
  • lingua - Accurate language detection
These packages are automatically installed via pip when you install the module.

Usage Examples

Example 1: Bulgarian Partner
  1. Set language to Bulgarian (bg_BG)
  2. Enable "Transliterate" for Bulgarian
  3. Create partner: "Росен Владимиров"
  4. Auto-generated English: "Rosen Vladimirov"
Example 2: Multi-Language Search

Search for partners using either script:

  • Search "Росен" → finds partner
  • Search "Rosen" → finds same partner
  • Works with all active languages
Example 3: Automatic Sorting

Partners sorted by user language:

  • Bulgarian view: "Анна, Борис, Георги"
  • English view: "Anna, Boris, Georgi"
  • Proper alphabetical order in both

Extend to Custom Models

Easy to add transliteration support to your custom models:

from odoo import api, fields, models

class CustomModel(models.Model):
    _inherit = ['your.model', 'res.transliterate.mixin']
    _name = "your.model"
    
    name = fields.Char(translate=True)
    description = fields.Char(translate=True)
    
    @api.model
    def _get_transliterate_fields(self):
        res = super()._get_transliterate_fields()
        return res + ['name', 'description']

Roadmap

Short-term
  • l10n_bg_multilan: ISO 9 and Bulgarian law compliance
  • l10n_gr_multilan: ΕΛΟΤ 743 Greek standard
Long-term
  • Arabic, Hebrew, Armenian, Georgian support
  • Performance optimizations and caching
  • Product names and document integration

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smash it by providing a detailed and welcomed feedback.

Note: Do not contact contributors directly about support or help with technical issues.

Credits

The team behind Partner Multilang

Rosen Vladimirov
Rosen Vladimirov

Author & Maintainer

vladimirov.rosen@gmail.com

OCA
Odoo Community Association

Project Maintainer

Supporting collaborative development

Financial Support

The development of this module has been financially supported by:

BioPrint Ltd.

This module is part of the OCA/partner-contact project on GitHub.

You are welcome to contribute. To learn how, please visit https://odoo-community.org/page/Contribute.