Source code for plaso.helpers.windows.languages

"""Windows languages helper."""


[docs] class WindowsLanguageHelper: """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)
[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())