Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

X2Locale

Globals

X2Locale

X2Locale

Classes

Class: X2Locale

Method: GetKeyboardLayout

(method) X2Locale:GetKeyboardLayout()
  -> keyboardLayout: ""|"JAPANESE"|"KOREAN"

Retrieves the current keyboard layout.

@return keyboardLayout — The current keyboard layout.

keyboardLayout:
    | ""
    | "KOREAN"
    | "JAPANESE"

Method: LocalizeFormatUiText

(method) X2Locale:LocalizeFormatUiText()

Method: LocalizeNonUiText

(method) X2Locale:LocalizeNonUiText(text: string, ...string)
  -> localizedText: string

Localizes non-UI text after replacing placeholders with provided arguments.

@param text — The text with placeholders (e.g., $1).

@param ... — Arguments to replace placeholders (must match number of $).

@return localizedText — The localized text with placeholders replaced.

local localizedText = X2Locale:LocalizeNonUiText("$1 - the $1 ArcheAge Private Server", "Archerage.to", "first")
-- Archerage.to - the first ArcheAge Private Server

Method: LocalizeUiText

(method) X2Locale:LocalizeUiText(category: `ABILITY_CATEGORY_DESCRIPTION_TEXT`|`ABILITY_CATEGORY_TEXT`|`ABILITY_CHANGER_TEXT`|`ATTRIBUTE_TEXT`|`ATTRIBUTE_VARIATION_TEXT`...(+117), key: string, ...string)
  -> localizedUiText: string

Retrieves localized UI text for the specified category and key, replacing placeholders with provided arguments.

@param category — The UI text category.

@param key — The key from the database ui_texts table.

@param ... — Arguments to replace placeholders (must match number of $).

@return localizedUiText — The localized UI text.

-- api/Addon
category:
    | `ABILITY_CATEGORY_DESCRIPTION_TEXT` -- 54
    | `ABILITY_CATEGORY_TEXT` -- 49
    | `ABILITY_CHANGER_TEXT` -- 20
    | `ATTRIBUTE_TEXT` -- 44
    | `ATTRIBUTE_VARIATION_TEXT` -- 135
    | `AUCTION_TEXT` -- 107
    | `BATTLE_FIELD_TEXT` -- 35
    | `BEAUTYSHOP_TEXT` -- 124
    | `BINDING` -- 96
    | `BUTLER` -- 136
    | `CASTING_BAR_TEXT` -- 64
    | `CHARACTER_CREATE_TEXT` -- 51
    | `CHARACTER_POPUP_SUBTITLE_TEXT` -- 42
    | `CHARACTER_POPUP_SUBTITLE_TOOLTIP_TEXT` -- 43
    | `CHARACTER_SELECT_TEXT` -- 24
    | `CHARACTER_SUBTITLE_INFO_TOOLTIP_TEXT` -- 77
    | `CHARACTER_SUBTITLE_TEXT` -- 40
    | `CHARACTER_SUBTITLE_TOOLTIP_TEXT` -- 41
    | `CHARACTER_TITLE_TEXT` -- 39
    | `CHAT_CHANNEL_TEXT` -- 88
    | `CHAT_COMBAT_LOG_TEXT` -- 90
    | `CHAT_CREATE_TAB_TEXT` -- 108
    | `CHAT_FILTERING` -- 109
    | `CHAT_FORCE_ATTACK_TEXT` -- 63
    | `CHAT_LIST_TEXT` -- 62
    | `CHAT_SYSTEM_TEXT` -- 89
    | `COMBAT_MESSAGE_TEXT` -- 87
    | `COMBAT_TEXT` -- 78
    | `COMBINED_ABILITY_NAME_TEXT` -- 86
    | `COMMON_TEXT` -- 45
    | `COMMUNITY_TEXT` -- 92
    | `COMPOSITION_TEXT` -- 121
    | `CRAFT_TEXT` -- 74
    | `CUSTOMIZING_TEXT` -- 99
    | `DATE_TIME_TEXT` -- 102
    | `DOMINION` -- 97
    | `DUEL_TEXT` -- 115
    | `EQUIP_SLOT_TYPE_TEXT` -- 50
    | `ERROR_MSG` -- 1
    | `EXPEDITION_TEXT` -- 95
    | `FACTION_TEXT` -- 91
    | `FARM_TEXT` -- 110
    | `GENDER_TEXT` -- 48
    | `GRAVE_YARD_TEXT` -- 72
    | `HERO_TEXT` -- 133
    | `HONOR_POINT_WAR_TEXT` -- 117
    | `HOUSING_PERMISSIONS_TEXT` -- 71
    | `HOUSING_TEXT` -- 70
    | `INFOBAR_MENU_TEXT` -- 57
    | `INFOBAR_MENU_TIP_TEXT` -- 58
    | `INGAMESHOP_TEXT` -- 120
    | `INSTANT_GAME_TEXT` -- 34
    | `INVEN_TEXT` -- 94
    | `ITEM_GRADE` -- 103
    | `ITEM_LOOK_CONVERT_TEXT` -- 126
    | `KEY_BINDING_TEXT` -- 17
    | `LEARNING_TEXT` -- 30
    | `LEVEL_CHANGED_TEXT` -- 46
    | `LOADING_TEXT` -- 26
    | `LOGIN_CROWDED_TEXT` -- 25
    | `LOGIN_DELETE_TEXT` -- 5
    | `LOGIN_ERROR` -- 2
    | `LOGIN_TEXT` -- 4
    | `LOOT_METHOD_TEXT` -- 56
    | `LOOT_TEXT` -- 80
    | `MAIL_TEXT` -- 18
    | `MAP_TEXT` -- 60
    | `MONEY_TEXT` -- 3
    | `MSG_BOX_BODY_TEXT` -- 29
    | `MSG_BOX_BTN_TEXT` -- 27
    | `MSG_BOX_TITLE_TEXT` -- 28
    | `MUSIC_TEXT` -- 119
    | `NATION_TEXT` -- 123
    | `OPTION_TEXT` -- 22
    | `PARTY_TEXT` -- 55
    | `PERIOD_TIME_TEXT` -- 101
    | `PET_TEXT` -- 19
    | `PHYSICAL_ENCHANT_TEXT` -- 84
    | `PLAYER_POPUP_TEXT` -- 132
    | `PORTAL_TEXT` -- 67
    | `PREMIUM_TEXT` -- 129
    | `PRIEST_TEXT` -- 21
    | `PROTECT_SENSITIVE_OPERATION_TEXT` -- 130
    | `QUEST_ACT_OBJ_PTN_TEXT` -- 116
    | `QUEST_ACT_OBJ_TEXT` -- 9
    | `QUEST_CONDITION_TEXT` -- 13
    | `QUEST_DISTANCE_TEXT` -- 12
    | `QUEST_ERROR` -- 14
    | `QUEST_INTERACTION_TEXT` -- 10
    | `QUEST_OBJ_STATUS_TEXT` -- 8
    | `QUEST_SPHERE_TEXT` -- 11
    | `QUEST_STATUS_TEXT` -- 7
    | `QUEST_TEXT` -- 6
    | `RACE_DETAIL_DESCRIPTION_TEXT` -- 53
    | `RACE_TEXT` -- 47
    | `RAID_TEXT` -- 105
    | `RANKING_TEXT` -- 127
    | `REPAIR_TEXT` -- 93
    | `RESTRICT_TEXT` -- 114
    | `SECOND_PASSWORD_TEXT` -- 122
    | `SERVER_TEXT` -- 23
    | `SKILL_TEXT` -- 61
    | `SKILL_TRAINING_MSG_TEXT` -- 76
    | `SLAVE_KIND` -- 100
    | `SLAVE_TEXT` -- 118
    | `STABLER_TEXT` -- 68
    | `STORE_TEXT` -- 65
    | `TARGET_POPUP_TEXT` -- 75
    | `TEAM_TEXT` -- 106
    | `TERRITORY_TEXT` -- 111
    | `TIME` -- 98
    | `TOOLTIP_TEXT` -- 33
    | `TRADE_TEXT` -- 16
    | `TRIAL_TEXT` -- 113
    | `TUTORIAL_TEXT` -- 15
    | `UCC_TEXT` -- 73
    | `UNIT_FRAME_TEXT` -- 38
    | `UNIT_GRADE_TEXT` -- 37
    | `UNIT_KIND_TEXT` -- 36
    | `UTIL_TEXT` -- 31
    | `WEB_TEXT` -- 112
    | `WINDOW_TITLE_TEXT` -- 134

Method: HasLocalizeUiText

(method) X2Locale:HasLocalizeUiText(categoryId: `ABILITY_CATEGORY_DESCRIPTION_TEXT`|`ABILITY_CATEGORY_TEXT`|`ABILITY_CHANGER_TEXT`|`ATTRIBUTE_TEXT`|`ATTRIBUTE_VARIATION_TEXT`...(+117), key: string)
  -> localizeUiText: boolean

Checks if the specified localization category and key exist.

@param categoryId — The UI text category.

@param key — The key from the database ui_texts table.

@return localizeUiTexttrue if the localization exists, false otherwise.

-- api/Addon
categoryId:
    | `ABILITY_CATEGORY_DESCRIPTION_TEXT` -- 54
    | `ABILITY_CATEGORY_TEXT` -- 49
    | `ABILITY_CHANGER_TEXT` -- 20
    | `ATTRIBUTE_TEXT` -- 44
    | `ATTRIBUTE_VARIATION_TEXT` -- 135
    | `AUCTION_TEXT` -- 107
    | `BATTLE_FIELD_TEXT` -- 35
    | `BEAUTYSHOP_TEXT` -- 124
    | `BINDING` -- 96
    | `BUTLER` -- 136
    | `CASTING_BAR_TEXT` -- 64
    | `CHARACTER_CREATE_TEXT` -- 51
    | `CHARACTER_POPUP_SUBTITLE_TEXT` -- 42
    | `CHARACTER_POPUP_SUBTITLE_TOOLTIP_TEXT` -- 43
    | `CHARACTER_SELECT_TEXT` -- 24
    | `CHARACTER_SUBTITLE_INFO_TOOLTIP_TEXT` -- 77
    | `CHARACTER_SUBTITLE_TEXT` -- 40
    | `CHARACTER_SUBTITLE_TOOLTIP_TEXT` -- 41
    | `CHARACTER_TITLE_TEXT` -- 39
    | `CHAT_CHANNEL_TEXT` -- 88
    | `CHAT_COMBAT_LOG_TEXT` -- 90
    | `CHAT_CREATE_TAB_TEXT` -- 108
    | `CHAT_FILTERING` -- 109
    | `CHAT_FORCE_ATTACK_TEXT` -- 63
    | `CHAT_LIST_TEXT` -- 62
    | `CHAT_SYSTEM_TEXT` -- 89
    | `COMBAT_MESSAGE_TEXT` -- 87
    | `COMBAT_TEXT` -- 78
    | `COMBINED_ABILITY_NAME_TEXT` -- 86
    | `COMMON_TEXT` -- 45
    | `COMMUNITY_TEXT` -- 92
    | `COMPOSITION_TEXT` -- 121
    | `CRAFT_TEXT` -- 74
    | `CUSTOMIZING_TEXT` -- 99
    | `DATE_TIME_TEXT` -- 102
    | `DOMINION` -- 97
    | `DUEL_TEXT` -- 115
    | `EQUIP_SLOT_TYPE_TEXT` -- 50
    | `ERROR_MSG` -- 1
    | `EXPEDITION_TEXT` -- 95
    | `FACTION_TEXT` -- 91
    | `FARM_TEXT` -- 110
    | `GENDER_TEXT` -- 48
    | `GRAVE_YARD_TEXT` -- 72
    | `HERO_TEXT` -- 133
    | `HONOR_POINT_WAR_TEXT` -- 117
    | `HOUSING_PERMISSIONS_TEXT` -- 71
    | `HOUSING_TEXT` -- 70
    | `INFOBAR_MENU_TEXT` -- 57
    | `INFOBAR_MENU_TIP_TEXT` -- 58
    | `INGAMESHOP_TEXT` -- 120
    | `INSTANT_GAME_TEXT` -- 34
    | `INVEN_TEXT` -- 94
    | `ITEM_GRADE` -- 103
    | `ITEM_LOOK_CONVERT_TEXT` -- 126
    | `KEY_BINDING_TEXT` -- 17
    | `LEARNING_TEXT` -- 30
    | `LEVEL_CHANGED_TEXT` -- 46
    | `LOADING_TEXT` -- 26
    | `LOGIN_CROWDED_TEXT` -- 25
    | `LOGIN_DELETE_TEXT` -- 5
    | `LOGIN_ERROR` -- 2
    | `LOGIN_TEXT` -- 4
    | `LOOT_METHOD_TEXT` -- 56
    | `LOOT_TEXT` -- 80
    | `MAIL_TEXT` -- 18
    | `MAP_TEXT` -- 60
    | `MONEY_TEXT` -- 3
    | `MSG_BOX_BODY_TEXT` -- 29
    | `MSG_BOX_BTN_TEXT` -- 27
    | `MSG_BOX_TITLE_TEXT` -- 28
    | `MUSIC_TEXT` -- 119
    | `NATION_TEXT` -- 123
    | `OPTION_TEXT` -- 22
    | `PARTY_TEXT` -- 55
    | `PERIOD_TIME_TEXT` -- 101
    | `PET_TEXT` -- 19
    | `PHYSICAL_ENCHANT_TEXT` -- 84
    | `PLAYER_POPUP_TEXT` -- 132
    | `PORTAL_TEXT` -- 67
    | `PREMIUM_TEXT` -- 129
    | `PRIEST_TEXT` -- 21
    | `PROTECT_SENSITIVE_OPERATION_TEXT` -- 130
    | `QUEST_ACT_OBJ_PTN_TEXT` -- 116
    | `QUEST_ACT_OBJ_TEXT` -- 9
    | `QUEST_CONDITION_TEXT` -- 13
    | `QUEST_DISTANCE_TEXT` -- 12
    | `QUEST_ERROR` -- 14
    | `QUEST_INTERACTION_TEXT` -- 10
    | `QUEST_OBJ_STATUS_TEXT` -- 8
    | `QUEST_SPHERE_TEXT` -- 11
    | `QUEST_STATUS_TEXT` -- 7
    | `QUEST_TEXT` -- 6
    | `RACE_DETAIL_DESCRIPTION_TEXT` -- 53
    | `RACE_TEXT` -- 47
    | `RAID_TEXT` -- 105
    | `RANKING_TEXT` -- 127
    | `REPAIR_TEXT` -- 93
    | `RESTRICT_TEXT` -- 114
    | `SECOND_PASSWORD_TEXT` -- 122
    | `SERVER_TEXT` -- 23
    | `SKILL_TEXT` -- 61
    | `SKILL_TRAINING_MSG_TEXT` -- 76
    | `SLAVE_KIND` -- 100
    | `SLAVE_TEXT` -- 118
    | `STABLER_TEXT` -- 68
    | `STORE_TEXT` -- 65
    | `TARGET_POPUP_TEXT` -- 75
    | `TEAM_TEXT` -- 106
    | `TERRITORY_TEXT` -- 111
    | `TIME` -- 98
    | `TOOLTIP_TEXT` -- 33
    | `TRADE_TEXT` -- 16
    | `TRIAL_TEXT` -- 113
    | `TUTORIAL_TEXT` -- 15
    | `UCC_TEXT` -- 73
    | `UNIT_FRAME_TEXT` -- 38
    | `UNIT_GRADE_TEXT` -- 37
    | `UNIT_KIND_TEXT` -- 36
    | `UTIL_TEXT` -- 31
    | `WEB_TEXT` -- 112
    | `WINDOW_TITLE_TEXT` -- 134

Method: GetLocale

(method) X2Locale:GetLocale()
  -> locale: ""|"de"|"en_sg"|"en_us"|"fr"...(+7)

Retrieves the current locale.

@return locale — The current locale.

locale:
    | "" -- invalid
    | "de" -- German (Germany)
    | "en_sg" -- English (Singapore)
    | "en_us" -- English (United States)
    | "fr" -- French (France)
    | "ind" -- Indonesian (Indonesia)
    | "ja" -- Japanese(Japan)
    | "ko" -- Korean (South Korea)
    | "ru" -- Russian (Russia)
    | "th" -- Thai (Thailand)
    | "zh_cn" -- Chinese (Simplified, China)
    | "zh_tw" -- Chinese(Traditional, Taiwan)

Method: GetLocaleIndex

(method) X2Locale:GetLocaleIndex()
  -> localeIndex: `-1`|`0`|`10`|`1`|`2`...(+7)

Retrieves the locale index.

@return localeIndex — The locale index.

localeIndex:
    | `-1` -- invalid
    | `0` -- ko    - Korean (South Korea)
    | `1` -- zh_cn - Chinese (Simplified, China)
    | `2` -- en_us - English (United States)
    | `3` -- ja    - Japanese(Japan)
    | `4` -- zh_tw - Chinese (Traditional, Taiwan)
    | `5` -- ru    - Russian (Russia)
    | `6` -- de    - German (Germany)
    | `7` -- fr    - French (France)
    | `8` -- th    - Thai (Thailand)
    | `9` -- ind   - Indonesian (Indonesia)
    | `10` -- en_sg - English (Singapore)

Method: TextFormating

(method) X2Locale:TextFormating(text: string|"@ACHIEVEMENT_NAME(achievementId)"|"@AREA_SPHERE(sphereId)"|"@CONTENT_CONFIG(configId)"|"@DAY(days)"...(+63))
  -> textFormatted: string

Formats the specified text.

@param text — The text to format.

@return textFormatted — The formatted text.

-- Example: @PC_NAME(0) is a @PC_GENDER(0) @PC_RACE(0) -> Noviern is a Male Dwarf.
text:
    | "@ACHIEVEMENT_NAME(achievementId)" -- achievements.id
    | "@AREA_SPHERE(sphereId)" -- spheres.id
    | "@CONTENT_CONFIG(configId)" -- content_configs.id
    | "@DOODAD_NAME(doodadId)" -- doodad_almighties.id
    | "@ITEM_NAME(itemId)" -- items.id
    | "@NPC_GROUP_NAME(npcGroupId)" -- quest_monster_groups.id
    | "@NPC_NAME(npcId)" -- npcs.id
    | "@PC_CLASS(unitId)" -- X2Unit:GetUnitId or 0 for the player
    | "@PC_GENDER(unitId)" -- X2Unit:GetUnitId or 0 for the player
    | "@PC_NAME(unitId)" -- X2Unit:GetUnitId or 0 for the player
    | "@PC_RACE(unitId)" -- X2Unit:GetUnitId or 0 for the player
    | "@QUEST_NAME(questId)" -- quest_contexts.id
    | "@SOURCE_NAME(0)" -- #
    | "@TARGET_NAME(0)" -- #
    | "@TARGET_SLAVE_REPAIR_COST(id?)" -- slaves.id or nothing for the current targets repair cost.
    | "@SUB_ZONE_NAME(subZoneId)" -- sub_zones.id
    | "@ZONE_NAME(zoneId)" -- zones.id
    | "@MONTH(months)" -- #
    | "@DAY(days)" -- #
    | "@HOUR(hours)" -- #
    | "@MINUTE(minutes)" -- #
    | "@SECOND(seconds)" -- #
    | "|nb; Steelblue |r" -- rgb(23, 119, 174)
    | "|nc; Orange |r" -- rgb(255, 157, 40)
    | "|nd; Lightskyblue |r" -- rgb(152, 214, 250)
    | "|nf; Red |r" -- rgb(255, 0, 0)
    | "|ng; Lime |r" -- rgb(0, 255, 70)
    | "|nh; Steelblue |r" -- rgb(45, 101, 137)
    | "|ni; khaki |r" -- rgb(246, 204, 102)
    | "|nj; Royalblue |r" -- rgb(14, 97, 189)
    | "|nn; Dark Orange |r" -- rgb(228, 113, 1)
    | "|nr; Tomato |r" -- rgb(238, 74, 47)
    | "|ns; Gainsboro |r" -- gb(221, 221, 221)
    | "|nt; Gray |r" -- rgb(129, 129, 129)
    | "|nu; Dimgray |r" -- rgb(106, 106, 106)
    | "|ny; Lemonchiffon |r" -- rgb(255, 249, 200)
    | "|cFF000000{string}|r" -- #
    | "|bu{bulletCharacter};{string}|br" -- #
    | "|q{questId};" -- #
    | "|i{itemType},{grade},{kind},{data}" -- #
    | "|if{craftId};" -- #
    | "|iu{data}" -- link
    | "|a{data}" -- raid
    | "|A{data}" -- dungeon
    | "|ic{iconId}" -- db > icons.id
    | "|m{moneyAmount};" -- ui/common/money_window.g > money_gold money_silver money_copper
    | "|h{honor};" -- ui/common/money_window.g > money_honor
    | "|d{amount};" -- ui/common/money_window.g > money_dishonor
    | "|j{creditAmount};" -- ui/common/money_window.g > icon_aacash
    | "|l{vocationAmount};" -- ui/common/money_window.g > point
    | "|bm{amount};" -- ui/common/money_window.g > money_bmpoint
    | "|se{gildaAmount};" -- ui/common/money_window.g > icon_depi
    | "|ss{meritbadgeAmount?};" -- ui/common/money_window.g > icon_star
    | "|sc{amount};" -- ui/common/money_window.g > icon_key
    | "|sf{amount};" -- ui/common/money_window.g > icon_netcafe
    | "|p{pointAmount};" -- ui/common/money_window.g > aa_point_gold aa_point_silver aa_point_copper
    | "|x{taxAmount};" -- ui/common/money_window.g > tax
    | "|u{amount};" -- ui/common/money_window.g > pouch
    | "|w{contributionAmount};" -- ui/common/money_window.g > contributiveness
    | "|e{level?};" -- ui/common/money_window.g > successor_small
    | "|E{level?};" -- ui/common/money_window.g > successor_small_gray
    | "|sa{amount};" -- ui/common/money_window.g > pass_coin icon_key
    | "|sp{manastormAmount?};" -- ui/common/money_window.g > icon_palos
    | "|sg{amount};" -- ui/common/money_window.g > icon_garnet
    | "|v{level?};" -- ui/common/money_window.g > icon_equip_slot_star_small
    | "|V{level?};" -- ui/common/money_window.g > icon_equip_slot_star
    | "|g{gearScore};" -- ui/common/money_window.g > equipment_point