Source code for

# -*- coding: utf-8 -*-
"""Windows languages helper."""

[docs] class WindowsLanguageHelper(object): """Windows languages helper.""" _TAG_PER_LCID = { 0x0036: 'af', 0x0436: 'af-ZA', 0x005e: 'am', 0x045e: 'am-ET', 0x0001: 'ar', 0x3801: 'ar-AE', 0x3c01: 'ar-BH', 0x1401: 'ar-DZ', 0x0c01: 'ar-EG', 0x0801: 'ar-IQ', 0x2c01: 'ar-JO', 0x3401: 'ar-KW', 0x3001: 'ar-LB', 0x1001: 'ar-LY', 0x1801: 'ar-MA', 0x007a: 'arn', 0x047a: 'arn-CL', 0x2001: 'ar-OM', 0x4001: 'ar-QA', 0x0401: 'ar-SA', 0x2801: 'ar-SY', 0x1c01: 'ar-TN', 0x2401: 'ar-YE', 0x004d: 'as', 0x044d: 'as-IN', 0x002c: 'az', 0x742c: 'az-Cyrl', 0x082c: 'az-Cyrl-AZ', 0x782c: 'az-Latn', 0x042c: 'az-Latn-AZ', 0x006d: 'ba', 0x046d: 'ba-RU', 0x0023: 'be', 0x0423: 'be-BY', 0x0002: 'bg', 0x0402: 'bg-BG', 0x0466: 'bin-NG', 0x0045: 'bn', 0x0845: 'bn-BD', 0x0445: 'bn-IN', 0x0051: 'bo', 0x0851: 'bo-BT', 0x0451: 'bo-CN', 0x007e: 'br', 0x047e: 'br-FR', 0x781a: 'bs', 0x641a: 'bs-Cyrl', 0x201a: 'bs-Cyrl-BA', 0x681a: 'bs-Latn', 0x141a: 'bs-Latn-BA', 0x0003: 'ca', 0x0403: 'ca-ES', 0x045c: 'chr-US', 0x0083: 'co', 0x0483: 'co-FR', 0x0005: 'cs', 0x0405: 'cs-CZ', 0x0052: 'cy', 0x0452: 'cy-GB', 0x0006: 'da', 0x0406: 'da-DK', 0x0007: 'de', 0x0c07: 'de-AT', 0x0807: 'de-CH', 0x0407: 'de-DE', 0x1407: 'de-LI', 0x1007: 'de-LU', 0x7c2e: 'dsb', 0x082e: 'dsb-DE', 0x0065: 'dv', 0x0465: 'dv-MV', 0x0008: 'el', 0x0408: 'el-GR', 0x0009: 'en', 0x0c09: 'en-AU', 0x2809: 'en-BZ', 0x1009: 'en-CA', 0x2409: 'en-CB', 0x0809: 'en-GB', 0x3c09: 'en-HK', 0x3809: 'en-ID', 0x1809: 'en-IE', 0x4009: 'en-IN', 0x2009: 'en-JM', 0x4409: 'en-MY', 0x1409: 'en-NZ', 0x3409: 'en-PH', 0x4809: 'en-SG', 0x2c09: 'en-TT', 0x0409: 'en-US', 0x1c09: 'en-ZA', 0x3009: 'en-ZW', 0x000a: 'es', 0x2c0a: 'es-AR', 0x400a: 'es-BO', 0x340a: 'es-CL', 0x240a: 'es-CO', 0x140a: 'es-CR', 0x1c0a: 'es-DO', 0x300a: 'es-EC', 0x0c0a: 'es-ES', 0x040a: 'es-ES_tradnl', 0x100a: 'es-GT', 0x480a: 'es-HN', 0x080a: 'es-MX', 0x4c0a: 'es-NI', 0x180a: 'es-PA', 0x280a: 'es-PE', 0x500a: 'es-PR', 0x3c0a: 'es-PY', 0x440a: 'es-SV', 0x540a: 'es-US', 0x380a: 'es-UY', 0x200a: 'es-VE', 0x0025: 'et', 0x0425: 'et-EE', 0x002d: 'eu', 0x042d: 'eu-ES', 0x0029: 'fa', 0x0429: 'fa-IR', 0x000b: 'fi', 0x040b: 'fi-FI', 0x0064: 'fil', 0x0464: 'fil-PH', 0x0038: 'fo', 0x0438: 'fo-FO', 0x000c: 'fr', 0x080c: 'fr-BE', 0x0c0c: 'fr-CA', 0x240c: 'fr-CG', 0x100c: 'fr-CH', 0x300c: 'fr-CI', 0x2c0c: 'fr-CM', 0x040c: 'fr-FR', 0x3c0c: 'fr-HT', 0x140c: 'fr-LU', 0x380c: 'fr-MA', 0x180c: 'fr-MC', 0x340c: 'fr-ML', 0x200c: 'fr-RE', 0x280c: 'fr-SN', 0x1c0c: 'fr-West', 0x0467: 'fuv-NG', 0x0062: 'fy', 0x0462: 'fy-NL', 0x003c: 'ga', 0x083c: 'ga-IE', 0x0472: 'gaz-ET', 0x0091: 'gd', 0x0491: 'gd-GB', 0x0056: 'gl', 0x0456: 'gl-ES', 0x0474: 'gn-PY', 0x0084: 'gsw', 0x0484: 'gsw-FR', 0x0047: 'gu', 0x0447: 'gu-IN', 0x0068: 'ha', 0x7c68: 'ha-Latn', 0x0468: 'ha-Latn-NG', 0x0475: 'haw-US', 0x000d: 'he', 0x040d: 'he-IL', 0x0039: 'hi', 0x0439: 'hi-IN', 0x001a: 'hr', 0x101a: 'hr-BA', 0x041a: 'hr-HR', 0x002e: 'hsb', 0x000e: 'hu', 0x040e: 'hu-HU', 0x002b: 'hy', 0x042b: 'hy-AM', 0x0469: 'ibb-NG', 0x0021: 'id', 0x0421: 'id-ID', 0x0070: 'ig', 0x0470: 'ig-NG', 0x0078: 'ii', 0x0478: 'ii-CN', 0x000f: 'is', 0x040f: 'is-IS', 0x0010: 'it', 0x0810: 'it-CH', 0x0410: 'it-IT', 0x005d: 'iu', 0x785d: 'iu-Cans', 0x045d: 'iu-Cans-CA', 0x7c5d: 'iu-Latn', 0x085d: 'iu-Latn-CA', 0x0011: 'ja', 0x0411: 'ja-JP', 0x0037: 'ka', 0x0437: 'ka-GE', 0x003f: 'kk', 0x043f: 'kk-KZ', 0x006f: 'kl', 0x046f: 'kl-GL', 0x0053: 'km', 0x0453: 'km-KH', 0x004b: 'kn', 0x044b: 'kn-IN', 0x0012: 'ko', 0x0057: 'kok', 0x0457: 'kok-IN', 0x0412: 'ko-KR', 0x0471: 'kr-NG', 0x0040: 'ky', 0x0440: 'ky-KG', 0x006e: 'lb', 0x046e: 'lb-LU', 0x0054: 'lo', 0x0454: 'lo-LA', 0x0027: 'lt', 0x0427: 'lt-LT', 0x0026: 'lv', 0x0426: 'lv-LV', 0x0081: 'mi', 0x0481: 'mi-NZ', 0x002f: 'mk', 0x042f: 'mk-MK', 0x004c: 'ml', 0x044c: 'ml-IN', 0x0050: 'mn', 0x7850: 'mn-Cyrl', 0x0458: 'mni', 0x0450: 'mn-MN', 0x7c50: 'mn-Mong', 0x0850: 'mn-Mong-CN', 0x007c: 'moh', 0x047c: 'moh-CA', 0x004e: 'mr', 0x044e: 'mr-IN', 0x003e: 'ms', 0x083e: 'ms-BN', 0x043e: 'ms-MY', 0x003a: 'mt', 0x043a: 'mt-MT', 0x0455: 'my-MM', 0x7c14: 'nb', 0x0414: 'nb-NO', 0x0061: 'ne', 0x0861: 'ne-IN', 0x0461: 'ne-NP', 0x0013: 'nl', 0x0813: 'nl-BE', 0x0413: 'nl-NL', 0x7814: 'nn', 0x0814: 'nn-NO', 0x0014: 'no', 0x006c: 'nso', 0x046c: 'nso-ZA', 0x0082: 'oc', 0x0482: 'oc-FR', 0x0048: 'or', 0x0448: 'or-IN', 0x0046: 'pa', 0x0446: 'pa-IN', 0x0479: 'pap-AN', 0x0846: 'pa-PK', 0x0015: 'pl', 0x0415: 'pl-PL', 0x048d: 'plt-MG', 0x008c: 'prs', 0x048c: 'prs-AF', 0x0063: 'ps', 0x0463: 'ps-AF', 0x0016: 'pt', 0x0416: 'pt-BR', 0x0816: 'pt-PT', 0x0086: 'qut', 0x0486: 'qut-GT', 0x006b: 'quz', 0x046b: 'quz-BO', 0x086b: 'quz-EC', 0x0c6b: 'quz-PE', 0x0017: 'rm', 0x0417: 'rm-CH', 0x0018: 'ro', 0x0818: 'ro-MO', 0x0418: 'ro-RO', 0x0019: 'ru', 0x0819: 'ru-MO', 0x0419: 'ru-RU', 0x0087: 'rw', 0x0487: 'rw-RW', 0x004f: 'sa', 0x0085: 'sah', 0x0485: 'sah-RU', 0x044f: 'sa-IN', 0x0459: 'sd-IN', 0x0859: 'sd-PK', 0x003b: 'se', 0x0c3b: 'se-FI', 0x043b: 'se-NO', 0x083b: 'se-SE', 0x005b: 'si', 0x045b: 'si-LK', 0x001b: 'sk', 0x041b: 'sk-SK', 0x0024: 'sl', 0x0424: 'sl-SI', 0x783b: 'sma', 0x183b: 'sma-NO', 0x1c3b: 'sma-SE', 0x7c3b: 'smj', 0x103b: 'smj-NO', 0x143b: 'smj-SE', 0x703b: 'smn', 0x243b: 'smn-FI', 0x743b: 'sms', 0x203b: 'sms-FI', 0x0477: 'so-SO', 0x001c: 'sq', 0x041c: 'sq-AL', 0x7c1a: 'sr', 0x6c1a: 'sr-Cyrl', 0x1c1a: 'sr-Cyrl-BA', 0x0c1a: 'sr-Cyrl-CS', 0x301a: 'sr-Cyrl-ME', 0x281a: 'sr-Cyrl-RS', 0x701a: 'sr-Latn', 0x181a: 'sr-Latn-BA', 0x081a: 'sr-Latn-CS', 0x2c1a: 'sr-Latn-ME', 0x241a: 'sr-Latn-RS', 0x0430: 'st-ZA', 0x001d: 'sv', 0x081d: 'sv-FI', 0x041d: 'sv-SE', 0x0041: 'sw', 0x0441: 'sw-KE', 0x005a: 'syr', 0x045a: 'syr-SY', 0x0049: 'ta', 0x0449: 'ta-IN', 0x004a: 'te', 0x044a: 'te-IN', 0x0028: 'tg', 0x7c28: 'tg-Cyrl', 0x0428: 'tg-Cyrl-TJ', 0x001e: 'th', 0x041e: 'th-TH', 0x0473: 'ti-ER', 0x0873: 'ti-ET', 0x0042: 'tk', 0x0442: 'tk-TM', 0x045f: 'tmz', 0x0c5f: 'tmz-MA', 0x0032: 'tn', 0x0432: 'tn-ZA', 0x001f: 'tr', 0x041f: 'tr-TR', 0x0431: 'ts-ZA', 0x0044: 'tt', 0x0444: 'tt-RU', 0x005f: 'tzm', 0x7c5f: 'tzm-Latn', 0x085f: 'tzm-Latn-DZ', 0x0080: 'ug', 0x0480: 'ug-CN', 0x0022: 'uk', 0x0422: 'uk-UA', 0x0020: 'ur', 0x0820: 'ur-IN', 0x0420: 'ur-PK', 0x0043: 'uz', 0x7843: 'uz-Cyrl', 0x0843: 'uz-Cyrl-UZ', 0x7c43: 'uz-Latn', 0x0443: 'uz-Latn-UZ', 0x0433: 'ven-ZA', 0x002a: 'vi', 0x042a: 'vi-VN', 0x042e: 'wen-DE', 0x0088: 'wo', 0x0488: 'wo-SN', 0x0034: 'xh', 0x0434: 'xh-ZA', 0x006a: 'yo', 0x046a: 'yo-NG', 0x7804: 'zh', 0x0804: 'zh-CN', 0x0004: 'zh-Hans', 0x7c04: 'zh-Hant', 0x0c04: 'zh-HK', 0x1404: 'zh-MO', 0x1004: 'zh-SG', 0x0404: 'zh-TW', 0x0035: 'zu', 0x0435: 'zu-ZA'} _LCID_PER_TAG = {tag.lower(): lcid for lcid, tag in _TAG_PER_LCID.items()}
[docs] @classmethod def GetLanguageTagForLCID(cls, lcid): """Retrieves the language tag for a specific LCID. Args: lcid (int): Windows NT language identifier (LCID). Returns: str: language tag or None if not available. """ return cls._TAG_PER_LCID.get(lcid, None)
[docs] @classmethod def GetLCIDForLanguageTag(cls, language_tag): """Retrieves the LCID for a specific language tag. Args: language_tag (str): language tag. Returns: int: Windows NT language identifier (LCID) or None if not available. """ return cls._LCID_PER_TAG.get(language_tag.lower(), None)