Text strings

Overview

All text strings used in equipment descriptions are stored in a single internationalization file. To translate the mod to another language, you must manually edit this file and change the language setting to match your target language.


Translation File

Location: scripts/config/DynamicEquipmentDescription/i18n.lua

This file contains all text strings organized by category. Each section must be translated individually.

Why is it called i18n?

The term “i18n” is a widely recognized abbreviation for internationalization.

This convention is used in many software projects to indicate that a feature or file is related to language localization and translation. In this context, the i18n.lua file contains all the translatable text strings used by the mod, making it easier to adapt the content for different languages.


File Structure

The i18n.lua file is organized into the following sections:

common

General labels used throughout the interface.

Example:

common = {
    category = "Category",
    type = "Type",
    license = "License",
    hitsFlying = "Hits Flying",
    element = "Element",
    onhit = "Hit",
    onequip = "Equip",
    immunity = "Immunity"
}

activeAttributes

Names for active equipment attributes (stats that appear on weapons/armor).

Example:

activeAttributes = {
    range = "Range",
    defense = "Defense",
    attackPower = "Attack Power",
    evadeShield = "Evade",
    -- ...
}

linkedAttributes

Names for linked attributes (character stats).

Example:

linkedAttributes = {
    maxHp = "Max HP",
    maxMp = "Max MP",
    strength = "Strength",
    -- ...
}

s14Attributes

Texts related to gagicks, items and technicks attributes.

Example:

linkedAttributes = {
    mpOrMistCost = "MP Cost",
    areaOfEffectRange = "AOE Range",
    accuracyRate = "Accuracy Rate",
    -- ...
}

effects

Names for all status effects and conditions.

Example:

effects = {
    ko = "KO",
    poison = "Poison",
    blind = "Blind",
    -- ...
}

categories

Names for equipment categories.

Example:

categories = {
    sword = "Sword",
    greatsword = "Greatsword",
    shield = "Shield",
    -- ...
}

s14Categories

Texts related to gagicks, items and technicks categories.

Example:

categories = {
    magick = "Magick",
    technick = "Technick",
    items = "Item",
    -- ...
}

types

Equipment type descriptions.

Example:

types = {
    sword = "Standard",
    greatSword = "Standard",
    katana = "Magick",
    -- ...
}

affinityTypes

Affinity type labels.

Example:

affinityTypes = {
    absorb = "Absorb",
    halve = "Halve",
    weak = "Weak",
    -- ...
}

elements

Element names.

Example:

elements = {
    fire = "Fire",
    ice = "Ice",
    lightning = "Lightning",
    -- ...
}

augments

Augment names and descriptions.

Example:

augments = {
    broadSword = "Broadsword",
    -- ...
}

equipments

Individual equipment names and custom descriptions for specific items. Each equipment entry has 3 properties:

  • name - Equipment name

  • license - Required license

  • notes - Custom description text

Example:

equipments = {
    [349] = {
        name = "Argyle Armlet",
        license = "Accessories 3",
        notes = "Grants immunity to Blind and reduces Dark damage taken by half."
    },
    ...
}

items

Individual items names and custom descriptions for specific items. Each item entry has 3 properties:

  • name - Equipment name

  • statusPrefix- Custom text for status verb

  • notes - Custom description text

Example:

items = {
    [88] = {
        name = "Phoenix Down",
        license = "Removes",
        notes = "Revive one KO'd ally."
    },
    ...
}

magicks

Individual magick names and custom descriptions for specific items. Each magick entry has 4 properties:

  • name - Equipment name

  • license - Required license

  • statusPrefix- Custom text for status verb

  • notes - Custom description text

Example:

magicks = {
    [1] = {
        name = "Blindna",
        license = "White Magick 1",
        statusPrefix = "Removes",
        notes = "Remove Blind from one ally."
    },
    ...
}

technicks

Individual technick names and custom descriptions for specific items. Each technick entry has 4 properties:

  • name - Equipment name

  • license - Required license

  • statusPrefix- Custom text for status verb

  • notes - Custom description text

Example:

magicks = {
    [1] = {
        name = "Horology",
        license = "Horology",
        statusPrefix = "Inflicts",
        notes = "Deal damage based on a factor of time to all foes in range."
    },
    ...
}

Important


How to Translate

Set Language

In config.lua, set the language to your target:

language = "es"  -- For Spanish

Edit texts in i18n.lua

Open scripts/config/DynamicEquipmentDescription/i18n.lua and translate all text strings:

Example:

-- Before (English)
common = {
    category = "Category",
    type = "Type",
    license = "License"
}

-- After (Spanish)
common = {
    category = "CategorĂ­a",
    type = "Tipo",
    license = "Licencia"
}

Translate All Sections

You can translate every section in the file:

  • common

  • activeAttributes

  • linkedAttributes

  • effects

  • categories

  • types

  • affinityTypes

  • elements

  • augments

  • equipments

  • items

  • magicks

  • technicks

The output will be saved to the corresponding language path based on your language setting.


Important Notes

  • The language setting in config.lua only controls where the file is generated, not what language the text is in.

  • All translations must be done manually in i18n.lua .

  • Make sure to maintain the Lua table structure when editing.

  • Keep the keys (left side) unchanged, only translate the values (right side)

-- CORRECT
category = "Catégorie",  -- Key stays "category", value is translated

-- WRONG
catégorie = "Catégorie",  -- Don't translate the key!

Example

Last updated