Claude Skill

translation

Translate strings in Xcode String Catalogs (.xcstrings files). Prefer to use the `xcode-skills:translation-coordinator` skill for task-coordination. Use this skill when translating individual strings or working with String Catalogs. Should only be activated when translating a sin

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download artemnovichkov-xcode-skills-skills_translation-aa5c1cb.zip · 297 KB
Part of artemnovichkov/xcode-skills — 15 skills

Install

skills CLI npx skills add https://github.com/artemnovichkov/xcode-skills/tree/main/skills/translation
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install artemnovichkov-xcode-skills@llmmart
Git git clone https://github.com/artemnovichkov/xcode-skills.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole artemnovichkov/xcode-skills collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

String Catalog Translator

Translate a given set of strings in Xcode String Catalogs using specialized MCP tools. These strings are user-facing software strings for apps on Apple platforms — typically short UI text such as button titles, labels, and messages. Translate them as you would for a native app on those platforms. Access String Catalogs only through these tools—never write .xcstrings files directly.

Abort if no list of keys was provided, or if no target locale identifier was provided — something went wrong. Do not guess a locale from examples; the target locale must come from your initial instructions.

Role Boundaries

A specific list of string keys and a target locale identifier have been provided via your initial instructions.

  • Do not fetch additional string keys beyond what you were given
  • Do not translate into any locale other than the one explicitly provided
  • Do not use LocalizationPlanner (your coordinator already ran it)
  • Do not spawn sub-agents of your own

Quick Reference

Tool Purpose
StringCatalogRead Get string keys by translation state (new, needs_review, translated, machine_translated)
StringCatalogContext Get source value and context: comments, similar strings, code locations, plural cases
StringCatalogEdit Insert the translation

Workflow

Skip the LocalizationPlanner tool when told to do so.

For each string, one at a time, follow these steps in order.

Step 1: Get source value and context Call StringCatalogContext with the target locale. The sourceValues field in the response contains the text that must be translated. The rest of the response provides context:

  • Developer comments explaining intent
  • Existing translations in other languages
  • Similar strings with their translations (for terminology consistency)
  • Code locations where the string is used
  • UI appearance hints (button vs. label affects verb/noun choice)
  • Required plural cases for the target locale

Step 2: Read the source code at the provided file paths to understand how the string is used. This reveals the developer's intention and helps you choose the right translation (e.g., a verb for buttons, descriptive for labels). For instance, the key "Save" could be a verb (button action → "Speichern") or a noun (a save file → "Spielstand") — only the source code reveals which. Reading the source code is REQUIRED for finding a good translation. If usage data is unavailable, use all the context clues you have so far — developer comments, similar strings, appearance hints, and existing translations in other languages.

Some UI words are both noun and verb (e.g. "Bookmark", "Archive", "Save"), and the noun is the more common reading, so might be the one you fall back to by default. When the comment, code, or appearance information shows the string is a button or other action control, you MUST translate it as a verb, not a noun (or the appropriate part-of-speech according to the target language's style guide). For instance, a "Bookmark" button is the action "add a bookmark", not the object "a bookmark", hence it should be translated as a verb, and reading the source code and the appearance info gives you clarity over its usage. Give both labels of a toggle (e.g. the two sides of a ternary) the same part of speech — never one as a verb and the other as a noun. Follow the target-languages style-guide to determine what part-of-speech buttons, toggles, and labels should use.

Step 3: Gather available style and terminology input, then make style choices

Read and consider guidance from the following:

  • Explicit guidance in your instructions
  • Existing translations for the target locale
  • The locale-specific style guide

They cover different concerns, and the higher-priority sources are often incomplete — the lower-priority ones fill the gaps rather than being ignored:

  1. Explicit guidance in your instructions. Any terminology or style direction in the instructions you were given (how to translate a specific term, the app name, tone guidance, DNT list, etc.) is authoritative — follow it above all else.
  2. Existing translations for the target locale. Match their terminology, phrasing, register, tone, etc. so the app's translations stay consistent. These reflect choices already made for this project and take precedence over the style guide.
  3. The locale-specific style guide. Always read references/styleguide_{locale}.md (resolve it relative to the skill's base directory) when one exists for the target locale (e.g. styleguide_pt-BR.md, styleguide_zh-Hans.md—if the file doesn't exist, there isn't a style guide for that locale). Use it to inform your choices when specific guidance doesn't exist in your instructions or existing translations.

When these sources conflict, higher-priority items win: explicit instructions override existing translations, which override the style guide. Where none of them settles a question, default to informal/colloquial style.

Step 4: Formulate translation Consider:

  • Terminology: Match terms used in similar strings. If "Save" is translated as "Speichern" elsewhere, use it consistently. No matter the similar strings, make sure the part of speech of your target string is preserved: a noun sibling ("Bookmarks") is not a precedent for an action button that shares its stem ("Bookmark") — reuse the term, keep the part of speech the usage calls for.
  • Tone and formality: Decide on the style of your translation based on your choices in step 3
  • App names: Once you decide on how to translate an app name, make sure to to stick to this decision everywhere the app name is referenced.
  • Format specifiers: Understand what each specifier represents by reading the source code (e.g., %lld might be a count of items, files, or users).

Step 5: Determine if variation is needed Check whether the translation needs plural variation, device variation, or both.

  • Plural: If the string contains a numeric format specifier (%lld, %d, %u, etc.) paired with a countable noun, read references/plural-variations.md (resolve it relative to the skill's base directory). The context tool provides relevantPluralCases for your target locale—use all of them.
    • If the context tool also returned sourcePluralCasesToAdd, the source itself isn't plural-varied yet. Vary the source first in a separate StringCatalogEdit call before translating the target — references/plural-variations.md walks through this two-step flow.
  • Device: If the string references a device-specific interaction (tap vs. click) or mentions a device by name, read references/device-variations.md (resolve it relative to the skill's base directory)
  • Both: A string can need both — for example, "Tap to launch %lld spaceships" differs by device AND has a countable noun. Combine device and plural keys (e.g., device.iphone.plural.one), but keep device.other as a flat fallback string that covers both variations

Step 6: Insert translation Call StringCatalogEdit with the appropriate translation type. Translate the source value from sourceValues in Step 1 with the context you gathered. If the string is a String Set (marked isStringSet: true in context), provide natural alternatives in the target language using the stringSetTranslation parameter — these are not 1:1 translations but synonyms that express similar intent. For example, English ["order food in ${applicationName}", "get food in ${applicationName}"] → German ["Essen bestellen in ${applicationName}", "Essen holen auf ${applicationName}"]. Continue to the next string.

Repeat these 6 steps until all requested strings are translated.

Do not rush and cut corners; follow these 6 steps exactly for every string requested.

Tool Reference

StringCatalogContext

Returns context and the source language value for a given string. The sourceValues field contains the text that must be translated. Also includes comments, translations for other languages if present, and relevant plural case hints for the target locale if applicable. Curly apostrophes and quotes are escaped (e.g., \u2019 for curly apostrophe, \u201C for curly quote).

Inputs

Parameter Type Required Description
tabIdentifier String Yes Workspace tab identifier
filePath String Yes Path to String Catalog
stringKey String Yes String key to get context for
targetLocaleIdentifier String Yes Locale for translation (e.g., de, pt-PT)

Outputs

Field Type Description
sourceValues SourceValues The source language values to translate (see SourceValues type below)
shouldTranslate Bool Whether string should be translated (false = DO NOT TRANSLATE)
isStringSet Bool? Whether this is a String Set (only present when true)
comment String? Developer comment from String Catalog
relevantPluralCases [String]? Plural cases for target locale (e.g., ["plural.one", "plural.other"]). Absent when the string doesn't require pluralization.
sourcePluralCasesToAdd [String]? Plural cases for the source locale. Present when the source string has a numerical format specifier but is not yet plural-varied. Absent when the source string doesn't require pluralization.
translations LocalizationInfo All existing translations across non-source locales
usageLocations UsageLocation? Source code locations where string is used
appearances AppearanceInfo? UI appearance hints (button, label, UI framework)
usageDataUnavailable String? Message when usage data can't be retrieved (e.g., "Build the project...")
similarStrings SimilarStringInfo Similar strings from other String Catalogs
supportedDevices [String]? Devices this app builds for (e.g., ["device.iphone", "device.mac"]). Only present when the app targets multiple device families.

Output Types

LocalizationInfo

The terminology choices for this string in other languages can be an indicator of what terminology to choose for this translation. The isVaried field is only present (and true) when the localization contains plural, device, or width variations; for plain translations it is omitted.

{
  "localeIdentifier": "de",
  "value": "Willkommen!"
}

When the localization is varied, value carries a human-readable description of the variation tree:

{
  "localeIdentifier": "he",
  "value": "plural.one: ...\nplural.other: ...",
  "isVaried": true
}

UsageLocation

Checking how the string is used in source code can provide important context on the terminology to choose (noun vs. verb, etc.)

{
  "fileURL": "file:///path/to/File.swift",
  "lineNumber": 42,
  "columnNumber": 15
}

AppearanceInfo

The way this string is presented in UI is a strong signal for part of speech to choose: translate a button or other action control as an action.

{
  "usageHint": "This string is used in a SwiftUI button"
}

SimilarStringInfo

Ensure consistent terminology, formality, and style by basing new translations off existing similar strings.

{
  "key": "save_button",
  "sourceDescription": "Save",
  "targetDescription": "Speichern"
}

SourceValues

The source language values that must be translated. Exactly one of value, setValues, or variationDescription will be non-null.

Field Type Description
sourceLocaleIdentifier String The source locale identifier
value String? Source text for simple strings
setValues [String]? Source values for string sets
variationDescription String? Variation tree for varied strings

StringCatalogEdit

Inserts or updates a translation in a String Catalog. Can handle simple strings, varied strings, and String Sets. If the string needs variation (e.g., plural forms), provide the templateTranslation or variationTranslation parameter. For String Sets (voice assistant commands), use stringSetTranslation. Prefer typographically correct quotes for the target language (e.g., „...“ for German, «...» for French). All curly quotes must be escaped (e.g., \u201E...\u201C for German „...“).

Critical: Translations must be in the correct target locale. Refer to your initial instructions to determine which locale applies. Do not infer a locale from examples in this document.

Inputs

Parameter Type Required Description
tabIdentifier String Yes Workspace tab identifier
filePath String Yes Path to String Catalog
stringKey String Yes String key to translate
targetLocaleIdentifier String Yes Target locale (e.g., de, pt-PT)

Plus exactly one of the following (mutually exclusive):

Parameter Type Description
translation String Simple string translation (no variations)
templateTranslation TemplateTranslation Template with substitutions for multiple plural nouns
variationTranslation VariationTranslation Top-level variations (device, width, or single plural noun)
stringSetTranslation [String] Array of values for String Sets

Translation Types

Simple Translation

For strings without variations:

{
  "stringKey": "welcome_message",
  "targetLocaleIdentifier": "de",
  "translation": "Willkommen in unserer App!"
}

Template Translation

For strings with multiple format specifiers + countable nouns:

{
  "stringKey": "usage_message",
  "targetLocaleIdentifier": "de",
  "templateTranslation": {
    "template": "iCloud+ wird von %#@arg1@ und %#@arg2@ verwendet.",
    "substitutions": [
      {
        "name": "arg1",
        "argNum": 1,
        "formatSpecifier": "lu",
        "variants": {
          "plural.one": "%arg Gerät",
          "plural.other": "%arg Geräte"
        }
      },
      {
        "name": "arg2",
        "argNum": 2,
        "formatSpecifier": "lu",
        "variants": {
          "plural.one": "%arg Mitglied",
          "plural.other": "%arg Mitglieder"
        }
      }
    ]
  }
}

Variation Translation

For strings with top-level plural, device, or width variations, or a single format specifier + countable noun:

Single plural noun:

{
  "stringKey": "item_count",
  "targetLocaleIdentifier": "pl",
  "variationTranslation": {
    "topLevelVariation": {
      "plural.one": "Masz %lld przedmiot",
      "plural.few": "Masz %lld przedmioty",
      "plural.many": "Masz %lld przedmiotów",
      "plural.other": "Masz %lld przedmiotu"
    }
  }
}

Device-only variations (no plurals):

{
  "stringKey": "action_hint",
  "targetLocaleIdentifier": "es",
  "variationTranslation": {
    "topLevelVariation": {
      "device.iphone": "Toca aquí",
      "device.mac": "Haz clic aquí",
      "device.other": "Pulsa aquí"
    }
  }
}

Device variations with single plural noun:

{
  "stringKey": "launch_button",
  "targetLocaleIdentifier": "fr",
  "variationTranslation": {
    "topLevelVariation": {
      "device.iphone.plural.one": "Touchez pour lancer %lld vaisseau spatial",
      "device.iphone.plural.other": "Touchez pour lancer %lld vaisseaux spatiaux",
      "device.mac.plural.one": "Cliquez pour lancer %lld vaisseau spatial",
      "device.mac.plural.other": "Cliquez pour lancer %lld vaisseaux spatiaux",
      "device.other": "Touchez pour lancer %lld vaisseaux spatiaux"
    }
  }
}

Device variations with substitutions (multiple plural nouns):

{
  "stringKey": "device_usage",
  "targetLocaleIdentifier": "de",
  "variationTranslation": {
    "topLevelVariation": {
      "device.iphone": "iCloud+ wird von %#@arg1_iphone@ und %#@users@ verwendet",
      "device.mac": "iCloud+ wird von %#@arg1_mac@ und %#@users@ verwendet",
      "device.other": "iCloud+ wird von %lld und %lld verwendet"
    },
    "substitutions": [
      {
        "name": "arg1_iphone",
        "argNum": 1,
        "formatSpecifier": "lld",
        "variants": {
          "plural.one": "%arg anderes iPhone",
          "plural.other": "%arg andere iPhones"
        }
      },
      {
        "name": "arg1_mac",
        "argNum": 1,
        "formatSpecifier": "lld",
        "variants": {
          "plural.one": "%arg anderer Mac",
          "plural.other": "%arg andere Macs"
        }
      },
      {
        "name": "users",
        "argNum": 2,
        "formatSpecifier": "lld",
        "variants": {
          "plural.one": "%arg Benutzer",
          "plural.other": "%arg Benutzer"
        }
      }
    ]
  }
}

Critical: See plural-variations.md for detailed rules.

Critical: Insert the entire variation structure, including already translated variants. This overwrites what was there before.

String Set Translation

For String Sets (voice assistant commands):

{
  "stringKey": "COMMAND_ORDER",
  "targetLocaleIdentifier": "de",
  "stringSetTranslation": ["Essen bestellen", "Essen holen", "Essen kaufen"]
}

Note: provide synonyms/alternatives, not direct 1:1 translations.

Type Definitions

TemplateTranslation:

Field Type Required Description
template String Yes Template with %#@name@ substitution references
substitutions [Substitution] Yes Array of substitution definitions

VariationTranslation:

Field Type Required Description
topLevelVariation Yes Maps variation paths to templates (e.g., "plural.one", "device.iphone")
substitutions [Substitution]? No Optional substitutions referenced by templates

Substitution:

Field Type Required Description
name String Yes Placeholder name (used as %#@name@ in template)
argNum Int Yes 1-indexed argument position
formatSpecifier String Yes Format type without % (e.g., lld, @, u)
variants Yes Maps variation paths to values (use %arg as number placeholder)

Outputs

Field Type Description
success Bool Whether translation was inserted
message String Success or error message

StringCatalogRead

This tool should only be used to verify your work.

Returns string keys grouped by translation state for the requested locale. Includes counts of all string keys grouped by translation state. Supports pagination. Curly apostrophes and quotes are escaped (e.g., \u2019 for curly apostrophe, \u201C for curly quote).

Inputs

Parameter Type Required Default Description
tabIdentifier String Yes — Workspace tab identifier
filePath String Yes — Path to String Catalog (relative or absolute)
targetLocaleIdentifier String Yes — Locale to check translations for (e.g., de, pt-PT)
requestedState String? No nil State to retrieve: new, needs_review, translated, machine_translated. If omitted, only counts for all states are returned.
keyLimit Int No 50 Maximum keys to return
offset Int No 0 Keys to skip (for pagination)

Outputs

Always returned:

Field Type Description
newCount Int Untranslated strings
needsReviewCount Int Strings marked needs review
translatedCount Int Human-translated strings
machineTranslatedCount Int Machine-translated strings

When requestedState is provided:

Field Type Description
requestedState String The requested state bucket
totalForRequestedState Int Total keys in state bucket before pagination
returnedCount Int Keys returned after pagination
keys [String] Array of string keys

A key can appear in multiple state buckets if variants have different states.


Critical Rules

  1. Use only String Catalog tools to access .xcstrings files. Never write to them directly.
  2. Translate one string at a time, following all 6 steps for each before moving to the next.
  3. Preserve format specifiers exactly as they appear in source (%1$lld, %@, etc.).
  4. Make explicit choices about translation style—a well-translated app has consistent style throughout. Always read the target locale's style guide when one exists and use it as the baseline; explicit instructions and existing translations take precedence over it wherever they apply.
  5. Keep app names consistent—when you translate them once, make sure to translate them everywhere.
  6. Complete the entire task—continue until all requested translations are done.
  7. Use typographically correct quotes and apostrophes for the target language (e.g., „...“ for German, «...» for French). All curly quotes must be escaped (e.g., \u201E...\u201C for German „...“), as well as apostrophes (e.g. \u2019 for curly apostrophe). NEVER XML-escape the ampersand: write a literal &, NOT &amp;. The same goes for all other HTML/XML entities — never write &lt;, &gt;, &quot;, or &apos;; write the literal <, >, ", ' characters instead. The String Catalog stores Unicode text, not XML, so any &amp; would ship verbatim into the app. Other non-ascii characters do not need extra escaping either. DO NOT blindly escape everything.
  8. Do NOT skip steps to save time, even when there are hundreds of strings. Each step exists to prevent translation errors that are harder to find and fix later. This process takes time, and that's ok. Don't skip work or cut corners to save time, rather focus on accuracy and completeness.
  9. Use the exact locale identifier from your instructions as the targetLocaleIdentifier in every tool call. Do NOT normalize, canonicalize, or expand it (e.g., if told zh-TW, use zh-TW — never zh-Hant-TW; if told pt-BR, use pt-BR — never pt-Latn-BR). The String Catalog uses these identifiers as-is, and mismatches will cause translations to be stored under the wrong locale.

Example

For each string key:

  1. Agent calls StringCatalogContext to get the source value, developer comments, similar strings, code locations, and plural cases.
  2. Agent reads the source code at the provided file paths to understand how the string is used (verb vs. noun, button vs. label).
  3. Agent reads the locale style guide (when one exists for the target locale), reviews existing translations for terminology and tone, and notes any explicit guidance in its instructions — then applies them with explicit instructions taking precedence over existing translations, and existing translations over the style guide.
  4. Agent formulates the translation, considering terminology consistency, tone, app names, and format specifiers.
  5. Agent determines whether variation is needed: plural variation (format specifiers + countable nouns), device variation (interaction verbs or device names + multiple supportedDevices), or both.
  6. Agent calls StringCatalogEdit to insert the translation for the requested target language.
Files (xcode-skills)
  • references
    • device-variations.md 5.2 KB
      # Device Variations
      
      Use device variation when a string's wording must change depending on the device the app runs on. Device variation is **optional and rarely needed** — most strings work identically across devices.
      
      ## Decision Tree
      
      ```
      Is the source string already varied by device?
      ├─ Yes → You MUST vary by device in the target language, using the same device keys.
      └─ No → Does the string reference a device-specific interaction or device name?
          ├─ No → Do NOT add device variations. Use simple `translation` or plural variation.
          └─ Yes → Is `supportedDevices` present in context with ≥ 2 device keys?
              ├─ No → Do NOT vary (single-platform app, no meaningful split).
              └─ Yes → Use `variationTranslation` with `topLevelVariation` keyed by device.
      ```
      
      ## When to Vary by Device
      
      ### Interaction verbs
      
      When the source string describes a gesture or input method that differs between touch-screen and pointer-based devices
      
      Examples:
      
      | Touch (iPhone, iPad, Apple Watch) | Pointer (Mac) | Notes |
      |---|---|---|
      | tap | click | Most common form of interaction |
      | swipe | scroll | Navigation gesture |
      | drag | drag | Same word, but sometimes phrased differently ("drag with your finger" vs. just "drag") |
      
      ### Device name references
      
      When the string mentions a specific device or form factor by name:
      
      - "on your **iPhone**" vs. "on your **Mac**"
      - "this **Apple Watch**" vs. "this **iPad**"
      - "Open App Store on your **Apple TV**" — the sentence structure may change for different devices.
      
      ## When NOT to Vary
      
      Do **not** add device variations for:
      
      - Generic labels, settings names, or status text ("Downloading…", "Settings", "Done").
      - Error messages that do not reference interaction mode or device name.
      - Strings that contain only nouns, numbers, or format specifiers without device-dependent wording.
      - Strings where the interaction verb is already device-neutral ("select", "choose", "open", "close").
      
      **Rule of thumb**: if replacing every device key with the same translation would produce a correct result, skip device variation.
      
      ## Device-Only Example
      
      **Source**: `"Tap to open"` (app builds for iPhone and Mac)
      
      ```json
      {
        "variationTranslation": {
          "topLevelVariation": {
            "device.iphone": "Toca para abrir",
            "device.mac": "Haz clic para abrir",
            "device.other": "Pulsa para abrir"
          }
        }
      }
      ```
      
      ## Combining Device and Plural Variations
      
      In rare cases, a string can need **both** device variation and plural variation — for example, `"Tap to launch %lld spaceships"` differs by device (tap vs. click) **and** has a countable noun.
      
      ### Single Plural Noun
      
      When only one format specifier + countable noun needs pluralization, use compound keys that combine device and plural in `topLevelVariation`. The format is `device.<device_variant>.plural.<plural_case>`. The `device.other` fallback must be a flat string — it cannot be further varied.
      
      **Source**: `"Tap to launch %lld spaceships"` (app builds for iPhone and Mac)
      
      ```json
      {
        "variationTranslation": {
          "topLevelVariation": {
            "device.iphone.plural.one": "Touchez pour lancer %lld vaisseau spatial",
            "device.iphone.plural.other": "Touchez pour lancer %lld vaisseaux spatiaux",
            "device.mac.plural.one": "Cliquez pour lancer %lld vaisseau spatial",
            "device.mac.plural.other": "Cliquez pour lancer %lld vaisseaux spatiaux",
            "device.other": "Touchez pour lancer %lld vaisseaux spatiaux"
          }
        }
      }
      ```
      
      
      ### Multiple Plural Nouns
      
      When a device-varied string has multiple format specifiers each tied to a countable noun, use `topLevelVariation` keyed by device with `%#@name@` substitution references, and define the plural forms in `substitutions`. If the noun itself changes per device, create separate substitutions per device (e.g., `arg1_iphone`, `arg1_mac`).
      
      **Source**: `"Tap to share with %lld devices and %lld users"` (app builds for iPhone and Mac)
      
      ```json
      {
        "variationTranslation": {
          "topLevelVariation": {
            "device.iphone": "Tippe, um mit %#@devices@ und %#@users@ zu teilen",
            "device.mac": "Klicke, um mit %#@devices@ und %#@users@ zu teilen",
            "device.other": "Tippe, um mit %lld und %lld zu teilen"
          },
          "substitutions": [
            {
              "name": "devices",
              "argNum": 1,
              "formatSpecifier": "lld",
              "variants": {
                "plural.one": "%arg Gerät",
                "plural.other": "%arg Geräte"
              }
            },
            {
              "name": "users",
              "argNum": 2,
              "formatSpecifier": "lld",
              "variants": {
                "plural.one": "%arg Benutzer",
                "plural.other": "%arg Benutzer"
              }
            }
          ]
        }
      }
      ```
      
      See [references/plural-variations.md](references/plural-variations.md) for more details on plural variation rules and substitution structure.
      
      ## Critical Rules
      
      * The `StringCatalogContext` tool will tell you what device keys are available. `device.other` is a fallback for any unknown device.
      * When plural variations are required, provide all plural cases from `relevantPluralCases` for every device key **except** `device.other`, which is always a flat fallback string.
      * The `device.other` fallback must use plain format specifiers (`%lld`), not substitution references (`%#@name@`). Fallback values cannot be further varied.
      
    • plural-variations.md 4.6 KB
      # Plural Variations
      
      Use plural variation when a string contains a **format specifier + countable noun**. The context tool provides `relevantPluralCases` for the target locale—always provide all cases.
      
      ## Decision Tree
      
      ```
      Does the string contain a format specifier (%lld, %d, %@, etc.)?
      ├─ No → Use simple `translation`
      └─ Yes → Is there a countable noun tied to that number?
          ├─ No → Use simple `translation` (number is standalone)
          └─ Yes → How many format specifier + noun pairs?
              ├─ One → Use `variationTranslation` with `topLevelVariation`
              └─ Multiple → Use `templateTranslation` with `substitutions`
      ```
      
      ## Translation Types
      
      ### Simple Translation
      
      No format specifiers, or format specifiers without countable nouns.
      
      ```json
      { "translation": "Willkommen in unserer App" }
      ```
      
      ### Single Noun Variation
      
      One format specifier with one noun that varies by count.
      
      **Source**: `"Order %lld croissants"`
      
      ```json
      {
        "variationTranslation": {
          "topLevelVariation": {
            "plural.one": "Order %lld croissant",
            "plural.other": "Order %lld croissants"
          }
        }
      }
      ```
      
      If providing an explicit `zero` case does not meaningfully improve the semantics of the translation, you may omit it.
      
      **Critical**: Preserve the exact format specifier (`%lld`, `%1$lld`, etc.) in each variant. Only the noun changes.
      **Critical**: Provide the entire variation structure, including any variations that might have translations already. You can only write the entire structure at once, and this overwrites what was there before.
      
      ### Multiple Noun Variation
      
      Multiple format specifiers, each with a noun needing pluralization.
      
      **Source**: `"Order %lld apples and %lld oranges"`
      
      ```json
      {
        "templateTranslation": {
          "template": "Order %#@apples@ and %#@oranges@",
          "substitutions": [
            {
              "name": "apples",
              "argNum": 1,
              "formatSpecifier": "lld",
              "variants": {
                "plural.one": "%arg apple",
                "plural.other": "%arg apples"
              }
            },
            {
              "name": "oranges",
              "argNum": 2,
              "formatSpecifier": "lld",
              "variants": {
                "plural.one": "%arg orange",
                "plural.other": "%arg oranges"
              }
            }
          ]
        }
      }
      ```
      
      **Key points**:
      - Template uses `%#@name@` to reference substitutions
      - Each substitution needs `argNum` (1-indexed position) and `formatSpecifier` (without %)
      - Variants use `%arg` as placeholder for the number
      
      ### Device Variations with Plurals
      
      When source has device variations AND each contains nouns needing pluralization, vary by device first, then by plural:
      
      ```json
      {
        "variationTranslation": {
          "topLevelVariation": {
            "device.iphone": "iPhone users have %#@apps@",
            "device.mac": "Mac users have %#@apps@",
            "device.other": "Users have %lld apps"
          },
          "substitutions": [
            {
              "name": "apps",
              "argNum": 1,
              "formatSpecifier": "lld",
              "variants": {
                "plural.one": "%arg app",
                "plural.other": "%arg apps"
              }
            }
          ]
        }
      }
      ```
      
      ## When the Source Needs Plural First
      
      If `StringCatalogContext` returned a `sourcePluralCasesToAdd`, the source string might have to be varied by plural, but is not yet. You need to vary the source value by plural first.
      
      Follow this two-step flow — one `StringCatalogEdit` call per step:
      
      1. **Vary the source.** Call `StringCatalogEdit` with `targetLocaleIdentifier` set to the source locale identifier (from `sourceValues.sourceLocaleIdentifier`). Supply a suitable plural variation structure that covers every case in `sourcePluralCasesToAdd`.
      2. **Translate the target.** Only after the source edit succeeds, call `StringCatalogEdit` a second time with the real `targetLocaleIdentifier` and a variation/template translation that uses every case in `relevantPluralCases`.
      
      Do not attempt to do both edits in one call, and do not translate the target before the source has been varied.
      
      **Critical**: The `device.other` fallback must be a flat string with plain format specifiers — it cannot reference substitutions or be further varied.
      
      See [references/device-variations.md](references/device-variations.md) for when to add device variations and which device keys to use.
      
      **Critical**: If the string is varied in the source language, you MUST use the same variation technique (i.e. top-level variation vs. substitution) in the target language.
      
      ## Plural Cases by Language
      
      Different languages require different plural cases. The context tool tells you which cases to provide.
      Always check `relevantPluralCases` from the context tool—it's authoritative for the target locale.
      
    • styleguide_ar.md 4.7 KB
      # Arabic (ar) — Software String Localization Style Guide
      
      - **Modern Standard Arabic only**: All translations must use neutral MSA (Modern Standard Arabic) understood across all Arab countries. Translations must not be characterized by any specific country's dialect or regional vocabulary.
      
      - **Gender-neutral imperatives via workarounds**: Avoid gendered imperative forms by using يمكنك / يمكن / يرجى / يجب instead of directly conjugated verbs. E.g., "Enable" → "يمكنك التمكين" (not "مكِّن"). Use masculine imperative only when workarounds would sound unnatural: sequential instructions, direct contextual instructions (e.g., "قرب الكاميرا من وجهك"), or sentences with multiple imperatives. For "please" phrases, consistently use "يرجى".
      
      - **Gender with name variables**: For strings where `%@` represents a person's name, prefer a noun-based construction to avoid gendered verb conjugation. E.g., `%@ liked this photo` → `إعجاب من %@ بهذه الصورة` ✓. When a noun-based workaround is not possible, append `(ت)` to the verb: `انضم(ت) %@ إلى الدردشة` ✓.
      
      - **Avoid "قم بـ" and "لا تقم"**: Never use the auxiliary "قم" construction — use يرجى or the direct verb instead. E.g., "Open the link" → "يرجى فتح الرابط" (not "قم بفتح الرابط"). For negative imperatives, use يجب عدم or لا + verb (not "لا تقم بـ"). For general negation, use "لن" with the original verb (not "لن تقوم بـ").
      
      - **Minimize possessives**: Drop الخاص بك / الخاص بي unless the possessive sense is vital to complete the meaning. "Your" with device names should be removed entirely — "Go to Settings on your iPhone" → "انتقل إلى الإعدادات على iPhone" (not "على الـ iPhone الخاص بك"). Use the pronoun suffix ـك only when it reads naturally (e.g., "جهات اتصالك").
      
      - **Present continuous**: Use يجري (masculine) / تجري (feminine) for ongoing actions on all platforms. E.g., "Syncing" → "تجري المزامنة", "Playing" → "يجري التشغيل".
      
      - **RTL and bidirectional text**: Arabic is RTL. Use Unicode directional markers (LRM/RLM) for strings ending with English words or variables. Keyboard shortcuts remain LTR and are not localized. Multi-key combos are arranged RTL: "Press Command-F5" → "F5-command اضغط على". Always add non-breaking space before the conjunctive "و" when it precedes English text to prevent line-break issues.
      
      - **Numerals**: Use Eastern Arabic numerals (١، ٢، ٣) unless the context is technical (IP addresses, version numbers, MAC addresses). In Technical context, use Western Arabic (1, 2, 3) numerals. Technical ratios, multipliers, and resolutions remain unlocalized (1/3, 16:9, 1x, 1088p). Size units use Arabic abbreviation with dots: غ.ب. for GB, م.ب. for MB — single dot at end of sentence to avoid duplication.
      
      - **Arabic punctuation marks**: Use Arabic comma "،" and Arabic question mark "؟". Arabic percentage sign ٪ is placed after the number. Always use the ellipsis character …  instead of three dots. Do not close nominal phrases or imperative commands with a period.
      
      - **Quotation marks**: Use straight quotes " " only — never curly. Do not enclose UI options in quotation marks unless omitting them would make the context confusing to the reader.
      
      - **Conjunctive "و" over commas**: Always use و or أو to join items, not commas, except in sequential action steps where commas improve readability. E.g., "iPhone و iPad و Mac" (not "iPhone، iPad والـ Mac").
      
      - **No transliteration of product names and Apple terms**: Apple product names and trademarks must remain in their original English form — never transliterate them into Arabic script. Write `iPhone` not `آيفون`, `iCloud` not `آي كلاود`, `App Store` not `آب ستور`, `AirDrop` not `إير دروب`.
      
      - **Product name gender**: Phone and TV are masculine. Watches, displays, speakers, headphones, AirTags, and services are feminine. Apple Vision Pro is feminine unless referred to in the source string as a device or spatial computer (then masculine).
      
      - **Diacritics**: No full vocalization needed — add diacritics only to disambiguate. A shadda must always be accompanied by its vowel mark (شدَّة not شدّة). Tanwin is written on the letter preceding the alif (حاليًا not حالياً).
      
      - **Passive voice by readability**: Choose between تم + verbal noun and the Arabic passive form based on readability. Use "تم استيراد الصور" when the passive verb form is uncommon, but "أُرسِلت الرسالة" when it reads naturally. Exercise judgment when uncertain.
      
    • styleguide_bg.md 11.4 KB
      # Bulgarian (bg) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Bulgarian uses curly double quotation marks „ (\u201E) and “ (\u201C) for quoting — not straight ASCII quotes.
      
      ## Tone And Voice
      
      - **Smart but Neutral Style**: Bulgarian text should feel professional yet approachable — closer to formal than informal, but never stiff. Avoid trendy slang or colloquialisms. Prefer genuine Bulgarian terminology over English loan words wherever a clear Bulgarian equivalent exists.
        - *Source:* "ringtone" → *Target:* "тон на звънене"
      
      - **Prefer Bulgarian Over Transliteration**: Use established Bulgarian terms rather than transliterating English words into Cyrillic. Transliteration is only acceptable when a transliterated form is already widely recognized in Bulgarian technical usage.
        - *Source:* "ringtone" → *Target:* "тон на звънене" (not "ринг тон")
        - *Source:* "file" → *Target:* "файл"
      
      ## Addressing Users
      
      - **T/V Distinction (Вие vs. ти)**: Bulgarian distinguishes formal/polite second-person plural (Вие, Вас, Вашия) from informal singular (ти, теб, твоя). Default to the polite plural Вие form when the device addresses the user (notifications, messages, instructions). Reduce explicit Вие/Вас pronouns where Bulgarian style makes them unnecessary — verb endings already encode person and number. Use the informal singular ти form only for: strings exclusively directed at children, strings explicitly framed as friend/family interaction, and strings representing the user instructing the device (Siri voice commands, voice input).
        - *Source:* "Your settings have been saved." → *Target:* "Настройките са запазени."
        - *Source:* "You can share this with your friends." → *Target:* "Можеш да споделиш това с приятелите си."
        - *Source:* "Send an email" (Siri command) → *Target:* "Изпрати имейл"
      
      - **Gender-Neutral User References**: Avoid gender-biased translations. Use потребител as a gender-neutral reference when a pronoun or gendered noun would otherwise be required.
        - *Source:* "He/She can change the settings." → *Target:* "Потребителят може да промени настройките."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in UI Strings**: Do not shorten words through abbreviations to fit space constraints — instead reword the string. Only use Вкл. and Изкл. for on/off UI toggles, and и др. only when space does not allow и други.
        - *Source:* "On / Off" → *Target:* "Вкл. / Изкл."
      
      - **Day-of-Week Abbreviations**: When space is very tight use single capitalized Cyrillic letters for days of the week. When slightly more space is available use the two-letter capitalized abbreviation forms. Note that the single-letter forms are positional only — П covers both Понеделник and Петък, С covers both Сряда and Събота — so they only disambiguate within an ordered weekday row.
        - *Source:* "Mon Tue Wed Thu Fri Sat Sun" (single-letter form) → *Target:* "П В С Ч П С Н"
        - *Source:* "Mon Tue Wed Thu Fri Sat Sun" (two-letter form) → *Target:* "Пн Вт Ср Чт Пт Сб Нд"
      
      ## Acronyms
      
      - **Do Not Translate Acronyms Unless Standardized**: Keep technical acronyms (CD-ROM, RAM, ISO, etc.) in their original form. Never use periods within acronyms in Bulgarian. Only translate an acronym when a standard industrial Bulgarian equivalent exists in technical dictionaries.
        - *Source:* "RAM (random access memory)" → *Target:* "RAM (памет с произволен достъп)"
        - *Source:* "HTTPS" → *Target:* "HTTPS" (keep as-is, do not transliterate)
      
      ## Grammar
      
      - **Gender Agreement for Foreign Product Names**: Bulgarian has three grammatical genders. When space is constrained, derive masculine gender from the zero ending of foreign product names. When space allows, prepend a Bulgarian determiner noun to clarify the intended gender.
        - *Source:* "Apple TV is on." → *Target:* "Apple TV е включен."
        - *Source:* "iCloud is active." → *Target:* "Услугата iCloud е активна." (with determiner noun when space allows)
      
      - **Imperative for User Instructions**: All user-facing step-by-step instructions must be written in the imperative mood. This applies to software steps, setup guides, and how-to documentation.
        - *Source:* "Install XYZ." → *Target:* "Инсталирайте XYZ."
        - *Source:* "Select File > Duplicate." → *Target:* "Изберете меню Файл > Дублирай."
      
      - **Undo/Redo Strings Use Lowercase Noun Phrase**: Undo (Отмени) and Redo (Отново) menu commands are followed by a lowercase noun phrase in Bulgarian, unlike English which repeats the capitalized command verb. The actual menu command and its undo/redo counterpart may therefore be translated differently.
        - *Source:* "Undo Edit Photo" → *Target:* "Отмени редактиране на снимка"
        - *Source:* "Redo Edit Photo" → *Target:* "Отново редактиране на снимка"
      
      - **Tooltip Types — Hint vs. Prompt**: Hint tooltips (no clause of purpose) use present tense third person. Prompt or instruction tooltips (with a clause of purpose such as to, in order to) use the imperative.
        - *Source:* "Remove a XYZ settings file" (hint tooltip) → *Target:* "Изтрива файла с параметри XYZ"
        - *Source:* "Press and hold to create a new project" (prompt tooltip) → *Target:* "Натиснете и задръжте, за да създадете нов проект."
      
      ## Date And Time
      
      - **Use 24-Hour Time Format**: Convert 12-hour AM/PM times to the 24-hour system wherever possible. Only keep AM/PM notation when the string explicitly relates to the American time format distinction as a selectable display option.
        - *Source:* "4:00 PM" → *Target:* "16:00"
      
      ## Numerals
      
      - **Decimal Comma and Non-Breaking Space Thousands Separator**: Bulgarian uses a comma as the decimal separator and a non-breaking space as the thousands separator. Version numbers are an exception and keep the period as separator. Remove the v prefix from version strings and replace it with the word версия.
        - *Source:* "11,234.50 kg" → *Target:* "11 234,50 kg"
        - *Source:* "Requires OS X v10.8.2." → *Target:* "Необходима e версия OS X 10.8.2."
      
      ## Measurements
      
      - **Do Not Convert Units; Use Latin SI Symbols**: Never convert measurement units (e.g. inches to centimetres). Bulgaria follows the SI system, which uses Latin-character unit symbols — do not use Cyrillic equivalents. Use a non-breaking space between the numerical value and the unit symbol; exceptions are the percent and degree signs.
        - *Source:* "2.5 GB" → *Target:* "2,5 GB"
        - *Source:* "0.45" → *Target:* "0,45"
      
      ## Addresses
      
      - **Bulgarian Address Format**: Format addresses following Bulgarian Post conventions — recipient name, street and number, 4-digit postal code, and city on separate lines.
      
      ## Punctuation
      
      - **Bulgarian Quotation Marks**: Use „ (\u201E) as the opening quotation mark and “ (\u201C) as the closing quotation mark. Do not use quotation marks around app names, UI navigation paths, button names, or variables representing a person's name or email address. Add quotes around UI elements only when they genuinely aid readability.
        - *Source:* "Click \u201CDone\u201D." → *Target:* "Щракнете върху Готово." (no quotes around button name)
        - *Source:* "Select Messages > Settings > iMessage." → *Target:* "Изберете Съобщения > Настройки > iMessage" (no quotes in path)
      
      - **Spacing After Punctuation**: Use a space after full stops, commas, semicolons and other punctuation marks unless otherwise required by source.
      
      ## Special Characters
      
      - **Replace**: The # symbol to denote numbers or positions is not used in Bulgarian text — replace it with № followed by a non-breaking space. The `&` symbol should be translated as и in regular text. Keep `&` only when it is part of a trademark or product name (e.g. Plug&Play), with no spaces around it.
        - *Source:* "Track #5" → *Target:* "Запис №\u00A05" (use \u00A0 between № and the digit)
        - *Source:* "Cut & Paste" → *Target:* "Изрязване и поставяне"
        - *Source:* "Plug&Play" → *Target:* "Plug&Play"
      
      ## Interface Elements
      
      - **Window Titles Must Be Nouns**: Bulgarian window titles must be nouns, not verbs. English often reuses the verb form of a button as the title of the resulting screen — this is not acceptable in Bulgarian.
        - *Source:* "Edit Photo" (window title) → *Target:* "Редактиране на снимка"
      
      - **Buttons and Commands — Imperative Verbs for Actions; Fixed Forms for Dismissive Buttons**: Action and command labels (Copy, Paste, Delete, Save, Send, Open) are translated as 2nd-person singular imperative verbs. Dialog-closing and dismissive buttons (Cancel, OK, Yes, No, Done, Next) follow established fixed-form conventions and are usually nouns or short non-verbal forms. Menu items that trigger an action follow the imperative pattern; items that open submenus are usually nouns. Option and checkbox labels can be nouns or verbs as long as they agree grammatically with the surrounding context.
        - *Source:* "Copy" (command) → *Target:* "Копирай"
        - *Source:* "Paste" (command) → *Target:* "Постави"
        - *Source:* "Save" (command) → *Target:* "Запази"
        - *Source:* "Cancel" (button) → *Target:* "Отказ"
        - *Source:* "Done" (button) → *Target:* "Готово"
        - *Source:* "Next" (button) → *Target:* "Напред"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate or Transliterate Trademarks**: Apple trademarks, product names, and marketing terms must remain in English exactly as provided. Use non-breaking spaces within multi-word trademarks such as iPod touch to prevent awkward line breaks. For long compound names such as Apple Pro Display XDR, do not place a non-breaking space after Apple to avoid mid-word wrapping.
        - *Source:* "iPod touch" → *Target:* "iPod touch" (use a non-breaking space between iPod and touch)
        - *Source:* "True Tone, iTunes Match" → *Target:* "True Tone, iTunes Match" (keep as-is, do not transliterate)
      
      ## Variables
      
      - **Preserve Variables Exactly as in the Source**: Variables such as %@, %.1f, and %1$s must not be modified in any way — they are substituted at runtime and any alteration will break the substitution. Do not convert a period to a comma inside a numeric format specifier like %.1f GB; decimal formatting is handled by the software.
        - *Source:* "%.1f GB available" → *Target:* "%.1f GB свободно"
      
      ## Diminutives
      
      - **Diminutives**: Diminutives should be generally avoided, as they represent stylistic connotations not appropriate in technical translation.
      
      ## Genders
      
      - **Gender - Use Determiner words**: Bulgarian has three genders. For clear reference, in descriptive texts, it is possible to preposition the product name with a determiner word.
        - *Source:* "iTunes is open" → *Target:* "Приложението iTunes е стартирано"
      
      - **Derive Masculine Gender from the Zero Ending**: In cases with space constraints and to simplify the text, derive and use the masculine gender from the zero ending of the foreign word.
        - *Source:* "iTunes is open, iPhone is turned on" → *Target:* "iTunes е стартиран, iPhone е включен"
      
    • styleguide_bn.md 17.3 KB
      # Bengali (bn) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Bangla follows English-style quoting — curly double quotation marks “ (\u201C) and ” (\u201D).
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Use Cholito-bhasha (চলিত ভাষা), the standard written colloquial Bangla with shortened verb forms. The tone should be closer to formal than informal, but never stiff or archaic. Follow the register of reputable national newspapers like Anandabazar Patrika.
        - *Source:* "Later than 10 days ago" → *Target:* "10 দিনেরও আগে"
      
      - **Prefer Transliteration Over Archaic Bangla Terms**: When a Bangla term is archaic, obsolete, or not popularly understood, use transliteration instead. Avoid creating overly literal Bangla neologisms that will confuse users. Technical and IT terms that are widely used in English should generally be transliterated.
        - *Source:* "Download" → *Target:* "ডাউনলোড" (not "নিম্নভরণ")
        - *Source:* "Installation" → *Target:* "ইনস্টলেশন"
      
      - **Avoid Word-for-Word Translation**: Translate contextually, not literally. The reader should not feel they are reading a translation. Restructure sentences to sound natural in Bangla while preserving the meaning of the source.
        - *Source:* "Replace the battery." → *Target:* "ব্যাটারি বদলান।"
      
      ## Addressing Users
      
      - **Use Formal Second Person (আপনি)**: Always address the user with the honorific আপনি and the corresponding polite verb forms. Never use the informal তুমি or তুই. This applies equally when addressing adults and minors.
        - *Source:* "Enter your phone number." → *Target:* "আপনার ফোন নম্বর লিখুন।"
      
      ## Abbreviations
      
      - **Abbreviation Formation with বিসর্গ**: Bangla abbreviations are formed using the বিসর্গ (ঃ) symbol, by taking the first letter or syllable of a word. Avoid creating abbreviations in software unless absolutely necessary; prefer rewording instead.
        - *Source:* "Note" → *Target:* "বিঃদ্রঃ"
      
      ## Acronyms
      
      - **Do Not Translate Acronyms**: Keep acronyms in their original English form unless a very common localized equivalent exists. Popular acronyms like UNESCO, FIFA, NASA are written without a full stop or বিসর্গ, often in transliterated Bangla.
        - *Source:* "UNESCO" → *Target:* "ইউনেস্কো"
        - *Source:* "HDR" → *Target:* "HDR"
      
      ## Date And Time
      
      - **Date Format**: Use international numerals in dates. The correspondence format is DD Month YYYY (e.g., 17 ডিসেম্বর 2022). The long format is DD/MM/YYYY and the short format is DD/MM/YY. Do not use a comma to separate the month from the year.
        - *Source:* "December 17, 2022" → *Target:* "17 ডিসেম্বর 2022"
      
      - **Time Format and AM/PM**: Use hh:mm:ss with a colon as separator and no spaces around the colon. Do not translate or localize AM/PM: keep it in English, following source capitalization.
        - *Source:* "10:18:35 AM" → *Target:* "10:18:35 AM"
      
      ## Measurements
      
      - **Retain Electronic and Computer Units in English**: Units related to electronics and computing (GB, KB, dB, etc.) should remain in English. There must be a space between the number and the unit. Do not convert imperial to metric. Some units are exempt from CLDR: μS, oz, kcal, dB, cal.
        - *Source:* "8 GB" → *Target:* "8 GB"
        - *Source:* "1080p" → *Target:* "1080p"
      
      ## Names And Addresses
      
      - **Use Caste- and Sect-Neutral Sample Names**: When localizing English placeholder names (e.g., John Doe, Jane Doe), choose Indian-Bangla equivalents that do not reveal caste, religion, or regional sect. Use a culturally diverse mix that reflects gender balance. If the UI shows a non-Indian person's photo or context, transliterate the source name instead of substituting a Bangla one.
      
      ## Numerals
      
      - **Use International Numerals and Indian Separator System**: The system standard for Bangla is international numerals (0–9). Use the Indian number separator system (e.g., 10,00,000).
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 গান"
        - *Source:* "%lld person" → *Target:* "%lld জন ব্যক্তি"
      
      ## Punctuation
      
      - **Use Bangla Dari (।) as Full Stop**: The Bangla dari (।) must be used as a full stop, not the Latin period (.). The Latin period is only used as a dot or within abbreviations. There is no space before the dari and one space follows it before the next sentence begins.
        - *Source:* "Update will begin now. Please wait." → *Target:* "এখন আপডেট করা হবে। তাই অপেক্ষা করুন।"
      
      - **Use Curly Double Quotes for UI String References**: Use curly double quotes “ (\u201C) and ” (\u201D) in UI strings, not straight quotes. Use them minimally: only when grammatical ambiguity arises from pluralization, oblique case, or other grammatical changes caused by an app or feature name.
        - *Source:* "Tap \u201CEdit Watchlist\u201D" → *Target:* "\u201Cওয়াচলিস্ট এডিট করুন\u201D-এ ট্যাপ করুন"
      
      - **Colon Usage After Titles and Headings**: When a heading is followed by an explanatory sentence or phrase, use a colon (:) to connect them: not a dari (।) or full stop. A single space follows the colon.
        - *Source:* "Lock Screen. Your lock screen photo" → *Target:* "লক স্ক্রিন: আপনার লক স্ক্রিনের ছবি"
      
      ## Special Characters
      
      - **Use Bangla Visarga, Not English Colon**: The Bangla Abbreviation Sign (ঃ) must not be replaced with an English colon (:). The Bangla Virama (॥) must not be formed by typing two dandas (।।). Pipe characters (|) must never be used as Virama.
        - *Source:* "Note:" → *Target:* "বিঃদ্রঃ" (use ঃ, not the Latin colon :)
      
      ## Grammar
      
      - **No Articles: Avoid Translating 'a/an' as এক**: Bangla has no articles. Do not translate 'a' or 'an' as 'এক' unless it is genuinely needed for meaning. Most English sentences with articles translate naturally into Bangla without any article equivalent.
        - *Source:* "Take a break." → *Target:* "বিরতি নিন।"
        - *Source:* "Add a file." → *Target:* "একটি ফাইল যোগ করুন।"
      
      - **Pluralization Classifiers**: Use 'গুলি' (not 'গুলো') for inanimate plural nouns, and 'রা', 'দের', or 'গণ' for animate ones. Attach the classifier directly to the noun with no space or hyphen. Do not add a classifier to nouns that are already inherently plural.
        - *Source:* "Wi-Fi networks" → *Target:* "Wi-Fi নেটওয়ার্কগুলি"
        - *Source:* "Headphones" → *Target:* "হেডফোন" (not "হেডফোনগুলি")
      
      - **Use Passive Voice When Subject Is Absent**: When the English source is in active voice but the subject performing the action is absent or implied, use passive voice in Bangla. This applies to gerunds, verb+object strings, and strings where you can ask 'who will do this?' without finding the answer in the string.
        - *Source:* "updating…" → *Target:* "আপডেট হচ্ছে"
        - *Source:* "Adding %@ Videos" → *Target:* "%@টি ভিডিও যোগ করা হচ্ছে"
      
      - **Distinguish কী and কি**: Use 'কি' when the answer to a question is yes or no. Use 'কী' when asking about what something is or what someone wants. Also use 'কী' when referring to a keyboard KEY.
        - *Source:* "What do you want?" → *Target:* "আপনি কী চান?"
        - *Source:* "Do you want to go?" → *Target:* "আপনি কি যেতে চান?"
      
      - **Conjunction Usage (এবং vs ও)**: Use ও to join nouns (or short noun-like elements) within a clause. Use এবং to join independent clauses or full sentences. Do not add a comma before either conjunction in the target text.
        - *Source:* "macOS and iOS both have the same features and these are useful." → *Target:* "macOS ও iOS উভয়েরই একই ফিচার আছে এবং সেগুলি উপকারী।"
      
      - **Maintain Parallel Flow in Lists**: List items must match the grammatical flow of the parent phrase in the source (conjugated, imperative, or infinitive). Use the imperative form for actionable list items.
        - *Source:* "Update your contact information" → *Target:* "আপনার কন্ট্যাক্টের তথ্য আপডেট করুন"
      
      - **Avoid Personification (Passive Voice)**: Do not personify apps. Use passive voice instead of making the app the active subject (e.g., 'In [App], [action] is being done' / 'অ্যাপে... করা হচ্ছে').
        - *Source:* "Passwords is attempting to sign in to this account and fix the password." → *Target:* "পাসওয়ার্ড অ্যাপে এই অ্যাকাউন্টে সাইন ইন করা এবং পাসওয়ার্ড ঠিক করার চেষ্টা করা হচ্ছে।"
      
      - **Avoid Personification (User Perspective)**: Do not personify features or access permissions. Shift to the user's perspective using phrases like 'Through [Feature], you can...' (এর মাধ্যমে আপনি... পারবেন).
        - *Source:* "Camera access allows you to redeem gift cards and add payment methods when managing payments with your Apple ID." → *Target:* "ক্যামেরা অ্যাক্সেসের মাধ্যমে আপনি গিফ্ট কার্ড রিডিম করতে ও আপনার Apple ID-এর মাধ্যমে পেমেন্ট সম্পন্ন করার সময় বিভিন্ন পেমেন্ট পদ্ধতি যোগ করতে পারবেন।"
      
      - **Avoid Personification (Feature Description)**: When a string describes what a feature does (e.g., 'Opens the photo'), do not make the feature the actor. Restructure with a purpose phrase or passive voice.
        - *Source:* "Opens the photo to Crop." → *Target:* "ক্রপ করার জন্য ছবি খোলে।"
      
      ## Interface Elements
      
      - **Button Names in Imperative Form with Helping Verbs**: Translate button and callout bar item names in the imperative form. Include a helping verb (করুন, লিখুন, দিন, চাপুন, etc.) to prevent the translation from reading as a noun. Without the helping verb, the meaning becomes ambiguous.
        - *Source:* "Edit" → *Target:* "এডিট করুন"
        - *Source:* "Reply" → *Target:* "উত্তর দিন"
        - *Source:* "Answer" → *Target:* "উত্তর দিন"
      
      - **Transliterate Keyboard Key Names**: Names of keyboard keys and shortcuts should be transliterated. US keyboard shortcuts (e.g., ⌘N) should be copied as-is without localizing the key character. Physical key names like Option, Command, Esc are transliterated.
        - *Source:* "Option" → *Target:* "অপশন"
        - *Source:* "Up Arrow" → *Target:* "আপ অ্যারো"
      
      - **Singular Nouns for App Names and Categories**: When categorizing objects or translating App names that are plural in English (e.g., Files, Photos, Reminders), use the singular noun in Bangla. Exceptions: 'Settings' (সেটিংস) and 'Stocks' (স্টকস) retain their plural transliteration.
        - *Source:* "Photos" → *Target:* "ছবি"
      
      ## Trademarks And Product Names
      
      - **Do Not Transliterate Trademarks Used as Verbs**: If an Apple trademark is used as a verb in English, keep the trademark in Latin script and restructure the sentence using a native Bangla helper verb. Never transliterate it.
        - *Source:* "AirDrop this file." → *Target:* "এই ফাইলটি AirDrop করুন।"
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Variables must be kept intact and not altered. If Bangla word order requires reordering variables, number all variables with the n$ index immediately after the % sign so they resolve correctly at runtime. Do not change the decimal separator inside numeric format strings.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%2$@-এ %3$@ খেলে পাওয়া %1$@ স্কোর চেক করুন"
      
      ## Diversity And Inclusion
      
      - **Use Culturally Sensitive Terminology**: Research words before using them to avoid cultural offense. For example, 'beef' should be transliterated as বিফ rather than গোমাংস, which is sensitive to the Hindu community. Similarly, 'pork' should be transliterated as পর্ক to avoid community-specific language. Avoid terms that are violent, oppressive, or ableist.
        - *Source:* "Beef" → *Target:* "বিফ" (not "গোমাংস")
        - *Source:* "Pork" → *Target:* "পর্ক" (not "শুয়োরের মাংস")
      
      ## Terminology
      
      - **Translate Standard Colors, Transliterate Brand Colors**: Translate universally recognized basic colors into direct Bangla equivalents (e.g., Red to লাল). However, consistently transliterate coined or brand-specific color names (e.g., Midnight Black to মিডনাইট ব্ল্যাক) to maintain brand identity.
        - *Source:* "Midnight Black" → *Target:* "মিডনাইট ব্ল্যাক"
      
      - **Translate Everyday Words**: If a natural, everyday Bangla word exists that accurately describes the function and fits the UI, translate it using native Bangla script.
        - *Source:* "Help" → *Target:* "সাহায্য"
      
      - **Transliterate Tech Concepts and Archaic Terms**: Transliterate English words into Bangla script if the native Bangla translation is highly formal/archaic, or if the term is a modern tech concept with no native equivalent.
        - *Source:* "Password" → *Target:* "পাসওয়ার্ড"
      
      - **Keep Global Standards in English**: If the term is a universally recognized technical protocol, file extension, or brand name, do not translate or transliterate it. Keep it in English (Latin script).
        - *Source:* "Wi-Fi" → *Target:* "Wi-Fi"
      
      ## Formatting
      
      - **URL Formatting in Sentences**: Do not embed URLs directly into the flow of a sentence. Use a simple, instructional phrase (like "go here" or "visit") followed by a colon and the URL.
        - *Source:* "Go to account.apple.com." → *Target:* "এখানে যান: account.apple.com"
      
      ## Spelling
      
      - **Use Short Vowels in Transliterated Words**: Transliterated English words containing 'ee' or 'oo' sounds must be written in Bangla with short vowels (ি, ু) rather than long vowels (ী, ূ) to maintain consistency.
        - *Source:* "League" → *Target:* "লিগ"
      
      - **Use অ্যা for Short 'a' (/æ/) Sounds**: When an English word contains the short 'a' /æ/ sound (as in 'app' or 'flash'), always render it as 'অ্যা' at the start of a word, or with '্যা' when it follows a consonant. Do not use the regular 'আ'.
        - *Source:* "Camera" → *Target:* "ক্যামেরা" (not "কামেরা")
      
      - **No Diacritic for the অ (ɔː) Sound**: The short 'o' or ɔː sound in English is an inherent part of Bangla consonants. Do not use a separate diacritic for it when translating.
        - *Source:* "Lock" → *Target:* "লক"
      
      - **Distinguish Sibilant 'S' Consonants (স vs শ)**: Never use 'ষ' in transliterated words. Use 'স' when 'C' is followed by E, I, or Y. Use 'শ' when 'C' is followed by IA or EA, or for 'Sh' and 'tion' sounds.
        - *Source:* "Application" → *Target:* "অ্যাপ্লিকেশন"
      
      - **Map 'Z' Sounds to জ Without Nuqta**: Bangla does not differentiate between 'ja' and 'za' sounds. Map English 'Z' sounds to 'জ'. Do not use 'ঝ' or add a Nuqta (়).
        - *Source:* "Zurich" → *Target:* "জুরিখ"
      
      - **Map 'F' and 'Ph' Sounds to ফ Without Nuqta**: Both 'fa' and 'pha' sounds in English are denoted by the letter 'ফ'. Do not use a Nuqta (়) to differentiate them in transliteration.
        - *Source:* "File" → *Target:* "ফাইল"
      
      - **Avoid Archaic Consonants in Transliteration**: When transliterating English loan words, avoid using the consonants ণ, ষ, ড়, ঢ়, and য unless they are long-established historical exceptions (like মেশিন).
        - *Source:* "Station" → *Target:* "স্টেশন" (not "স্টেশণ")
      
      - **Transcribe English Plural Sounds Phonetically**: If an English word must be transliterated in its plural form, transcribe the final plural sound strictly based on its phonetics (e.g., using 'স' or 'জ').
        - *Source:* "Settings" → *Target:* "সেটিংস"
      
      ## Typography
      
      - **Encode য়, র, ড়, and ঢ় as Their Own Consonants**: য়, র, ড়, and ঢ় are independent Bengali consonants, each with its own phoneme — they are not the bare consonants য, ব, ড, ঢ marked with a nuqta. Always encode them as the standard Bengali codepoints for those consonants, matching Unicode NFC normalization. Do not substitute the unmarked base consonants য (\u09AF), ব (\u09AC), ড (\u09A1), or ঢ (\u09A2) for them.
        - *Source:* "ya" → *Target:* "য়" (encode as the য় consonant, not as base য + nuqta)
      
      - **Use Zero-Width Joiner (ZWJ) for Ya Phala**: Use ZWJ to correctly form conjuncts in transliterated words when 'র' is followed by 'য-ফলা'. The correct sequence is র + ZWJ + ◌্ + য.
        - *Source:* "Rank" → *Target:* "র‍্যাঙ্ক"
      
    • styleguide_ca.md 15.6 KB
      # Catalan (ca) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Catalan uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting and the curly apostrophe ’ (\u2019) for elision and possessives.
      
      ## Tone And Voice
      
      - **Natural and Concise Style**: Translations should read naturally in Catalan, not like word-for-word renderings of English. Keep sentences short, grammatically simple, and avoid unnecessary connectors or filler words — especially in instructional content.
        - *Source:* "Press the Home button twice and then tap an app to open it." → *Target:* "Prem dues vegades el botó d\u2019inici i toca una app per obrir-la."
      
      ## Special Characters
      
      - **Use Single Ellipsis Character**: Always use the single ellipsis glyph (…) rather than three consecutive periods. This ensures correct rendering, proper spacing between dots, and accurate screen-reader narration.
        - *Source:* "Loading..." → *Target:* "Carregant…"
      
      ## Abbreviations
      
      - **Spell Out Abbreviations Where Space Allows**: Catalan uses abbreviations far less frequently than English. Spell out fully whenever space is not a constraint. When abbreviating is unavoidable, use only well-known Catalan abbreviations that end with a period and are cut after a consonant.
        - *Source:* "e.g." → *Target:* "p. ex."
      
      ## Acronyms
      
      - **Keep Acronyms in English Form**: Do not translate acronyms unless a widely recognised Catalan equivalent exists. Acronyms are written without periods, spaces, or plural endings.
        - *Source:* "USB, RAM, HTML" → *Target:* "USB, RAM, HTML"
      
      ## Date And Time
      
      - **Date Format DD/MM/YYYY and 24-Hour Clock**: Catalan dates follow the day/month/year order using a slash separator. Use the 24-hour clock for time. Omit leading zeros from day and month. Write 'a. m.' and 'p. m.' only when the US format must be preserved.
        - *Source:* "01/03/2012, 4:30 PM" → *Target:* "3/1/2012, 16:30"
      
      ## Numerals
      
      - **Ordinal Number Abbreviations**: Abbreviate ordinals by appending the last letter of the full word to the numeral (e.g. 1r, 2a, 10è). For plurals, append the last two letters (e.g. 1rs, 2es). Never use superscripted ordinal indicators (ª, º).
        - *Source:* "1st, 2nd, 10th" → *Target:* "1r, 2a, 10è"
      
      ## Addresses
      
      - **Catalan Address Format**: When localizing postal addresses, follow Catalan conventions: translate generic street types ("Main Street" → "Carrer Major", "Avenue" → "Avinguda") and use Catalan order (street name and number, then postal code and locality, then province). Do not leave English sample data in production strings. Example format: `Carrer Major, 123, Localitat, CP Província`.
      
      ## Interface Elements
      
      - **Undo Strings Must Be Lowercase Noun Phrases**: Undo action strings are inserted as direct objects into the runtime string "Desfés %@". Translate them as lowercase noun phrases so the combined string reads naturally. Never use an imperative form for undo strings.
        - *Source:* "Adjust Saturation" → *Target:* "l\u2019ajustament de la saturació"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarked Names**: Apple product names, trademarked slogans, and font names must not be translated. Descriptive feature names may be translated as lowercase common nouns with an article.
        - *Source:* "Game Center, Spotlight" → *Target:* "Game Center, Spotlight"
        - *Source:* "Notification Center" → *Target:* "el centre de notificacions"
      
      ## Variables
      
      - **Preserve Variables and Use Positional Indices When Reordering**: All source variables must appear in the translation. If Catalan word order requires variables in a different sequence, add positional indices (e.g. %1$@, %2$@) to every variable in the string — including when variable types differ. Never modify the characters inside a variable format specifier.
        - *Source:* "%@\u2019s %@" → *Target:* "%2$@ de %1$@"
        - *Source:* "Page %1$@ of %2$@" → *Target:* "Pàgina %1$@ de %2$@"
      
      ## General Advice
      
      - **Use Context Clues to Resolve Ambiguous Short Strings**: Short strings often have multiple valid translations. Before committing to a translation, examine the string ID, surrounding strings, and file name for context clues about the string's function, expected length, and grammatical role.
        - *Source:* "All" → *Target:* "Tot / Tota / Tots / Totes" (depending on context)
        - *Source:* "Right" → *Target:* "Dreta" (position) or "Correcte" (adjective)
      
      - **Articles**: Apps, devices, online services, operating systems update names, and utility names use articles. Some app names may sound unnatural when the number of the article doesn't match the application name, therefore a descriptor word "app" should be used.
        - *Source:* "You can manage parental controls in Screen Time settings on your iPhone." → *Target:* "Pots gestionar els controls parentals a la configuració del temps d\u2019ús de l\u2019iPhone."
        - *Source:* "Welcome to Photos" → *Target:* "Et donem la benvinguda a l\u2019app Fotos."
      
      - **Descriptive style**: App names for "Settings" and "System Settings" should be used descriptively in lowercase and no descriptor. This criterion does not apply when mentioning a path with ">".
        - *Source:* "Turn on two-factor authentication in System Settings." → *Target:* "Activa l\u2019autenticació de doble factor a la configuració del sistema."
        - *Source:* "Open Settings to the Stocks app pane." → *Target:* "Obre la configuració de l\u2019app Borsa."
      
      - **Translation of for**: In cases where "for" acts as a possessive in English, it should not be translated as "per a" in Catalan but as "de". To avoid grammar problems with variables, add a descriptor word when possible.
        - *Source:* "Enter the password for \u201C%@\u201D." → *Target:* "Introdueix la contrasenya del compte %@."
        - *Source:* "Signing out of the last Apple Account for this profile will remove the profile entirely." → *Target:* "Si tanques la sessió de l\u2019últim compte d\u2019Apple del perfil, s\u2019eliminarà el perfil per complet."
      
      - **Possessives**: English possessives are frequently avoided in Catalan translations. Instead, the article is preferred. Only use possessives when they are really needed to avoid confusion.
        - *Source:* "Turn off your computer." → *Target:* "Apaga l\u2019ordinador."
        - *Source:* "Your Apple Account can only be used from devices you approve." → *Target:* "Només pots utilitzar el compte d\u2019Apple als dispositius que hagis aprovat."
      
      - **Form of address**: The informal form "tu" is used to address the user in all software.
        - *Source:* "Enjoy photos with a delightful 3D effect while you move your iPhone in your hand." → *Target:* "Gaudeix de les fotos amb un efecte 3D espectacular tan sols en moure una mica l\u2019iPhone."
        - *Source:* "Delete all downloaded languages from your device?" → *Target:* "Vols eliminar del dispositiu tots els idiomes descarregats?"
      
      - **Passive voice**: In Catalan, the passive voice is not used as often as in English. Instead, use the active voice or a reflexive passive with "es".
        - *Source:* "This font file is required by macOS to display onscreen text. It has been restored." → *Target:* "El macOS necessita aquest arxiu de tipus de lletra per mostrar text a la pantalla. S\u2019ha restaurat l\u2019arxiu."
        - *Source:* "Failed to download file." → *Target:* "No s\u2019ha pogut descarregar l\u2019arxiu."
      
      - **Gerunds**: Do not translate English gerunds as Catalan gerunds when these represent a nominal form and not a continuous action.
        - *Source:* "Sending information to Apple" → *Target:* "Enviament de la informació a Apple"
        - *Source:* "Measuring Your Heart Rate" → *Target:* "Mesurament de la freqüència cardíaca"
        - *Source:* "Deleting Text" → *Target:* "Eliminació de text"
      
      - **Repetitions**: English source text often repeats the same noun or subject across adjacent sentences. Merge these into a single fluent Catalan sentence using pronouns, semicolons, or coordinated clauses to avoid awkward redundancy.
        - *Source:* "If you didn't get a code, you can send another code to another device signed in with your Apple Account." → *Target:* "Si no has rebut cap codi, pots enviar‑ne un de nou a un altre dispositiu en què hagis iniciat la sessió amb el compte d\u2019Apple."
      
      - **Plural forms**: Following ésAdir's recommendations, device types are pluralized: iPhones, iPads, Macs, HomePods, AirTags, AirPods.
        - *Source:* "iPad batteries, like all rechargeable batteries, have a limited lifespan." → *Target:* "Les bateries dels iPads, com totes les bateries recarregables, tenen una vida útil limitada."
        - *Source:* "To add this item, remove one or more AirTags or AirPods currently paired to your Apple Account." → *Target:* "Per afegir l\u2019objecte, elimina un o diversos dels AirTags o AirPods que tinguis enllaçats al compte d\u2019Apple."
      
      - **Time**: Use the 24 hour clock for time format. Use a colon as a separator. If a 12 hour clock must be used, use "a. m." for "AM" and "p. m." for "PM".
        - *Source:* "7:30 PM" → *Target:* "19:30"
      
      ## Software Forms
      
      - **Actions and commands**: The verbal tense used for actions, commands, buttons, CTAs and other related software actions is the imperative.
        - *Source:* "Select a Network" → *Target:* "Selecciona una xarxa"
        - *Source:* "Don't Allow" → *Target:* "No permetis"
        - *Source:* "Continue and Show IP Address" → *Target:* "Continua i mostra l\u2019adreça IP"
      
      - **Titles**: Use nominal forms for succinct titles. If the title needs to use a conjugated verbal form, then add a period.
        - *Source:* "Failed to Add the Message" → *Target:* "Error en afegir el missatge"
        - *Source:* "Memory Creation is Unavailable" → *Target:* "Creació de records no disponible"
        - *Source:* "Review Activity History" → *Target:* "Revisió de l\u2019historial d\u2019activitat"
      
      - **Descriptions and explanations**: Translate full-sentence descriptions and explanations with the imperative form.
        - *Source:* "Personalize Mac with new looks for app icons." → *Target:* "Personalitza el Mac amb estils nous per a les icones de les apps."
        - *Source:* "Opens Braille Access and allows Braille input using a keyboard." → *Target:* "Obre l\u2019accés amb la pantalla Braille i permet l\u2019entrada Braille amb el teclat."
      
      - **Tooltips and accessibility hints**: Tooltips and accessibility hints are instructions in message form and are to be translated in a descriptive, declarative way with an imperative and a closing period.
        - *Source:* "Tap to add suggestion" → *Target:* "Fes un toc per afegir el suggeriment."
        - *Source:* "Activate to begin download" → *Target:* "Activa aquesta opció per iniciar la descàrrega."
      
      - **Gerunds in status updates**: Use a gerund with an ellipsis for real time actions like status updates. Use a gerund in full present continuous form when the status update is in full sentence form.
        - *Source:* "Adding card" → *Target:* "Afegint la targeta…"
        - *Source:* "Activating" → *Target:* "Activant…"
      
      ## Cultural Adaptation
      
      - **Loan words**: Always use Catalan words and expressions, making sure that no loans, especially from Spanish, are used.
        - *Source:* "You can still close your Move ring. Get after it!" → *Target:* "Encara pots tancar l\u2019anell de moviment. Ves a totes!"
        - *Source:* "Cartoon Party Horn" → *Target:* "Espanta-sogres"
      
      - **Politeness**: Avoid translating and including "Please" or similar polite imperatives from the source text. It is rarely used or needed in Catalan.
        - *Source:* "Sorry, an unexpected error has occured." → *Target:* "Hi ha hagut un error inesperat."
        - *Source:* "Please Wait" → *Target:* "Un moment…"
      
      - **Gender neutrality**: Use gender-neutral language and constructs. Generally, the best practice is to try to rewrite any sentence to exclude pronouns or binary representations of gender.
        - *Source:* "You must be connected to the internet." → *Target:* "Has de tenir connexió a internet."
        - *Source:* "When a friend or family member adds you as a legacy contact, their name will appear here." → *Target:* "Quan algú de la família o una amistat t\u2019afegeixi com a herent digital, aquí se\u2019n mostrarà el nom."
      
      ## Punctuation
      
      - **Quotation marks**: Use Catalan curly double quotation marks “ and ” around multi-word UI items when they are referenced rather than used descriptively. Quotation marks are not necessary for app names, email addresses, utility names, or operating-system update names, and are not used when UI options are referenced through a path with ">".
        - *Source:* "Click Agree or Learn More." → *Target:* "Fes clic a \u201CAccepta\u201D o a \u201CMés informació\u201D."
      
      - **Units**: Do not convert imperial measurements to metric. When the English measurement is purely illustrative (a rounded ballpark figure rather than a precise spec), substitute a comparable rounded Catalan figure instead of a literal conversion.
        - *Source:* "Hold iPhone 10 to 20 inches from your face" → *Target:* "Mantén l\u2019iPhone a una distància de 10 a 20 polzades de la cara."
      
      - **Spacing**: There must be a non-breaking space between the number and the unit symbol.
        - *Source:* "100% zoom level" → *Target:* "Nivell del zoom del 100\u00A0%"
      
      - **Exclamation marks**: The exclamation marks used in some English sentences are generally not needed in Catalan.
        - *Source:* "It's a Draw!" → *Target:* "Empat"
      
      - **Punctuation within quotes**: Place the period (or other terminal punctuation) outside the closing quotation mark, even when the source text places it inside. This follows standard Catalan/European typography.
        - *Source:* "Select \u201CStart automatically.\u201D" → *Target:* "Selecciona \u201CInicia automàticament\u201D."
      
      - **Punctuation within parenthesis**: A full sentence within a parenthesis should have the full stop outside of the parenthesis.
        - *Source:* "(This may take a few moments.)" → *Target:* "(El procés pot tardar uns minuts)."
      
      ## Orthography
      
      - **Capitalization in headings**: Use capital letter in beginning of sentences and in proper names. Do not capitalize every word in headings, even if the source text does.
        - *Source:* "Setting Up Your New Computer" → *Target:* "Configuració de l\u2019ordinador nou"
        - *Source:* "Suggested Profiles" → *Target:* "Perfils suggerits"
      
      - **Capitalization of common nouns**: Do not use capital letter for: days of the week, months, currencies, nationalities, languages, professions.
        - *Source:* "Create a meeting on Monday" → *Target:* "Crea una reunió per a dilluns."
        - *Source:* "Show in English" → *Target:* "Mostra en català"
      
      - **Lowercase product names**: Some product names always start with a lowercase letter. In that case, do not capitalise them even if they start a sentence.
        - *Source:* "iPhone Restricted by Carrier" → *Target:* "iPhone restringit per l\u2019operador"
        - *Source:* "iMac (24-inch, 2024)" → *Target:* "iMac (24 polzades, 2024)"
      
      - **Numbers**: Use period as thousand separator.
        - *Source:* "2000 Fitness+ Meditations" → *Target:* "2.000 meditacions del Fitness+"
        - *Source:* "Maximum folder size 10,000 items" → *Target:* "Mida màxima de la carpeta: 10.000 ítems"
      
      - **Decimal separator**: Use comma as a separator for decimal numbers. Exact numbers do not need decimals.
        - *Source:* "2.5 cm" → *Target:* "2,5 cm"
        - *Source:* "100.00 m" → *Target:* "100 m"
        - *Source:* "0.5" → *Target:* "0,5"
      
      - **Software version numbers**: Although commas normally should be used as the separator for decimals, periods are instead used for software versions.
        - *Source:* "version 2.5" → *Target:* "version 2.5"
        - *Source:* "iOS 26.1" → *Target:* "iOS 26.1"
        - *Source:* "HomePod software version 16.4" → *Target:* "Versió 16.4 del programari del HomePod"
      
    • styleguide_cs.md 7.5 KB
      # Czech (cs) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Czech uses curly double quotation marks „ (\u201E) and “ (\u201C) for quoting — not straight ASCII quotes.
      
      ## Tone And Voice
      
      - **Smart but Casual Style**: Write in a neutral, descriptive style that leans formal but never becomes stiff or bureaucratic. Avoid trendy or colloquial words in software and documentation; marketing texts may be more casual.
        - *Source:* "Get started with your new device." → *Target:* "Začněte pracovat s novým zařízením."
      
      - **Prefer Czech Terminology**: Use established Czech terminology rather than English loan words wherever a good Czech equivalent exists. Even if users commonly say the English word in conversation, the written translation should favor Czech.
        - *Source:* "Settings" → *Target:* "Nastavení"
      
      ## Addressing Users
      
      - **Address Users in the Plural (Vykání)**: Always address the user using the plural form (vykání). The only exceptions are fitness content and content directed at minors, where singular forms may be appropriate.
        - *Source:* "Turn off your iPhone." → *Target:* "Vypněte svůj iPhone."
      
      - **Minimise Passive and Impersonal Voice**: Limit passive and impersonal constructions to cases where they are genuinely required for good style. Prefer active verb forms that address the user directly.
        - *Source:* "The password can be changed in Settings." → *Target:* "Heslo můžete změnit v Nastavení."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in UI Strings**: Do not shorten words through abbreviations in software translations unless every other option has been exhausted. If a string is too long, request UI resizing rather than abbreviating.
      
      ## Acronyms
      
      - **Keep Acronyms Untranslated**: Do not translate acronyms such as CD-ROM or RAM unless a widely accepted Czech equivalent exists. Retain the original English acronym in all other cases.
        - *Source:* "RAM" → *Target:* "RAM"
        - *Source:* "CD-ROM" → *Target:* "CD-ROM"
      
      ## Date And Time
      
      - **Follow System Standard for Date and Time**: Use the date and time format defined by the system locale. Date and time rules for Czech are governed by ČSN ISO 8601.
      
      ## Measurements
      
      - **Do Not Convert Measurements**: Never convert imperial measurements to metric (or vice versa). When English measurements are descriptive rather than technical, localize them and round to a natural Czech equivalent.
        - *Source:* "Your device needs to be within 30 feet of your computer." → *Target:* "Vaše zařízení se musí nacházet ve vzdálenosti do 9 metrů."
      
      - **Never Use Inch Symbol as Abbreviation**: The double-prime character (″) must not be used as an abbreviation for inches in Czech translations.
      
      ## Numerals
      
      - **Czech Numeral Format**: Use a space as the thousands separator and a comma as the decimal separator, following the Czech convention. For software strings, always defer to the system standard.
        - *Source:* "123456.789" → *Target:* "123 456,789"
      
      ## Special Characters
      
      - **Use Non-Breaking Spaces for Units and Short Words**: Insert a non-breaking space ( ) between a number and its unit, and after single-letter words (a, i, k, o, s, u, v, z) to prevent them splitting across lines. Also use it inside multi-word product names such as Apple TV.
        - *Source:* "10 GB" → *Target:* "10 GB" (use   between number and unit)
        - *Source:* "v aplikaci" → *Target:* "v aplikaci" (use   after the single-letter word)
      
      ## Trademarks And Product Names
      
      - **Decline Product Names Grammatically**: Although Apple product names are not translated, they must be declined through Czech grammatical cases where syntax requires it. Apply the correct case ending directly to the product name.
        - *Source:* "Open in iPhone" → *Target:* "Otevřít v iPhonu"
        - *Source:* "multiple iPhones" → *Target:* "více iPhonů"
      
      ## Interface Elements
      
      - **Use Verbs for Button Labels**: Button labels in Czech software consistently use verb forms (infinitive or imperative as appropriate). Do not use noun phrases where a verb form is natural.
        - *Source:* "Edit" → *Target:* "Upravit"
      
      - **Use Nouns for Menu Names, Noun Phrases for Window Titles**: Menu bar items prefer noun forms. Window titles use heading style and avoid verbs and imperatives wherever possible; rephrase as a noun or noun phrase instead.
        - *Source:* "Edit" (menu name) → *Target:* "Úpravy"
        - *Source:* "Configure VPN" (window title) → *Target:* "Nastavení VPN"
      
      - **Capitalise UI Element References in Sentences**: Capitalise the first letter of a UI element name (menu, button, setting) when it appears as a reference within a sentence. Use lower case when referring to the same concept generically or as a feature.
        - *Source:* "Open Settings and turn on Location Services." → *Target:* "Otevřete Nastavení a zapněte Polohové služby."
        - *Source:* "This action requires location services to be enabled." → *Target:* "Požadovanou akci nelze provést, protože nemáte zapnuté polohové služby."
      
      - **Use Full Key Names for Apple Special Keys**: Spell out Apple special key names in full: Shift, Control, Option, Command. Never abbreviate them as ctrl, alt, or cmd.
        - *Source:* "cmd+C" → *Target:* "Command-C"
        - *Source:* "Shift-Command-1" → *Target:* "Shift-Command-1"
      
      ## Punctuation
      
      - **Use Czech Curly Double Quotes**: Czech typography always uses the „lower-upper“ double quote style — „ (\u201E) as the opening mark and “ (\u201C) as the closing mark. Only apply quotes around UI element names within a sentence when omitting them would break natural syntax; never quote app names.
        - *Source:* "Click “General”." → *Target:* "Klikněte na „Obecné“."
        - *Source:* "in the app %@" → *Target:* "v aplikaci %@"
      
      - **No Full Stop in Single-Sentence Callouts**: Czech omits the terminal full stop in single-sentence callout texts. Follow the source for all other punctuation contexts.
        - *Source:* "Your backup is complete." → *Target:* "Zálohování bylo dokončeno"
      
      ## Variables
      
      - **Preserve Variable Syntax Exactly**: Never alter variable tokens (%@, %d, %1$@, etc.) — they are replaced at runtime and any change will break assembly. When the order of multiple variables must change to produce natural Czech, convert positional variables (%@ %@ → %1$@ %2$@) rather than reordering the tokens.
        - *Source:* "%@ shared %@ items" → *Target:* "%1$@ sdílel(a) %2$@ položek"
      
      ## General Advice
      
      - **Translate Undo/Redo Prefixes Consistently**: Always render the Undo and Redo command prefixes as Odvolat akci and Opakovat akci respectively. This allows the action name that follows to remain in the infinitive form.
        - *Source:* "Undo Paste" → *Target:* "Odvolat akci Vložit"
        - *Source:* "Redo Delete" → *Target:* "Opakovat akci Smazat"
      
      - **IT Terms as Adjectives, Not Postposed Nouns**: Place technology names (USB, IP, etc.) before the noun as attributive adjectives rather than after it. This matches conventions used in respected Czech IT sources.
        - *Source:* "USB keyboard" → *Target:* "USB klávesnice"
        - *Source:* "IP address" → *Target:* "IP adresa"
      
      ## Diversity And Inclusion
      
      - **Use People-First Language for Disability**: When referring to people with disabilities, describe the person first and the disability second. Avoid defining people solely by a condition or limitation.
        - *Source:* "The blind" → *Target:* "Lidé se zrakovým postižením nebo slabozrací"
        - *Source:* "A wheelchair-bound person" → *Target:* "Osoba na vozíčku"
      
    • styleguide_da.md 17.2 KB
      # Danish (da) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Danish uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting and the curly apostrophe ’ (\u2019) for inflection of loanwords and acronyms (e.g. `tv’et`, `id’et`).
      
      ## Tone And Voice
      
      - **Smart but Casual Style**: Danish text should feel "smart but casual" — closer to formal than informal, but never stiff or trendy. Use neutral, descriptive language that feels natural to Danish users and avoids leaving traces of English sentence structure.
        - *Source:* "To start downloading, press OK." → *Target:* "Tryk på OK for at starte overførsel."
      
      - **Remove "Please" from Instructions**: English "please" is typically dropped in Danish translations. Formality is already conveyed through the verb form, so keeping "please" sounds unnatural and redundant.
        - *Source:* "Please use another name." → *Target:* "Brug et andet navn."
      
      - **Natural Danish — Prioritize the Reader**: Translations should read naturally. The reader should not feel like they are reading a translation. Avoid cryptic or pedantic word-for-word renderings of the original.
        - *Source:* "The application has encountered an error and needs to quit." → *Target:* "Der opstod en fejl, og appen skal lukke."
      
      ## Addressing Users
      
      - **Avoid Literal Translation of "Your"**: Do not always translate the English "your" with a possessive pronoun in Danish. The definite form of the noun is usually more idiomatic unless you need to contrast ownership explicitly.
        - *Source:* "Your software has been updated." → *Target:* "Softwaren er blevet opdateret."
      
      - **Colloquial but Correct Register**: Use a friendly, colloquial style that makes the user feel comfortable. Avoid formal or complicated structures, and write as you would in correctly spoken Danish rather than producing overly literal translations.
        - *Source:* "You may have to restart your computer." → *Target:* "Du skal muligvis starte computeren igen."
      
      ## Grammar
      
      - **End-Weight Syntax — Avoid Long Subordinate Clauses at Start**: Danish favors end-weight sentence structure. When localizing, avoid long subordinate clauses at the start of sentences. Consider swapping clauses so the main action comes first. Restructure clauses rather than mirroring the English word order.
        - *Source:* "To start downloading, press OK." → *Target:* "Tryk på OK for at starte overførsel."
      
      - **Translating "May/Might" — Use "måske/muligvis"**: Where English uses "may" or "might" as a modal auxiliary, prefer "måske" or "muligvis" in Danish for natural flow. Avoid long subordinate constructions such as "Det kan være, at…".
        - *Source:* "You may have to restart your computer." → *Target:* "Du skal muligvis starte computeren igen."
      
      - **"Føj til" vs. "Tilføj"**: Use "føj til" when an item is added to a specific receiver ("føj X til Y"). Use "tilføj" on its own or with just a direct object when no receiver is mentioned.
        - *Source:* "Add an item to the Login items list." → *Target:* "Føj et emne til listen over log ind-emner."
        - *Source:* "Add a user account." → *Target:* "Tilføj en brugerkonto."
      
      - **Pronouns — Include in Both Nouns When Inflection Differs**: According to Dansk Sprognævn, include the pronoun in both noun phrases when the inflection of each noun is different, to maintain grammatical correctness.
        - *Source:* "What make and model is your wireless router?" → *Target:* "Hvilket mærke og hvilken model er din trådløse router?"
      
      - **Imperative Forms — Avoid Truncated Endings**: Do not use imperative forms ending in "r" such as "Ændr", "Bladr", or "Forhindr". Replace these with more natural alternatives like "Skift", "Gennemse", and "Undgå".
        - *Source:* "Change" → *Target:* "Skift"
        - *Source:* "Browse" → *Target:* "Gennemse"
      
      - **Genitive with Variables — Rephrase to Avoid Possessive Suffix Errors**: Never apply a genitive suffix directly to a variable placeholder, as names ending in s, x, or z will produce incorrect output at runtime. Rephrase using a preposition instead.
        - *Source:* "%@\u2019s video" → *Target:* "Video fra %@"
        - *Source:* "%@\u2019s %@ Birthday" → *Target:* "%@ fylder %@ år"
      
      - **Conjunctions — Translate "Or" as "og" with "Any"**: When English uses "any" followed by "or", translate "or" as "og" and use plural in Danish. Use common sense to ensure the translation reflects the correct meaning.
        - *Source:* "Keynote accepts any QuickTime or iTunes file type." → *Target:* "Keynote accepterer alle QuickTime- og iTunes-arkivtyper."
      
      - **Undo/Redo Strings — Lowercase Noun Phrases**: Undo strings are concatenated at runtime as "Fortryd %@". The action string must be a lowercase noun phrase so it reads naturally when inserted into the undo/redo sentence.
        - *Source:* "New Group" → *Target:* "ny gruppe"
      
      - **Changing Gender — Adjust Articles and Adjectives**: When replacing a common-gender term with a neuter-gender term (or vice versa), make sure all articles and adjectives in the phrase are adjusted accordingly.
        - *Source:* "a new document" → *Target:* "et nyt dokument" (not "en ny dokument")
      
      ## Abbreviations
      
      - **Abbreviation Periods — Follow DSN Rules**: Follow Dansk Sprognævn conventions for abbreviation periods. Common abbreviations like "ca.", "bl.a.", "kr." take a period, while metric units (cm, m, kg, g) do not. When an abbreviation ends a sentence, do not add a second period.
        - *Source:* "about 10 km" → *Target:* "ca. 10 km"
        - *Source:* "n/a" → *Target:* "i/t (ikke tilgængelig)"
      
      - **No Period After "auto" and "OK"**: The words "auto" and "OK" are used without abbreviation period in Danish.
        - *Source:* "auto." → *Target:* "auto"
      
      - **Prefer Rewording Over Abbreviating**: To provide the best user experience, prefer shortening strings by rewording or removing redundant text rather than abbreviating words. Look at surrounding strings for context that may allow omission.
        - *Source:* "Description: Not available" → *Target:* "Ikke tilgængelig" (preferred over "Beskr.: Ikke tilgængelig")
      
      - **"vha." for "with/using"**: In software, "vha." (ved hjælp af) is often used when the source says "with" or "using" to refer to performing an action by means of something.
        - *Source:* "Connect using PPP" → *Target:* "Opret forbindelse vha. PPP"
      
      ## Acronyms
      
      - **Swap Acronym and Expansion Order**: For well-known IT acronyms, place the acronym first and the spelled-out form in parentheses. Do not repeat the acronym inside the parentheses. If the acronym is compounded with another word, attach the hyphen and word directly after the acronym, not after the closing parenthesis.
        - *Source:* "a Post Office Protocol (POP) account" → *Target:* "en POP-konto (Post Office Protocol)"
      
      - **Lowercase Common Acronyms**: In Danish, common acronyms such as CD, DVD, PC, TV, and ID are written in lowercase (cd, dvd, pc, tv, id). Use an apostrophe when inflecting them.
        - *Source:* "the TV" → *Target:* "tv\u2019et"
        - *Source:* "the ID" → *Target:* "id\u2019et"
      
      ## Date And Time
      
      - **Danish Date and Time Format**: Use the format day.month.year for dates (e.g. 20. august 2020 or 02.12.2020). Danish uses a 24-hour clock with a period as the time separator (e.g. kl. 16.15). Do not translate AM/PM; use it only when clearly referencing the American time format.
        - *Source:* "Sunday, August 20, 2020" → *Target:* "søndag den 20. august 2020"
        - *Source:* "4:15 PM" → *Target:* "kl. 16.15"
      
      ## Numerals
      
      - **Decimal and Thousands Separators**: Danish uses a comma as the decimal separator and a period as the thousands separator. Always include a space between a number and its unit.
        - *Source:* "1,000,000 songs" → *Target:* "1.000.000 sange"
        - *Source:* "2.5 GB" → *Target:* "2,5 GB"
      
      ## Measurements
      
      - **Do Not Convert Imperial to Metric in Sentences**: Do not convert units such as inches to centimetres in software strings or sentences.
        - *Source:* "11\" MacBook Air" → *Target:* "11\" MacBook Air"
      
      ## Addresses
      
      - **Danish Address Format**: Addresses follow Danish convention — street name and number, then postcode and city. Danish postal codes consist of 4 digits (optionally prefixed with DK- when sending from abroad).
      
      ## Punctuation
      
      - **Curly Quotes and Apostrophes**: Always use curly double quotes “ (\u201C) and ” (\u201D) in software and help text. Never use straight quotes or single quotes where double curly quotes are required. Similarly, use the curly apostrophe (right single quotation mark) rather than the straight apostrophe. Replace single quotes in software with curly double quotes.
        - *Source:* "\"%@\"" → *Target:* "\u201C%@\u201D"
      
      - **Punctuation Placement — Outside Quotation Marks**: Add punctuation outside quotation marks in Danish.
        - *Source:* "She said \"yes\"." → *Target:* "Hun sagde \u201Cja\u201D."
      
      - **Do Not Mirror Source Periods**: If the source string does not end with a period, do not add one to the Danish translation. The absence may be intentional — the string may be a title, be concatenated at runtime, or have a period added programmatically.
        - *Source:* "No service" → *Target:* "Ingen tjeneste"
      
      - **Capitalisation After Colons**: Follow DSN rules for capitalisation after a colon. Capitalise the first word of a complete sentence after a colon. Use lowercase after a colon when what follows is a subordinate clause or a partial sentence. In lists, capitalise the first word of each item for consistency.
        - *Source:* "Time remaining: About a minute left." → *Target:* "Tid tilbage: Der er omkring et minut tilbage."
        - *Source:* "Time remaining: about a minute" → *Target:* "Tid tilbage: omkring et minut"
      
      - **Comma Style — Use Grammatisk Komma**: Use "grammatisk komma" (tilvalgt startkomma) in all translations. Do not insert a comma between closely connected imperatives sharing the same object (rend og hop-reglen). Use a comma when imperatives have different objects.
        - *Source:* "Export and import contacts" → *Target:* "Eksporter og importer kontakter"
      
      - **Accent Signs — Avoid in General UI**: Do not use accent aigu in general UI translations. Exceptions: when a sentence could be misinterpreted (e.g. "én pris" vs. "en pris") and in VoiceOver strings where pronunciation requires the accent (e.g. "aktivér", "markér"). Siri strings always use accents.
        - *Source:* "Activate" → *Target:* "aktiver"
      
      - **Parentheses — Period Placement**: If a sentence ends after the closing parenthesis, place the period after it. If a whole sentence is in parentheses, place the period inside. Avoid putting whole sentences in parentheses — remove the parentheses instead.
        - *Source:* "Setup is complete (see details)." → *Target:* "Indstillingen er fuldført (se detaljer)."
      
      - **Characters Used as Words — Translate & and #**: In Danish, translate "&" as "og" and "#" as "nummer".
        - *Source:* "Tips & Tricks" → *Target:* "Tips og tricks"
      
      ## Special Characters
      
      - **Use the Ellipsis Character — Not Three Dots**: Replace three separate full stops in the source with the proper ellipsis character (…, …). There is no space between the preceding word and the ellipsis.
        - *Source:* "Save as..." → *Target:* "Gem som…"
      
      ## Interface Elements
      
      - **Apple Product Name Inflection**: Product names such as iPhone, iPad, iPod, HomePod, and Apple Watch are not inflected in Danish. Add a possessive pronoun ("din", "min") or demonstrative ("dette", "en") when a definite or possessive form is needed. Avoid appending "-enheden" except when no other option exists.
        - *Source:* "Your iPhone is locked." → *Target:* "Din iPhone er låst."
        - *Source:* "Turn off your Mac." → *Target:* "Sluk din Mac."
      
      - **"Mac" Definite Form — Use "Mac-computeren"**: When the definite form of "Mac" is required, use "Mac-computeren". Sometimes "Mac'en" or "din Mac" can also be used depending on context. Do not use "Macintosh".
        - *Source:* "the Mac" → *Target:* "Mac-computeren"
      
      - **Tabs and Menu Titles — Prefer Nouns**: When translating tabs, panels, and menu titles, use nouns instead of verbs where possible.
        - *Source:* "View" → *Target:* "Oversigt" (menu title)
      
      - **Tooltips — End with Full Stop**: Tooltips have limited space. Be concise and creative. Tooltips normally end with a full stop.
        - *Source:* "Opens the selected file." → *Target:* "Åbner det valgte arkiv."
      
      - **Capitalization — Proper Names Indefinite vs. Definite**: For tools or functions with a localized proper name, use either upper-case initial letter with indefinite form, or lower-case initial letter with definite form. Do not mix (e.g. "Åbn Indstillingsassistent" or "Åbn indstillingsassistenten", not "Åbn indstillingsassistent").
        - *Source:* "Open Setup Assistant." → *Target:* "Åbn Indstillingsassistent."
      
      - **Touch and Hold**: Translate "Touch and hold" as "Hold en finger på…" or "Hold knappen nede…". Translate "Press xxx and hold down xxx" as "Tryk på og hold xxx nede".
        - *Source:* "Touch and hold the icon." → *Target:* "Hold en finger på symbolet."
      
      ## Variables
      
      - **Preserve Variables Exactly as in Source**: Keep all runtime variables (such as %@, %d, %1$S) unchanged and in the correct position in the translated string. Do not alter variable formatting strings like "%.1f GB" to change decimal separators — that conversion is handled internally by the software.
        - *Source:* "%d%% Charged" → *Target:* "%d %% opladet"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language**: Avoid gendered nouns when gender-neutral equivalents exist (use "politibetjent" not "politimand", "lærer" not "lærerinde"). Do not use binary gender pronouns for people of unspecified gender; instead omit the pronoun or use "vedkommende". In Danish, using "they" (de) as a singular pronoun is not yet common and should be avoided.
        - *Source:* "When a child turns 18, they can request…" → *Target:* "Når et barn fylder 18 år, kan vedkommende anmode om…"
      
      ## Compounds And Hyphens
      
      - **Avoid Long Compounds — Break Up or Rephrase**: Avoid very long compound nouns. Rewrite or break them up using prepositions. Use a hyphen when combining an English word or name with a Danish word (e.g. iCloud-konto). Avoid multiple hyphens in one compound — rephrase instead (e.g. "adgangskode til Apple-id" not "Apple-id-adgangskode").
        - *Source:* "Headset jack" → *Target:* "Stik til hovedtelefoner"
        - *Source:* "Audio playback controls" → *Target:* "Knapper til lydafspilning"
      
      - **Hyphenation Rules — Follow New Danish Standards**: Follow the current Danish rules for hyphens. For example, "e-mailadresse" is now one compound. Add a hyphen when it improves readability (e.g. multitasking-linjen) or when combining an English word/name with a Danish word (e.g. iCloud-konto). Check for consistency before adding hyphens.
        - *Source:* "email address" → *Target:* "e-mailadresse"
      
      ## Url Localization
      
      - **URL Localization — Apple.com Country Code**: URLs with "apple.com/xxx" are generally localized by adding the country code /dk. Always follow project-specific URL instructions.
        - *Source:* "http://www.apple.com" → *Target:* "http://www.apple.com/dk"
      
      ## Units
      
      - **Units — Danish Conventions**: KB is written as "kB" in Danish. Always include a space between a number and its unit (e.g. 40 GB). No period after metric abbreviations (cm, m, kg, kHz, dB). Time abbreviations: t., min./m., sek./s. Inch uses the "-symbol.
        - *Source:* "40GB" → *Target:* "40 GB"
      
      ## Phone Numbers
      
      - **Phone Numbers — Danish Format**: Danish phone numbers have 8 digits written as "12 34 56 78". International format: (+45) 12 34 56 78. In software strings, follow the system standard.
        - *Source:* "(408) 111 5555" → *Target:* "12 34 56 78"
      
      ## Software Formatting
      
      - **Line Breaks — No Space Around \n**: The text variable \n is used for non-breaking line breaks. There is no space around \n.
        - *Source:* "to\nManage" → *Target:* "til\nAdministration"
      
      - **Implicit Subject — Use Inflected Verb Form**: When software strings have an implicit subject (the application or function), translate past-tense verbs using the inflected verb form as normal.
        - *Source:* "Added 3 items" → *Target:* "Tilføjede 3 emner"
      
      ## Terminology
      
      - **Noun Inflections — Approved Spellings**: Use the approved inflections for common terms: e-mail/e-mails/e-mailene, højttaler/højttalere/højttalerne, album/album/albummene, app/apps/appsene, podcast/podcasts/podcastene.
        - *Source:* "emails" → *Target:* "e-mails"
      
      - **Consistent Terminology**: Keep terminology consistent across the app's strings — reuse the established software translation for a term rather than coining a new one.
        - *Source:* "Preferences" → *Target:* "Indstillinger"
      
      - **Third-Party Terms — Follow Their Danish Translations**: When referencing terms from non-Apple products (Facebook, Twitter, YouTube, Microsoft Windows, etc.), follow the translations used by those products in Danish.
        - *Source:* "tweet" → *Target:* "tweet"
      
      ## Locale Conventions
      
      - **Sorting Order — Danish Alphabet**: The Danish alphabet ends with æ, ø, å (in that order). Follow the system standard for sorting in software.
        - *Source:* "a-z" → *Target:* "a-z, æ, ø, å"
      
      - **Chapter Numbering — Period Separator**: Use a period as the tiered numbering separator. Example: Kapitel 2, afsnit 1 is written as "2.1".
        - *Source:* "Chapter 2, Section 1" → *Target:* "2.1"
      
    • styleguide_de.md 3.9 KB
      # German (de) — Software String Localization Style Guide
      
      - **Informal address ("du")**: Users are addressed informally with "du" in lowercase ("du", "dein", "ihr", "euch" — never capitalized).
      
      - **Imperative vs. infinitive in UI**: Strings ending with a period use the imperative form ("Bearbeite das Bild."), while strings without a period use the infinitive ("Bild bearbeiten"). This single punctuation cue determines the verb form.
      
      - **Passive over direct address**: Where possible, prefer passive or impersonal constructions over directly addressing the user. E.g., "Möchtest du die Nachricht senden?" → "Soll die Nachricht gesendet werden?"
      
      - **Gender-inclusive colon**: Use the gender colon (`:`) to form inclusive nouns — e.g., "Benutzer:in", "Mitarbeiter:innen". Avoid flooding strings with multiple colons; prefer gender-neutral terms ("Person", "Studierende", "Fachwissen") or plural forms to maintain readability. The order is masculine:feminine ("der:die Expert:in").
      
      - **Compound hyphenation with app/product names**: App names in compounds require a hyphen ("Mail-Einstellungen", "iTunes-Mediathek"), but germanized loan words like "Server" or "Account" form closed compounds without hyphens ("Servereinstellungen", "Accountname").
      
      - **Quotation marks for UI references**: Use German-style 9-low/6-high quotes: „ (\u201E) and “ (\u201C). UI element names must be quoted — e.g., Klicke auf \u201EWeiter\u201C. Nested quotes use single curly quotes: \u201EIn \u201AKarten\u2019 anzeigen\u201C. English app names (Safari, Health) generally do not get quotes.
      
      - **No genitive-s on product names**: Never add a genitive -s to Apple product names or brand names. Use "von" instead: "Das neue iPhone von Apple" (not "Apples neues iPhone"), "die Seitentaste des iPhone" (not "des iPhones").
      
      - **Variables with "von" for possessives**: For `%@'s` patterns, prefer "iPhone von %@" over "%@s iPhone" to avoid issues with names ending in s/x/z. Use the -s form only when space is critical. When reordering variables, add positional markers: `%1$@`, `%2$@`.
      
      - **Ellipsis with non-breaking space**: In software, an ellipsis indicates a process ("Laden …" not "Wird geladen") and is always preceded by a non-breaking space. Also use ellipsis to signal that an action leads to a follow-up dialog, even if the source omits it.
      
      - **Decimal comma and space thousands**: German uses comma as the decimal separator ("1.234,50 Euro") and non-breaking spaces (or periods in monetary amounts) for thousands grouping. Version numbers keep periods ("iOS 17.2"). Do not modify decimal points inside variables like "%.1f".
      
      - **Non-breaking spaces in product names**: Multi-word product names ("Apple Watch", "Touch ID") use non-breaking spaces to prevent line breaks. Also use non-breaking spaces in abbreviations ("z. B."), between numbers and units ("3 %", "2 GB"), and percentage signs.
      
      - **Units have no plural**: German units never take a plural form — "2 GB", "100 Byte" (not "Bytes"). Insert a non-breaking space between number and unit. For playback speed, no space before "x": "1,5x".
      
      - **App name vs. service name distinction**: The translated app name uses German quotes and German terms ("die Musik-App", \u201EMusik\u201C), while the trademarked service name stays in English ("Apple Music"). Compounds with English service names use a hyphen: "Apple Music-App".
      
      - **Key terminology diverging from Windows/common usage**: Apple German uses distinct terms — "sichern" (not "speichern") for save, "Taste" (not "Schaltfläche") for button, "Zeiger" (not "Cursor") for pointer, "Menü \u201EAblage\u201C" (not "Datei") for File menu, "streichen" (not "wischen") for swipe, "Batterie" (not "Akku") for battery.
      
      - **Ampersand usage**: Use "&" in category names and titles ("Sicherheit & Datenschutz") following the source. In general text, spell out "und" or abbreviate as "u." — only fall back to "&" or "+" as a last resort for space constraints.
      
    • styleguide_el.md 10.8 KB
      # Greek (el) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Greek uses guillemets « (\u00AB) and » (\u00BB) for quoting — not straight ASCII quotes.
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: Maintain a tone that is closer to formal than informal, but never stiff or bureaucratic. Use clear, mainstream language and correct technical terms. Avoid trendy slang and overly hip vocabulary; aim for a neutral, descriptive style that mirrors the user experience of the source.
        - *Source:* "Use straightforward language." → *Target:* "Χρησιμοποιήστε απλή και κατανοητή γλώσσα."
      
      - **Prioritise Greek Syntax Over Literal Translation**: Do not translate word for word. Rearrange sentences when this produces more natural Greek, and depart from English syntax whenever a restructured sentence conveys the meaning more clearly. Very loose translations, however, introduce ambiguity and should be avoided.
        - *Source:* "Tap OK to open." → *Target:* "Για άνοιγμα, αγγίξτε «ΟΚ»."
      
      ## Addressing Users
      
      - **Second Person Plural as Default Address**: Address the user with the second person plural in all forms, including adjectives. Use second person singular only when the string path contains "tinker", indicating content aimed at users under 13 or contexts requiring a more direct approach.
        - *Source:* "If you subscribe as a member" → *Target:* "Αν εγγραφείτε ως συνδρομητές"
      
      - **Omit "Please" – Use Imperative Verb Form**: Drop the English courtesy word "please" when giving instructions. The imperative form already conveys the appropriate register in Greek without sounding rude.
        - *Source:* "Please visit the section." → *Target:* "Επισκεφθείτε την ενότητα."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software UI**: Do not shorten words via abbreviations unless space restrictions make it unavoidable. When abbreviating, omit the trailing part of a word ending with a consonant and add a period (e.g. Οικογεν.), or omit middle characters replaced by a slash (e.g. Λογ/σμοί). When "About + feature name" must be shortened, drop the word "About" and keep the feature name intact.
        - *Source:* "Family Sharing" → *Target:* "Οικογεν. κοινή χρήση" (only when space is limited)
        - *Source:* "About Improve Communication Safety & Privacy" → *Target:* "Βελτίωση της Ασφάλειας επικοινωνίας και απόρρητο"
      
      ## Acronyms
      
      - **Keep Acronyms Untranslated; Drop Foreign Plural Suffixes**: Do not translate or transliterate acronyms unless a widely recognised Greek equivalent exists. Always write them in uppercase without full stops. When an acronym appears in plural form with a foreign plural suffix (e.g. "-s"), drop the suffix.
        - *Source:* "Rewritable CDs" → *Target:* "Επανεγγράψιμα CD"
        - *Source:* "CD-ROM" → *Target:* "CD-ROM"
      
      ## Date And Time
      
      - **Greek Date Format and Month Abbreviations**: Use the dd/mm/yyyy format. Write dates as day + month name in genitive + full year, with no comma after the month. When weekday precedes a date, no comma is needed between them. For standalone month display use LLLL format (nominative). Abbreviate June and July as 4-letter forms (Ιούν, Ιούλ) rather than 3 letters.
        - *Source:* "November 2, 2007" → *Target:* "2 Νοεμβρίου 2007"
        - *Source:* "Wednesday, 12 November" → *Target:* "Τετάρτη 12 Νοεμβρίου"
      
      ## Numerals
      
      - **Greek Decimal and Thousands Separators**: Use a comma for decimals and a period for thousands. Never localize version numbers; keep them in their original form. No space between a number and the percent sign.
        - *Source:* "2.0%" → *Target:* "2,0%"
        - *Source:* "1,000,000 songs" → *Target:* "1.000.000 τραγούδια"
      
      ## Measurements
      
      - **Space Between Number and Unit; Common Greek Units**: Always insert a space between a number and its unit, whether the unit is Greek or English (e.g. 2 GB, 4,5 εκ.). Exceptions with no space include 4K, 1080p, percentage signs, and temperature variables. Use a recognised Greek abbreviated form when one exists (e.g. εκ. for cm).
        - *Source:* "2 GB" → *Target:* "2 GB"
        - *Source:* "4.5 cm" → *Target:* "4,5 εκ."
      
      ## Addresses
      
      - **Greek Address Format**: The Greek address format is: company name, title + first + last name, street and number, postal code + city, country. For mailing addresses leave the English original and add the Greek country name in parentheses.
      
      ## Special Characters
      
      - **All-Caps Strings Must Drop Accents**: Greek words in all capitals must not bear phonetic accents, as this is a grammatical error in both ancient and modern Greek. The only permitted exception is the word Ή (OR). Diacritics (¨) may be retained to separate vowels (e.g. ΠΑΪΔΑΚΙ).
        - *Source:* "READY" → *Target:* "ΕΤΟΙΜΟ" (not "ΈΤΟΙΜΟ")
      
      ## Trademarks And Product Names
      
      - **Inversion of Apple Logo and Following Noun**: Do not add or remove registration symbols. When the Apple logo precedes a non-trademarked noun, invert both elements in Greek (e.g.  menu → μενού ). When the Apple logo precedes a trademarked term, leave the full expression unchanged.
        - *Source:* " menu" → *Target:* "μενού "
        - *Source:* "Apple Silicon" → *Target:* "Apple Silicon" (capital S always)
      
      ## Punctuation
      
      - **Greek Quotation Marks «  » for UI References**: Use Greek guillemets «  » (not straight or English curly quotes) around UI element names when instructing the user to interact with them. Punctuation always falls outside the closing guillemet. Always use nominative case for words inside quotation marks. Do not use a non-breaking space after « or before ».
        - *Source:* "Tap Save." → *Target:* "Αγγίξτε «Αποθήκευση»."
        - *Source:* "Cannot open file \u201C%@\u201D." → *Target:* "Δεν είναι δυνατό το άνοιγμα του αρχείου «%@»."
      
      - **Exclamation Marks – Replace with Full Stop**: Exclamation marks in source strings, common in error messages, should generally be replaced with a full stop in Greek. The exclamation mark is not characteristic of formal Greek technical writing.
        - *Source:* "Error! Please try again." → *Target:* "Σφάλμα. Δοκιμάστε ξανά."
      
      - **Ellipsis for Ongoing Processes**: Use a Unicode ellipsis character with no preceding space. For progress/gerund strings, use a noun form followed by an ellipsis rather than a "Γίνεται…" construction.
        - *Source:* "Connecting…" → *Target:* "Σύνδεση…"
      
      - **En Dash for Ranges, Parenthetical Text, and Action Names with Variables**: Use the en dash (–) for ranges, as a parenthetical delimiter (with a space before the opening dash and after the closing dash), and when action-name strings (Show, Hide, About, Quit, etc.) are followed by a variable. Replace English em dashes with en dashes. Do not use hyphens where a dash is required.
        - *Source:* "Show %@" → *Target:* "Εμφάνιση – %@"
        - *Source:* "About %@" → *Target:* "Πληροφορίες – %@"
      
      ## Grammar
      
      - **Capitalisation – Sentence Case Only**: Apply a capital letter only to the first word of a title or heading. Do not capitalise every major word (no title case). Always capitalise feature and application names when referring to the specific Apple feature, but use lowercase for generic references.
        - *Source:* "Help Center" → *Target:* "Κέντρο βοήθειας"
        - *Source:* "Focus" → *Target:* "Συγκέντρωση" (the Apple feature)
        - *Source:* "a focus" → *Target:* "μια συγκέντρωση" (generic)
      
      - **Definite Article – Always Include**: Always include the definite article before nouns. Do not substitute a definite article with an indefinite one or omit it. Drop the article only when the phrase describes a one-time action step rather than naming a specific item.
        - *Source:* "For activation of FaceTime" → *Target:* "Για ενεργοποίηση του FaceTime" (action step, no article before ενεργοποίηση)
      
      - **Feminine Pronoun in Accusative – Use «τις» Consistently**: When feminine pronouns in the accusative follow a verb, always use «τις» (not «τες») throughout for consistency.
        - *Source:* "Save your tabs and organize them." → *Target:* "Αποθηκεύστε τις καρτέλες σας και οργανώστε τις όπως ακριβώς θέλετε."
      
      ## Interface Elements
      
      - **Key Names and Shortcuts Stay in English**: Do not translate the names of keyboard keys. Terms such as "Caps Lock" remain in English. Keyboard shortcuts retain their English key names. Button names in dialog boxes use a nominalised Greek form.
        - *Source:* "Press the Return key." → *Target:* "Πατήστε το πλήκτρο Return."
        - *Source:* "Do not allow" → *Target:* "Να μην επιτραπεί"
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral Address – Prefer Verb Constructions**: Where possible, restructure sentences around verb forms rather than gendered nouns to avoid masculine plural defaults. Use «το άτομο» for singular reference to a person of unknown gender. Avoid slash/parenthesis patterns (e.g. νοσοκόμος/α) as they consume space and read poorly in UI contexts. Do not use O/H or similar constructs introduced by machine translation.
        - *Source:* "When logged in" → *Target:* "Όταν συνδεθείτε" (avoid masculine plural forms like "Όταν είστε συνδεδεμένοι")
      
      ## Variables
      
      - **Keep Variables Intact and Number Them When Reordering**: Never alter variable syntax. If Greek word order requires moving variables, number all of them first (in source order) before rearranging. Do not convert periods to commas inside numeric variables such as %.1f; decimal handling is done by the software at runtime.
        - *Source:* "%1$@ would like to %2$@ \u201C%3$@\u201D for %4$@." → *Target:* "%1$@ θέλει «%3$@» να %2$@ για %4$@." (use numbered variables and reorder as needed)
      
      ## Other Common Spelling Mistakes Or Stylistic Preferences
      
      - **Consistent Preferred Spellings and Common Error Corrections**: Several Greek words have common misspellings or acceptable variants; always use the preferred form. Key preferences include – ακόμη (not ακόμα for temporal meaning), αν (not εάν), εταιρεία (not εταιρία), αμέσως (not άμεσα for "immediately"), πιο πρόσφατος (not τελευταίος for "latest"), and κ.λπ. (not κλπ or «και λοιπά» spelled out).
        - *Source:* "latest available version" → *Target:* "πιο πρόσφατη διαθέσιμη έκδοση"
        - *Source:* "etc." → *Target:* "κ.λπ."
        - *Source:* "You can send files immediately." → *Target:* "Μπορείτε να στείλετε αρχεία αμέσως."
      
    • styleguide_en-AU.md 4.5 KB
      # Australian English (en-AU) — Software String Localization Style Guide
      
      > **Required first step — this guide is not self-contained.** Before you translate anything, you **must** read the [general English style guide](./styleguide_en.md): it holds the shared conventions for *all* English variants, and most of the rules you need live there, not in this file. The sections below cover **only** what is specific to Australian English (en-AU), adding to or overriding the general guide — used on their own they will leave you missing the majority of the conventions. This list isn’t exhaustive; apply your knowledge of the variant for anything it doesn’t cover.
      
      ## Australian English (en-AU) specifics
      
      - **Spelling — British base**: Use ‑ise not ‑ize ("initialise", "organise", "analyse"), ‑our ("colour", "behaviour", "favourite"), ‑re ("centre", "metre", "theatre"), and ‑logue ("dialogue", "catalogue"). Double the L before an inflection ("cancelled", "travelling", "dialling") but use a single L in some base words ("enrol", "fulfil", "skilful"). The noun takes ‑ce, the verb ‑se ("a licence" / "to license", "a practice" / "to practise", "defence"). Use ‑eable ("likeable", "sizeable") but keep "scalable".
      - **Spelling — Australian particulars**: "aluminium" (not "aluminum"), "grey" (not "gray"), "tyre" (not "tire"). Prefer the ‑t past form where it exists ("spelt", "learnt", "burnt", "lit"). Unlike British English, use "program" in every sense — software and broadcast alike — not "programme".
      - **Don’t over-apply the spelling conversions**: Leave genuine exceptions in their US form — keep "analog" for the opposite of digital (only the noun, as in "an analogue of something", takes the longer spelling), keep "meter" for a measuring instrument such as a speedometer (the unit of length is "metre"), and keep US spelling in proprietary names like "iMovie Theater".
      - **Localised app name**: "Schoolwork" is "Classwork" in Australia.
      - **Serial comma — usually omit** (overrides the general serial-comma rule): Write "apples, oranges and pears". Add the final comma only to prevent ambiguity ("finance, research and development, and insurance") or where a genuine pause is needed.
      - **Punctuation outside quotes; no full stops in abbreviations or am/pm** (overrides the general punctuation and time rules): Commas and full stops go outside a closing quote except inside quoted speech. Write "Dr", "Mr" and "9:41 am", "7:00 pm" — no full stops, space before am/pm.
      - **Em dash takes spaces** (overrides the closed-up US style): Put a space on each side of the em dash — "Missed call — from your iPhone" — rather than closing it up.
      - **Dates and time**: Long form "8 April 2010" (no "8th", month in full, no internal commas); short form dd/mm/yyyy with leading zeros. Use 12-hour time as standard ("9:41 am"); the minute abbreviation keeps its full stop ("min.").
      - **Measurements — don’t convert**: Australia is metric, so prefer the metric unit. When a string carries both units, drop the non-metric one and keep the metric; if both must appear, put metric first ("kilometres or miles") and any imperial value in brackets after the metric ("4 km (2.5 miles)"). Never use a straight quote for inches. Put a space between value and unit ("4 cm", "4 km/h") but none before "%" ("4%"). Temperature in degrees Celsius.
      - **Weather temperature order**: The low temperature always precedes the high ("Low 13°C – High 32°C").
      - **Numbers and currency**: Comma thousands separator, even for four digits ("3,000"); spell out one to nine. Currency is "$" or, where disambiguation is needed, "A$".
      - **Phone numbers**: No brackets or hyphens — "02 1111 2222", overseas "+61 2 1111 2222", mobile "0491 111 222" / "+61 491 111 222", "1800 111 222", "13 13 13".
      - **Placeholder names and addresses**: Replace US sample names — Jonny Appleseed → "Andy Hodgson", John Doe → "Michael Robinson", Jane Doe → "Sally Jacobs". End an address with "Suburb STATE Postcode" using a four-digit postcode and a state abbreviation ("Sydney NSW 2000"); add "AUSTRALIA" only for international mail.
      - **Collective nouns take a plural verb**: "the team are playing", "the staff have the day off" — and keep pronoun agreement.
      - **Phrasing swaps from US**: "different to", "call … on" a number (not "at"), "in hospital"/"at school", "comes as standard", "make a call" (not "place a call"), "prices from", "straight out of the box", "May to August" (not "through"), "count towards", "switch between" even with more than two items, "now showing" (not "now playing").
      
    • styleguide_en-CA.md 6.6 KB
      # Canadian English (en-CA) — Software String Localization Style Guide
      
      > **Required first step — this guide is not self-contained.** Before you translate anything, you **must** read the [general English style guide](./styleguide_en.md): it holds the shared conventions for *all* English variants, and most of the rules you need live there, not in this file. The sections below cover **only** what is specific to Canadian English (en-CA), adding to or overriding the general guide — used on their own they will leave you missing the majority of the conventions. This list isn’t exhaustive; apply your knowledge of the variant for anything it doesn’t cover.
      
      ## Canadian English (en-CA) specifics
      
      - **Spelling is a British–American hybrid — the defining trait**: Use British ‑our ("colour", "behaviour", "favour", "honour") and ‑re ("centre", "metre", "theatre", "litre"), double the L before an inflection ("travelled", "cancelled", "labelled"), and use ‑ce for nouns ("defence", "licence"). BUT use American ‑ize/‑yze, not ‑ise/‑yse ("organize", "realize", "initialize", "analyze"). So "colour" and "organize" coexist — neither pure UK nor pure US.
      - **Spelling — Canadian particulars**: "cheque" for the bank instrument (but "check" the verb and the checkbox), "grey", "catalogue", "dialogue". Use "program" (not "programme"). Note that "aluminum" and "tire" follow the American forms, not British "aluminium"/"tyre". The noun takes ‑ce and the verb ‑se ("a licence" / "to license", "a practice" / "to practise") — except in computer contexts, where the noun keeps the US spelling ("software license agreement"). Keep "analog" for the opposite of digital, but use the longer spelling for watches and clock faces. "bevel" takes one L as noun and verb, two as an adjective ("the bevelled edges").
      - **Serial comma — usually omit**: Write "apples, apricots, bananas or oranges". Add the final comma only when the **last** item itself contains an "and" or "or" and the list could be misread, or when the final item is long or different enough to need it ("See invitations, know what’s up next, and get alerts when it’s time to leave" (\u2019)).
      - **Numbers — comma only above four digits**: A four-digit number is unpunctuated ("$2400", "over 7000 languages"); use the comma from five digits up ("17,344 km", "$14,299.00"). Spell out numbers below ten and any number that begins a sentence, unless it carries a decimal ("Eight billion people live in five main continents").
      - **Currency**: Place "$" directly before the number with no space. Drop ".00" when there are no cents ("$50") and use a leading zero below a dollar ("$0.65"). Combine numerals and words for large values ("$5 million"), shortening to "$5M" only where space is tight. Where several currencies appear, use the ISO code and a space ("CAD 150"), not "C$".
      - **Dates and time lean American**: Month-day-year ("April 8, 2024"), don’t switch to a day-month order; the week starts on Sunday. Time is 12-hour with "a.m."/"p.m." ("10:00 a.m."). All-numeric dates are acceptable here — both "MM/DD/YY" and the dot-separated "MM.DD.YY".
      - **Hyphenation — prefixed words close up, compound modifiers keep the hyphen**: Write prefixed words solid ("multiroom", "ultracharged"), except after "pre" ("pre-production") or where the prefix doubles a vowel ("re-engineered"). Keep the hyphen in a compound adjective or noun even when it follows what it describes: "a water-resistant iPhone" *and* "this iPhone is water-resistant".
      - **Full stops on courtesy titles, but not other abbreviations**: Write "Mr. Smith", "Mrs.", "Dr. Jones" with the full stop, but don’t pair a title with a degree ("Dr. Jones" or "Jones, PhD", never both), and "Miss" takes none because it isn’t an abbreviation. Other abbreviations drop the stop where possible ("avg", "min").
      - **Punctuation particulars**: No spaces around a slash ("Country/Region"). Put a comma after Latin abbreviation like "e.g." or "i.e." when introducing examples or clarifications ("e.g., $50"). Don’t capitalize after a colon introducing a list or an idea, even when what follows is a complete sentence ("Carry-in repair: take your Mac to an Apple Retail Store"); a capital may still follow a label like "Note". Don’t normalize quotation marks: where a string uses straight quotes consistently, leave them straight rather than converting them, and step in only where one string mixes straight and curly.
      - **Measurements — metric, with some imperial exceptions**: Prefer metric — temperature in degrees Celsius, distance in kilometres, mass in kilograms. The exceptions are specific rather than systematic: a person’s height in feet and inches, lumber in feet and inches, and displays measured diagonally in inches. They aren’t an exhaustive list, so for a case that isn’t named, use the unit a reader would actually use and understand in that context. Don’t convert units given inline in a sentence ("4 inches" stays inches). Close up "mm" for film sizes and Apple Watch ("16mm", "42mm"), an exception to the general space-between-value-and-unit rule that still holds elsewhere ("4.86 mm", "2 GB"). Write rate units with a slash for "per" — "Kb/s", "Mb/s", not "Kbps". Never use a straight quote for inches.
      - **Phone numbers** follow the North American plan: ten digits with the area code first and hyphens between groups ("403-555-0199"), country code "+1". Drop the leading "1" from 800 and 900 numbers when the audience is Canadian or North American ("800-555-1111") — it is the country code, not part of the number.
      - **Placeholder names and addresses**: Traditional English names work (Steven, Beverley, Carolyn, Nicole), but also use names reflecting Canada’s other communities (Lani, Benoît, Rakesh, Vitaliy, Carlos). Keep accents on French proper nouns and place names even in English strings ("Québec", "Montréal", "Trois-Rivières"). End an address with the province in brackets after the city and a Canada Post postcode ("120 Bremner Blvd Suite 1600, Toronto (Ontario)  M5J 0A8"); keep the US ZIP format for a US address.
      - **Don’t import French, and don’t localize URLs**: Canada is officially bilingual, but en-CA strings stay in English — leave French wording and Québec-specific choices to fr-CA, and note that the space-plus-comma number style belongs to Canadian French, not en-CA. Leave every URL exactly as the source has it: no country code, no local path.
      - **Collective nouns take a singular verb**: Like American English — "the team is", not "are".
      - **Capitalization**: Use sentence case for titles, but leave app and entity names in their own casing. Capitalize an identity or community term when it refers to people ("Deaf").
      
    • styleguide_en-GB.md 4.5 KB
      # British English (en-GB) — Software String Localization Style Guide
      
      > **Required first step — this guide is not self-contained.** Before you translate anything, you **must** read the [general English style guide](./styleguide_en.md): it holds the shared conventions for *all* English variants, and most of the rules you need live there, not in this file. The sections below cover **only** what is specific to British English (en-GB), adding to or overriding the general guide — used on their own they will leave you missing the majority of the conventions. This list isn’t exhaustive; apply your knowledge of the variant for anything it doesn’t cover.
      
      ## British English (en-GB) specifics
      
      - **Spelling — British forms**: Use ‑ise not ‑ize ("initialise", "organise", "synchronise", "analyse"), ‑our ("colour", "behaviour", "favourite"), ‑re ("centre", "metre", "theatre"), and ‑logue ("dialogue", "catalogue"). Double the L before an inflection ("cancelled", "travelling", "dialling", "modelling") but use a single L in some base words ("enrol", "fulfil", "skilful"). Use ‑eable ("likeable", "sizeable") but keep "scalable" and "resizable".
      - **Spelling — British particulars**: Word-specific spellings that don’t follow the systematic patterns above: "aluminium" (not "aluminum"), "grey" (not "gray"), "tyre" (not "tire").
      - **Spelling — noun vs verb (‑ce/‑se)**: The noun takes ‑ce, the verb ‑se: "a licence" but "to license"; "a practice" but "to practise"; also "a defence".
      - **Don’t over-apply the spelling conversions**: Leave genuine exceptions in their US form — keep "analog" for the opposite of digital (only the noun, as in "an analogue of something", takes the longer spelling), keep "meter" for a measuring instrument such as a speedometer (the unit of length is "metre").
      - **Serial comma — usually omit** (overrides the general serial-comma rule): Write "apples, oranges and pears". Add the final comma only to prevent ambiguity ("Hereford, Bath and Wells, and Gloucester") or for rhythm before a long final item.
      - **Punctuation outside quotes** (overrides the general rule): Place commas and full stops outside the closing quote ("Open the “General” pane." (\u201C, \u201D)) except inside a genuine quoted sentence of speech. Use single quotes to flag a word as a word.
      - **No full stops in abbreviations; "am"/"pm" not "a.m."/"p.m."** (overrides the general time rule): Write "Dr", "Mr", "min" and "9:41 am", "6:30 pm" — no full stops, with a space before am/pm.
      - **Em dash takes spaces** (overrides the closed-up US style): Put a space on each side of the em dash — "Missed call — from your iPhone" — rather than closing it up.
      - **Dates and calendar**: Long form "8 April 2010" (no "8th", month in full, no commas) or "Thursday, 8 April 2010"; short form dd/mm/yyyy with leading zeros ("08/04/10"). The week starts on Monday. Default to 24-hour time ("09:41"); use 12-hour only in conversational copy.
      - **Measurements — convert to metric, with exceptions**: Convert imperial to metric ("a 5-mile run" → kilometres; "10 inches" → centimetres), but keep imperial for a person’s height, a baby’s weight, road distances (miles), and beer or milk (pints). Temperature in degrees Celsius. A metric ton is a "tonne". Drop a US imperial gloss on running distances ("5K (3.1 mi)" → "5K"). Screen sizes stay in inches.
      - **Numbers and currency**: Comma thousands separator, even for four digits ("1,000"). Currency is the pound, "£"; the generic-price placeholder is "XX".
      - **Phone numbers**: Group BT-style with spaces and no hyphens ("020 7153 9000", "01273 740 500", mobile "07123 456 789"). The London code is "020" — the following 7 or 8 is part of the number, not "0207"/"0208".
      - **Placeholder names and addresses**: Write UK addresses on separate lines with no punctuation, ending in a postcode ("AT1 2BC"). Localise "city" to "town/city" only for small places; keep "city" for large or metropolitan references (weather, time zones).
      - **Collective nouns take a plural verb**: "the team are playing", "the staff have the day off" — keep pronoun agreement ("the jury are considering their verdict").
      - **Phrasing swaps from US**: "different to" (not "than/from"), "call … on" a number (not "at"), "in hospital"/"at school"/"at the weekend", "comes as standard", "make a call" (not "place a call"), "prices from" (not "prices start at"), "straight out of the box", "May to August" (not "through"), "count towards", "switch between" even with more than two items.
      
    • styleguide_en-IN.md 6.4 KB
      # Indian English (en-IN) — Software String Localization Style Guide
      
      > **Required first step — this guide is not self-contained.** Before you translate anything, you **must** read the [general English style guide](./styleguide_en.md): it holds the shared conventions for *all* English variants, and most of the rules you need live there, not in this file. The sections below cover **only** what is specific to Indian English (en-IN), adding to or overriding the general guide — used on their own they will leave you missing the majority of the conventions. This list isn’t exhaustive; apply your knowledge of the variant for anything it doesn’t cover.
      
      ## Indian English (en-IN) specifics
      
      - **Indian numbering system — lakh and crore**: Group digits in twos after the first three — "1,00,000" (one lakh = 100,000), "10,00,000" (ten lakh = one million), "1,00,00,000" (one crore = ten million), "1,00,00,00,000" (one hundred crore = one billion). Use the words "lakh" and "crore"; fall back to "million"/"billion" only where they remove ambiguity.
      - **Currency — rupee**: Use "₹" with no space before the amount ("₹500.45", not "₹ 500.45") and Indian grouping ("₹1,00,000"). The code is INR.
      - **Spelling — British base**: en-IN follows British spelling and largely reuses the en-GB target — ‑ise ("initialise"), ‑our ("colour"), ‑re ("centre"), ‑logue ("dialogue"), double L ("cancelled"), and ‑ce noun / ‑se verb ("a licence" / "to license", "a practice" / "to practise"). Keep US spelling in product and feature names ("Game Center"). Don’t over-convert genuine exceptions either: keep "analog" for the opposite of digital, and "meter" for a measuring instrument such as a speedometer (the unit of length is "metre").
      - **Collective nouns take a SINGULAR verb** (unlike British and Australian English): "My team is playing", not "are". If that clashes with a pronoun, rewrite ("The members of the jury are considering their verdict").
      - **Serial comma — usually omit; punctuation outside quotes**: Write "apples, oranges and pears". Add the final comma to disambiguate, where the last item is long or unlike the rest ("See invitations, know what’s up next, and get alerts when it’s time to leave" (\u2019)), or where it gives the copy a useful pause ("Sit less, move more, and get some exercise"). Place commas and full stops outside a closing quote except inside quoted speech. Use single quotes to quote a word or phrase inside a sentence ("using ‘gigabyte’ in the headline" (\u2018, \u2019)). Drop the comma before a sentence-final "too" ("pretty amazing too"), after "e.g." or "i.e.", after an introductory "or"/"then", after a short opening phrase ("This year you’re getting about the same amount of sleep as last year"), and before a coordinating "and"/"or" or a "because" clause ("Draw using just your finger or the Apple Pencil"; "The operation couldn’t be completed because the connection timed out").
      - **Em dash takes spaces; en dash for ranges**: Put a space on each side of the em dash — "Missed call — from your iPhone". Use a closed-up en dash for a range: "15:00–17:00", "Arsenal lost 2–1".
      - **Hyphenation, slashes and colons**: Hyphenate where a prefix doubles a letter ("re-enter", "pre-emptive") and after "hyper-, ultra-, super-, anti-, multi-, micro-, de-, re-, pre-, non-", but keep "rearrange", "recreate", "reopen", "reorder", "multiprocessor", "filmmaker" solid; compass points and their derivatives take hyphens ("north-east", "north-easterly"). Space both sides of a slash where either side runs to more than one word and the spacing aids clarity ("Combined optical digital audio output / headphone out"); don’t close up a slash that is already spaced, even where both sides are single words ("Country / Region"). Don’t capitalize after a colon introducing a list or an idea, even when what follows is a complete sentence ("Carry-in repair: take your Mac to an Apple Retail Store"); a capital may still follow a label like "Note".
      - **Dates and calendar**: Long form "8 April 2010" — month in full, "8" not "8th", no internal punctuation except with the weekday ("Thursday, 8 April 2010"). Short form dd/mm/yyyy with leading zeros ("08/04/10"), avoided where the order could be misread. The week starts on Sunday (not Monday as in the UK).
      - **Time — capitalised AM/PM, and full stops in abbreviations**: Write "9:41 AM", "4 PM" — capitals, space before, no ":00" on the hour; 24-hour takes a leading zero ("09:41"). Every other abbreviation and contraction keeps its full stop — "Dr.", "avg.", "min.", "Mr." — with "AM"/"PM" the deliberate exception.
      - **Measurements — metric, with Indian exceptions**: Default to metric (km, kg, °C) and strip an imperial gloss from running distances ("5K (3.1 mi)" → "5K"), but keep a person’s height in feet and inches. Screen sizes are in inches, except smartphone display sizes, which Indian regulation requires in centimetres on websites and retail channels. Pluralise spelled-out imperial units even below one ("0.68 pounds", "0.79 inches"). Never use a straight quote for inches. Write rate units with a slash for "per" — "Kb/s", not "Kbps".
      - **Phone numbers**: Mobile groups five-plus-five ("+91 98760 54321", "098760 54321"). Landlines take a 2–4-digit area code, usually bracketed, then a 6–8-digit subscriber number ("(000) 123-4567", "+91 183-1234567"). Use delimiters only where the layout allows.
      - **Placeholder names and addresses**: Localise a sample name only when a graphic shows an Indian person; then use a neutral, widely shared name (John Doe → "Rajesh Kumar"). Avoid caste-indicating surnames and pick names that read naturally across regions. Follow India Post address order, with the PIN code spaced ("560 001").
      - **Phrasing swaps, and trimming "of" and "that"**: Prefer "in hospital", "make a call", "prices from", "straight out of the box", "towards", "from now until the end of July", and "switch between" even with more than two items. Ask "What would you like…", not "What do you want…". Use "different than" or "different from"; "different to" is an en-GB and en-AU form, not an en-IN one. Drop "of" and "that" wherever the meaning survives without them ("All of the data on your phone" → "All data on your phone"; "We believe that everyone can" → "We believe everyone can"), but keep them where removal blurs the sense.
      - **Inclusive language, and no superlative claims**: Avoid caste-indicating surnames in examples; capitalise "Black" and "Brown" when they refer to identity.
      
    • styleguide_en-PH.md 4 KB
      # Philippine English (en-PH) — Software String Localization Style Guide
      
      > **Required first step — this guide is not self-contained.** Before you translate anything, you **must** read the [general English style guide](./styleguide_en.md): it holds the shared conventions for *all* English variants, and most of the rules you need live there, not in this file. The sections below cover **only** what is specific to Philippine English (en-PH), adding to or overriding the general guide — used on their own they will leave you missing the majority of the conventions. This list isn’t exhaustive; apply your knowledge of the variant for anything it doesn’t cover.
      
      ## Philippine English (en-PH) specifics
      
      - **Spelling and mechanics follow American English**: Use US spelling throughout ("color", "center", "organize", "analyze", "catalog", "dialog", "traveled", "defense", "license"), so most of the general guide applies unchanged. Keep the serial comma. Special characters and punctuation follow English (US).
      - **Currency — Philippine peso**: Use "₱" immediately before the amount with no space ("₱1,234.56", never "₱ 1,234.56"); the currency code is PHP. Comma thousands separator, period decimal; Western numbering (million/billion), never lakh/crore.
      - **Dates lean American**: Month-day-year ("April 8, 2024") and mm/dd/yyyy are both acceptable — choose whichever fits the design.
      - **Time — 12-hour, with uppercase AM/PM and no full stops** (overrides the general "10:45 a.m." style): The 12-hour clock is the default for all general communication ("2:30 PM"). Reserve the 24-hour clock ("14:30") for specialized fields such as aviation and military use, not consumer UI.
      - **Measurements — metric, with imperial for the body**: Prefer metric (km, kg) and give temperature in degrees Celsius. Imperial persists for body measurements — height in feet and inches, waist and hips in inches. TV, computer and mobile screens are measured diagonally in inches. Don’t convert units given inline in a sentence, and never use a straight quote for inches.
      - **Units — approved symbols and spacing**: "cm", "m", "km", "in" for length; "mg", "g", "kg" for mass; "ml" and uppercase "L" for capacity; "sec"/"s", "min" and "h" for time — minute is "min", never "m", which is the symbol for meter. Write rate units with a slash for "per" — "Kb/s", not "Kbps" — keeping the case exact, since "b" is bits and "B" is Bytes. Pluralize spelled-out imperial units even below one ("0.68 pounds", "0.79 inches").
      - **Phone numbers**: Country code "+63"; mobile "+63 917 123 4567" or "0917 123 4567"; Metro Manila landline "(02) 8888 1234".
      - **Addresses**: Unit/house/lot/block number and street, then subdivision or barangay, then city or municipality and province, then a four-digit ZIP code ("Unit 321, KKK Tower, 12 J.P. Rizal Street / Bayani Village, Brgy. San Antonio / Antipolo City, Rizal / 1870"). Specifying the unit, house, lot and block number matters in cities with vertical residences.
      - **Register — formal Standard Philippine English, not Taglish**: Everyday Philippine speech mixes English and Tagalog (Taglish) and has its own colloquialisms, but UI strings use formal Standard Philippine English, which is very close to American English. Don’t inject colloquialisms or code-switching.
      - **Watch for Philippine-English false friends**: A few words carry charged local meanings — most importantly, avoid "salvage" as a term for recovering data, as it has a strongly negative connotation in Philippine English; use "recover", "save" or "retrieve" instead. ("Comfort room"/"CR" is the local term for a restroom, but for global UI follow the source’s neutral term.)
      - **Placeholder names**: Filipino names are largely Spanish- and English-derived (surnames such as "dela Cruz", "Santos", "Reyes"); the archetypal everyman is "Juan dela Cruz" ("Maria" for a woman) — the local equivalent of "John Doe". Beyond that pair, use given names showing the local habits of abbreviation, combination and elision: "Ma. Victoria", "Jomari", "Jonel", "Marites".
      
    • styleguide_en.md 10.1 KB
      # English (en) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: English uses the curly apostrophe ’ (\u2019) for contractions and possessives, and curly double quotation marks “ (\u201C) and ” (\u201D) for quoting — not straight ASCII quotes.
      
      ## Tone And Voice
      
      - **Smart but casual**: Render the target in a tone that is "smart but casual" — closer to formal than informal, but never stiff or academic. Use a neutral, descriptive style and avoid trendy slang, regardless of how formal or casual the source register is.
      
      - **Use contractions**: English UI text reads naturally with common contractions, even when the source language has no equivalent. Contract be-verbs and auxiliaries with "not" ("don’t" (\u2019), "isn’t" (\u2019), "can’t" (\u2019)) and with personal pronouns ("you’re" (\u2019), "it’s" (\u2019), "they’re" (\u2019)). Don’t contract nouns or proper nouns ("The computer isn’t working" (\u2019), not "The computer’s not working" (\u2019)). Avoid awkward contractions ("could’ve" (\u2019), "it’ll" (\u2019), "how’re" (\u2019)).
      
      - **Don’t translate idioms literally**: Don’t carry a source-language idiom or colloquial expression across word for word. Use plain, simple sentence structures so the result reads naturally.
      
      ## Addressing The User
      
      - **Address the user as "you"; never first person**: Translate the user as "you", collapsing any formal/informal (T–V) distinction the source language makes — English has only one form. Don’t render the source’s first-person "we"/"I" (common when the source refers to the maker); rewrite in terms of the reader or the product. Use "recommended", not "we recommend".
      
      - **Omit "please"**: Drop "please" from instructions even when the source includes a politeness marker. "Enter your password", not "Please enter your password".
      
      - **Prefer present tense**: Use the present tense wherever it suffices, even if the source uses future or another tense. In conditionals use the present ("If the parameter is true, playback stops", not "…will stop"). Reserve the future tense for things genuinely yet to come (e.g. a product not yet available).
      
      ## Grammar And Usage
      
      - **Possessives**: Form the possessive of a singular noun — including one ending in s — with an apostrophe and s ("the device’s connector" (\u2019), "the boss’s husband" (\u2019)); a plural noun ending in s takes only an apostrophe ("the students’ curriculum" (\u2019)). When a name precedes a `%@` person variable, prefer "%@’s" (\u2019) over a separate possessive construction. Rewrite to avoid a possessive on any product name ("the features of your MacBook Pro", not "your MacBook Pro’s features" (\u2019)).
      
      - **Serial comma**: Use a serial (Oxford) comma before "and" or "or" in a list of three or more items ("phone calls, text messages, and reminders"), regardless of the source’s list punctuation.
      
      - **Avoid "and/or"**: Rewrite to avoid the construction — "document and app icons", not "document and/or app icons".
      
      - **Avoid abbreviations and Latin shortcuts**: Don’t introduce abbreviations to save space; if a string is too long, make a note about a UI improvement rather than abbreviate. Avoid Latin abbreviations ("for example", not "e.g."; "and so on", not "etc."; "that is", not "i.e."). Keep an acronym as the source uses it; if the source pairs it with a spelled-out form, keep that, and don't add an expansion the source lacks or drop one it has.
      
      ## Capitalization
      
      - **Apply English casing by string role, not from the source**: English uses sentence-style (capitalize only the first word — "Skip this backup") and title-style (capitalize each significant word — "Skip This Backup"). Choose the style from the string’s role per English UI convention, not from the source: many source languages capitalize far less or far more than English, so don’t mirror the source’s casing.
      
      - **Title-style rules**: Capitalize the first and last word, and all nouns, pronouns, verbs, adjectives, and adverbs regardless of length ("Is", "Are", "Be"). Capitalize prepositions of five letters or more, and prepositions of any length in a phrasal verb ("Turn On", "Log In"). Don’t capitalize articles ("a", "an", "the"), coordinating conjunctions ("and", "but", "or", "nor", "for", "yet", "so"), the "to" in infinitives, or prepositions of four letters or fewer ("at", "by", "for", "in", "of", "on", "to", "up", "with"). Keep lowercase-initial product names lowercase even at the start ("iPad", "macOS").
      
      ## Punctuation
      
      - **Curly quotation marks**: Use English curly quotation marks “ (\u201C) and ” (\u201D), not straight quotes and not the source language’s quotation style (guillemets, low-high quotes, corner brackets, etc.). Straight quotes and primes are only for code and for feet/inches. Put periods and commas inside the quotation marks; put semicolons, colons, question marks, and exclamation points outside unless part of an actual quotation.
      
      - **What to quote**: Quote onscreen elements whose names use sentence-style capitalization, including checkbox and option labels ("Select the “Allow repeated calls” checkbox" (\u201C, \u201D)). For title-style element names, quote only if the name could be misread in context. Quote onscreen messages cited in text.
      
      - **No space before punctuation**: Don’t carry over spacing the source language requires before marks like "?", "!", ":", or ";". English closes these up directly against the preceding word.
      
      - **Ellipsis**: Use the ellipsis character (not three periods). When a menu command or button name ends with an ellipsis, drop the ellipsis when referring to it in running text ("Choose File > Print", not "Choose File > Print…").
      
      - **Colons**: In running text, capitalize the first word after a colon only if it begins a complete sentence; in a heading, capitalize it regardless of part of speech. Precede every list with a colon.
      
      - **Ampersand**: Use "&" only when referring to onscreen elements, document tiles, or other items that contain the character ("Privacy & Security settings") in the source string. Otherwise spell out "and". Don’t escape `&` like you have to in HTML.
      
      ## Interface Interaction Verbs
      
      - **Choose vs. select**: Use "choose" for menu items and commands; use "select" for objects the user picks among or highlights — icons, files, text, checkboxes, radio buttons ("Select the text, then choose Edit > Copy"). A checkbox or option is selected or unselected — avoid "checked"/"unchecked".
      
      - **Click, tap, press**: Use "click" for the mouse or trackpad, "tap" for touchscreens, and "press" for keys and physical buttons — choose by platform rather than mirroring a single generic source verb. Don’t write "click on" or "tap on", and don’t use "click and drag" — use "click" or "drag".
      
      ## Numbers, Units, And Time
      
      - **Spelling out numbers**: Spell out cardinal and ordinal numbers from one through nine ("up to five computers"), and any number that begins a sentence (rephrase to avoid this where possible). Always use a numeral for a number referred to as a number and for a value with a unit ("the number 4 appears", "5 mm").
      
      - **Number grouping and decimals**: Use a comma as the thousands separator, even with four digits ("1,000 songs"), and a period as the decimal separator — converting from the source’s separators where they differ. Don’t alter decimal points inside variables such as "%.1f". Flag any string that hard-codes a grouping or decimal separator.
      
      - **Units of measure**: Insert a space between the number and a unit symbol or abbreviation ("20 GB of memory"). Unit symbols are unaltered in the plural ("lb.", not "lbs."). Hyphenate a spelled-out unit in a compound adjective ("20-yard line"), but not the symbol form ("30 GB capacity"). Where a unit is shown, flag any string that hard-codes a unit instead of using a formatter.
      
      - **Time of day**: Use numerals for times. Include "a.m." and "p.m." in lowercase, with periods, preceded by a space ("10:45 a.m."). Use "noon" and "midnight".
      
      ## Names, Variables, And Trademarks
      
      - **Don’t abbreviate or shorten product names**: Write product and service names in full, following their official capitalization. Never abbreviate, shorten, translate, or transliterate them.
      
      - **Don’t use product names as verbs**: "Make a FaceTime call to a friend", not "FaceTime a friend"; "identify a song using Shazam", not "Shazam a song".
      
      - **No plural or possessive trademarks**: Rewrite to avoid plural or possessive forms of trademarked names ("Mac computers", not "Macs"; "the storage on your iPad", not "your iPad’s storage" (\u2019)).
      
      - **Variables and placeholders**: Never alter or translate variable tokens such as %@, %d, or %lu. English word order often differs from the source, so when the natural English sentence reorders variables, add positional markers (%1$@, %2$@) to every variable in the string.
      
      - **Keep multi-word names together**: Don’t break a multi-word trademark (Apple TV, iPad Pro) across lines; use a nonbreaking space to keep it on one line.
      
      ## Inclusive Language
      
      - **Gender-neutral by default**: English does not mark grammatical gender, so resolve any gendered agreement in the source into neutral English. Avoid binary gender phrasing when you can reword ("people", not "men and women"), and use singular "they"/"their"/"them" for a person of unspecified gender, or rewrite with a plural noun or by omitting the pronoun.
      
      - **Avoid violent, oppressive, or ableist terms**: Don’t describe technology with terms that are inherently violent ("kill", "hang"), oppressive ("master"/"slave"), or that equate mental health with function ("sanity check"). Avoid attributing human or biological qualities to software or hardware.
      
      - **Don’t encode value in color**: Don’t assign good or bad meaning to colors. Use "deny list"/"allow list" instead of "blacklist"/"whitelist"; use colors only to describe actual colors.
      
      - **Don’t assume the senses**: In instructions, don’t assume the reader can see, hear, or speak. Write "a message appears" or "an alert sound plays", not "you see a message" or "you hear an alert". Avoid idioms with negative associations about disability ("fell on deaf ears", "turned a blind eye").
      
    • styleguide_es-419.md 13.3 KB
      # Latin American Spanish (es-419) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Latin American Spanish uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and single curly quotation marks ‘ (\u2018) and ’ (\u2019) only for nesting quotes inside already-quoted text — not straight ASCII quotes and not angle guillemets.
      
      ## Tone And Voice
      
      - **Natural, Concise, and Pragmatic Style**: Translations should read naturally to a Latin American user, conveying meaning directly and without unnecessary wordiness. Sentences should be short and grammatically simple where possible, but avoid a robotic, telegraphic feel — use semicolons or conjunctions to join related ideas when it improves flow.
        - *Source:* "Apple Watch is a device that allows you to keep track of your heart beat. By wearing your Apple Watch and resting your arm on a flat surface, you only have to open the ECG app to start measuring your heart rhythm." → *Target:* "El Apple Watch te permite medir tu pulso; al traerlo puesto, solo tienes que abrir la app ECG para comenzar las mediciones al colocar tu brazo sobre una superficie plana."
      
      ## Addressing Users
      
      - **Use Informal Second-Person Singular (tú)**: Address users informally using 'tú' across all software products. Avoid overly casual slang or colloquial phrases — the tone should feel warm and personal but still polished.
        - *Source:* "Do you want to continue?" → *Target:* "¿Quieres continuar?"
      
      - **Omit 'Please' in Instructions**: English frequently uses 'please' when directing the user to perform an action. This word should be dropped in Spanish, as it is redundant and sounds unnatural in instructional contexts.
        - *Source:* "Please use another name." → *Target:* "Usa otro nombre."
      
      - **Avoid Gendered Language When Referring to the User**: Do not assume the user's gender. Reword sentences to avoid gendered adjectives or verbs whenever possible. When a gendered word is unavoidable, use the masculine form as the grammatical neutral.
        - *Source:* "Are you sure?" → *Target:* "¿Quieres…?" (not "¿Estás seguro de que…?")
        - *Source:* "You are connected to the Internet." → *Target:* "Te conectaste a Internet." (not "Estás conectado a Internet.")
      
      - **Prefer Simple Past Compound Past Tense**: When the context allows both, use the compound past tense (pretérito perfecto compuesto) rather than the simple past tense (pretérito indefinido).
        - *Source:* "Could not…" → *Target:* "No se pudo"
      
      ## Grammar
      
      - **Prefer Active Voice and 'Voz Pasiva Refleja'**: Spanish uses the passive voice far less than English. Prefer active constructions or the reflexive passive ('se' + verb) over direct passive translations.
        - *Source:* "This file is required by macOS to display text. It has been restored." → *Target:* "macOS requiere este archivo para mostrar texto, por lo que se restauró."
      
      - **Reduce English Redundancy**: English often repeats subjects and nouns across consecutive sentences. In Spanish, substitute repeated nouns with articles or implicit verb subjects to create a more streamlined translation.
        - *Source:* "Log in using your Apple ID. If you've forgotten your Apple ID, please visit…" → *Target:* "Inicia sesión con tu Apple ID. Si lo olvidaste, visita…"
      
      - **'New' Placement — Before Noun for Creation, After for Information**: Place “nuevo” o “nueva” before the noun when the meaning involves creation of something new. Place it after the noun when the meaning is informative or descriptive.
        - *Source:* "New message" → *Target:* "Nuevo mensaje"
      
      - **Avoid Cacophony Through Word Variation**: When a direct translation creates a jarring repetition of sounds, reorder the sentence or use a synonym to improve readability — even if this slightly departs from consistent terminology conventions.
        - *Source:* "Your computer is authenticating your data. Please try again later." → *Target:* "Se están autenticando los datos. Intenta después." (not "Tu computadora está autenticando tus datos. Intenta más tarde.")
      
      - **Articles with App and Utility Names**: App names, utility names, and update names do not take articles. A few system elements are exceptions and do take an article, most notably 'el Finder' and 'el Dock'. Hardware terms always use an article matching the gender of the implicit noun.
        - *Source:* "Open System Settings" → *Target:* "Abrir Configuración del Sistema"
        - *Source:* "Open the Finder" → *Target:* "Abre el Finder"
        - *Source:* "the iPod" → *Target:* "el iPod"
      
      - **Conjunction “y” (and) before product names beginning with i-**: While it’s grammatically incorrect to use “y” when the last item in a list begins with “i” (like “idea”), names of Apple products can be preceded with a “y” conjunction.
        - *Source:* "Apps for iPad and iPhone" → *Target:* "Apps para iPad y iPhone"
      
      ## Punctuation
      
      - **No Oxford Comma; Semicolons for Nested Lists**: Do not use a comma before the final 'and' or 'or' in a list (no Oxford comma). When a list contains sub-lists, separate the groups with a semicolon.
        - *Source:* "Connects your iPhone, iPod, or iPad." → *Target:* "Conecta tu iPhone, iPod o iPad."
        - *Source:* "Apple ID gives you access to stores like iTunes Store, App Store, and the Tones Store; sites like iCloud and Apple Music; and services like Apple Music, Genius, and Videos." → *Target:* "Apple ID te brinda acceso a tiendas como iTunes Store, App Store y la tienda de tonos; sitios como iCloud y Apple Music; y servicios como Apple Music, Genius y Videos."
      
      - **Use Curly Quotation Marks**: Always use curly (typographic) quotation marks (“ (\u201C) and ” (\u201D)) instead of straight quotation marks. Quotation marks are used for things a user types or says — such as file names, Wi-Fi network names, device names, or voice commands — but not for app names or UI elements.
        - *Source:* "Select the file named \u201Creport\u201D." → *Target:* "Selecciona el archivo \u201Creporte\u201D."
      
      - **Restrict Exclamation Marks to Casual Contexts**: Unlike in English, exclamation marks in Spanish signal intense excitement or shouting. Avoid them in standard technical strings. They may be used at your discretion in casual, marketing-adjacent content.
        - *Source:* "Select a utility first!" → *Target:* "Selecciona primero una utilidad."
        - *Source:* "You reached your daily Move goal for the 100th time! Incredible stuff!" → *Target:* "Lograste tu objetivo diario de Moverse 100 veces. ¡Increíble!"
      
      - **Curly Double Quotation Marks, Not Angle Quotes**: Always use curly double quotation marks regardless of the quotation style in the source. Use single curly quotation marks only when nesting quotes inside already-quoted text. The period is placed after the closing quotation mark in Spanish.
        - *Source:* "The 'Hey Siri' feature will resume." → *Target:* "La función \u201CAl oír \u2018Oye Siri\u2019\u201D se reanudará."
      
      - **URLs**: When a complete sentence ends with a URL, a period is still needed after the URL.
        - *Source:* "Available at https://www.apple.com/legal/sla/" → *Target:* "Disponible en https://www.apple.com/es/legal/sla/."
      
      - **No Space Around Slashes**: In Spanish there should be no space before or after a slash used to separate elements or alternatives, unlike the common English practice.
        - *Source:* "Play / Pause" → *Target:* "Reproducir/pausa"
      
      ## Special Characters
      
      - **Use the Ellipsis Character, Not Three Dots**: Always use the single ellipsis character (…) rather than three consecutive periods (...). This ensures correct rendering, spacing, and correct accessibility interpretation by assistive technologies.
        - *Source:* "Loading..." → *Target:* "Cargando…" (use the … character, not ...)
      
      - **Translate Symbol-as-Word Characters**: Characters used as words in English must be replaced with their Spanish equivalents in translation, not left as symbols.
        - *Source:* "Settings & Privacy" → *Target:* "Configuración y privacidad" (& → y)
        - *Source:* "#results" → *Target:* "número de resultados" (# → número)
        - *Source:* "Reply @user" → *Target:* "Responder a usuario" (@ → en)
      
      - **Non-Breaking Space in Multi-Word Product Names**: Use non-breaking spaces between all words in multiple-word Apple product names.
        - *Source:* "Apple Vision Pro" → *Target:* "Apple Vision Pro"
      
      - **Non-Breaking Space Before '>' in UI Paths**: Use a non-breaking space before the '>' separator in UI navigation paths.
        - *Source:* "General > About" → *Target:* "General > Información"
      
      ## Capitalization
      
      - **Capitalize App Names; Lowercase Feature Names**: Names of apps, utilities, and software updates capitalize all major nouns and modifiers. Translated names of features, services, and tools are treated as generic common nouns — written in all lowercase, preceded by an article, and without quotation marks.
        - *Source:* "System Settings" → *Target:* "Configuración del Sistema" (app name)
        - *Source:* "Notification Center" → *Target:* "el centro de notificaciones" (feature name)
        - *Source:* "Airplane Mode" → *Target:* "el modo de vuelo" (feature name)
      
      - **Lowercase After Colon — Unless Preceded by a Title or Warning**: In Spanish, lowercase is generally used after a colon when the text continues on the same line. Use uppercase after a colon only when preceded by a section title or a word like 'Advertencia', 'Nota', or 'Importante'.
        - *Source:* "Important: Do not close this window." → *Target:* "Importante: No cierres esta ventana."
      
      ## Interface Elements
      
      - **Use Infinitive for Buttons; Imperative or Noun for Instructions**: UI actions (buttons, options, menus) use the infinitive form to indicate the user can perform the action at any time. Instructions that ask the user to complete a step use the imperative. Titles in Welcome screens, alerts, and What's New sections prefer a noun phrase over a verb.
        - *Source:* "Enable Face ID" → *Target:* "Activación de Face ID" (title)
        - *Source:* "Send a Message" → *Target:* "Envía un mensaje" (instruction)
        - *Source:* "Select to play a sound" → *Target:* "Reproducir un sonido" (tooltip)
      
      ## Abbreviations
      
      - **Spell Out Abbreviations When Space Allows**: Abbreviations are much less common in Spanish than in English. Fully spell out English abbreviations whenever space permits. Abbreviating by truncating the last letters is a last resort — try rewording the string first before abbreviating.
        - *Source:* "disp." → *Target:* "dispositivo" (preferred when space allows)
      
      ## Acronyms
      
      - **Do Not Translate Acronyms; No Periods or Plural Forms**: Keep international technical acronyms in their English form unless a widely understood Spanish equivalent exists. Acronyms have no periods, no spaces between letters, and no plural 's'.
        - *Source:* "USBs" → *Target:* "USB" (no plural 's')
        - *Source:* "RAM" (random access memory) → *Target:* "RAM"
      
      ## Numerals
      
      - **Period as Decimal Separator; Comma as Thousands Separator**: Use a period for decimal values and a comma to separate thousands in numbers with four or more digits. Write small cardinal numbers (1–10) as words in most contexts; use figures from 11 onward. Ordinal numbers use superscript-free suffixes (1o., 2a., 3er.).
        - *Source:* "0.5 m" → *Target:* "0.5 m"
        - *Source:* "25,000 songs" → *Target:* "25,000 canciones"
        - *Source:* "2nd generation" → *Target:* "2a. generación"
      
      - **Ordinals — Prefer Written-Out Forms**: Write ordinal numbers in words (tercer, primeras)
        - *Source:* "1st" → *Target:* "primero"
      
      ## Measurements
      
      - **Convert Imperial to Metric and Round**: English measurements in imperial units must be converted to the metric system. Round the result to a natural value and add the original if helpful for context.
        - *Source:* "Your device needs to be within 30 feet of your computer." → *Target:* "El dispositivo debe estar en un radio de 9 metros con respecto a tu computadora."
      
      ## Date And Time
      
      - **Day-Month-Year Date Format; 12-Hour Clock**: Use the day-month-year order for dates. Use the 12-hour time format for Mexico and most of Latin America.
        - *Source:* "January 25, 2010" → *Target:* "25 de enero de 2010" (or "25/1/2010")
      
      ## Addresses
      
      - **Use Latin American Address Format**: Replace English postal address placeholders with Latin American conventions. Mexican postal address format is a common default. Example format: `Calle 123, Colonia, CP, Estado`.
      
      ## Trademarks And Product Names
      
      - **Hardware Product Names Take a Gendered Article; Software Names Generally Do Not**: Hardware Apple product names (iPhone, Mac, etc.) always take a Spanish article that agrees with the implicit noun's gender. Software terms (Mission Control, App Store, etc.) are generally used without an article. Do not add a plural 's' to untranslated product names.
        - *Source:* "iPhone" → *Target:* "el iPhone"
        - *Source:* "Mac" → *Target:* "la Mac"
        - *Source:* "iPods" → *Target:* "los iPod" (no added 's')
      
      ## Variables
      
      - **Preserve All Variables; Reorder with Positional Notation**: Every variable (%@, %d, %1$@, etc.) from the source must appear in the translation. If the natural Spanish word order requires variables to be rearranged, add positional notation (n$) to each variable rather than reordering by other means.
        - *Source:* "%@'s %@" → *Target:* "%2$@ de %1$@" (person's item)
        - *Source:* "Page %1$@ of %2$@" → *Target:* "Página %1$@ de %2$@"
      
    • styleguide_es.md 19.7 KB
      # Spanish (es) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Spanish uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and single curly quotation marks ‘ (\u2018) and ’ (\u2019) only for nesting quotes inside already-quoted text.
      
      ## Tone And Voice
      
      - **Informal but Respectful Tone**: Address the user with the informal 'tú' form. The style should feel warm and personal but never overly casual or slangy.
        - *Source:* "Do you want to continue?" → *Target:* "¿Quieres continuar?"
      
      ## Addressing Users
      
      - **Avoid Possessives — Use Definite Articles Instead**: English possessives are frequently avoided in Spanish. Prefer the definite article over a possessive pronoun unless the context specifically requires a sense of personal belonging, such as Welcome screens or when talking about passwords or passcodes.
        - *Source:* "Turn off your computer." → *Target:* "Apaga el ordenador."
        - *Source:* "Welcome to your new iPhone" → *Target:* "Te damos la bienvenida a tu nuevo iPhone"
      
      - **Gender-Neutral Language — Avoid Gendered References to the User**: When writing gendered sentences, make them as gender-neutral as possible. Avoid gendered nouns like 'el administrador del sistema' and prefer neutral rephrasing such as 'la persona que administra el sistema'.
        - *Source:* "the administrator" → *Target:* "la persona que administra"
      
      ## Grammar
      
      - **Prefer Compound Past Tense Over Simple Past**: When the context allows both, use the compound past tense (pretérito perfecto compuesto) rather than the simple past tense (pretérito indefinido).
        - *Source:* "Could not…" → *Target:* "No se ha podido…"
      
      - **'New' Placement — Before Noun for Creation, After for Information**: Place “nuevo” or “nueva” before the noun when the meaning involves creation of something new. Place it after the noun when the meaning is informative or descriptive.
        - *Source:* "New message" → *Target:* "Nuevo mensaje"
        - *Source:* "2 new messages" → *Target:* "2 mensajes nuevos"
      
      - **Preposition 'In' with Time — Use 'dentro de'**: Translate 'in' as 'dentro de' when it is followed by the time remaining until something happens.
        - *Source:* "In 3 hours" → *Target:* "Dentro de 3 horas"
      
      - **Articles with App and Utility Names**: App names, utility names, and update names do not take articles. A few system elements are exceptions and do take an article, most notably 'el Finder' and 'el Dock'. Hardware terms always use an article matching the gender of the implicit noun.
        - *Source:* "Open System Settings" → *Target:* "Abre Ajustes del Sistema"
        - *Source:* "Open the Finder" → *Target:* "Abre el Finder"
        - *Source:* "the iPod" → *Target:* "el iPod"
      
      ## Punctuation
      
      - **Curly Double Quotation Marks — Not Angle Quotes**: Always use curly double quotation marks regardless of the quotation style in the source. Use single curly quotation marks only when nesting quotes inside already-quoted text. The period is placed after the closing quotation mark.
        - *Source:* "The \u201CHey Siri\u201D feature will resume…" → *Target:* "La función \u201CAl oír \u2018Oye Siri\u2019\u201D se reanudará…"
        - *Source:* "Select \u201CStart automatically.\u201D" → *Target:* "Selecciona \u201CIniciar automáticamente\u201D."
      
      - **Quotation Marks for Multi-Word UI Items in Sentences**: Use quotation marks for UI options, buttons, and menu items that contain two or more words when they appear within a sentence. Single-word UI items do not need quotation marks. Only the first word inside the quotes is capitalized. Quotation marks are not needed for UI items in paths followed by ‘>’. Quotes are not needed if the option has two or more words and those words are in title case because they are proper nouns.
        - *Source:* "Click OK or More Information." → *Target:* "Haz clic en Aceptar o en \u201CMás información\u201D."
        - *Source:* "Go to General > Accessibility Options > VoiceOver" → *Target:* "Selecciona General > Opciones de accesibilidad > VoiceOver"
        - *Source:* "Tap an environment (like White Sands or Yosemite) or tap one option such as \u201CSummer light\u201D or \u201CWinter light\u201D to change…" → *Target:* "Toca un entorno (como White Sands o Yosemite) o toca una opción como \u201CLuz de verano\u201D o \u201CLuz de invierno\u201D para cambiar…"
      
      - **Quotation Marks Not Needed**: Quotation marks are not needed for email addresses containing “@”, websites, extension or server names, “likes”, and similar.
        - *Source:* "Use the .mov extension for…" → *Target:* "Usa la extensión .mov para…"
        - *Source:* "Your Apple Account %@ does not support FaceTime." → *Target:* "Tu cuenta de Apple %@ no es compatible con FaceTime."
        - *Source:* "This post has 5 likes. The likes on this post…" → *Target:* "Esta publicación tiene 5 me gusta. Los me gusta de esta publicación…"
      
      - **Footnote Markers**: Footnote markers are placed before the punctuation mark without any space.
        - *Source:* "60 fps.***" → *Target:* "60 fotogramas por segundo***."
        - *Source:* "60 fps.*⁺" → *Target:* "60 fotogramas por segundo*,⁺."
        - *Source:* "*Requires iMovie for…" → *Target:* "* Requiere iMovie para…"
      
      - **URLs**: When a complete sentence ends with a URL, a period is still needed after the URL.
        - *Source:* "Available at https://www.apple.com/legal/sla/" → *Target:* "Disponible en https://www.apple.com/es/legal/sla/."
      
      - **Exclamation Marks — Usually Not Needed**: English exclamation marks often do not carry the same weight in Spanish and should typically be removed.
        - *Source:* "Select a utility first!" → *Target:* "Selecciona primero una utilidad."
      
      - **Avoid Slashes — Use 'y' or Rephrase**: Only use a slash when a single button toggles between two actions (Mostrar/ocultar). When there are two different buttons for two different actions, use 'y' instead.
        - *Source:* "Toggle" → *Target:* "Mostrar/ocultar"
        - *Source:* "Back/Forward" → *Target:* "Atrás y adelante"
      
      - **Period After Closing Parenthesis**: When a sentence ends after a closing parenthesis, the period is always placed after the closing parenthesis in Spanish.
        - *Source:* "Turn off AirPort when not in use. (Use the status menu.)" → *Target:* "Desactiva AirPort cuando no esté en uso. (Utiliza el menú de estado)."
      
      - **Lists — Introductory Sentence**: When list items continue an introductory sentence, each item starts with a lowercase letter and ends with a comma, except the last item which ends with a period.
        - *Source:* "The computer is: on, off, locked." → *Target:* "El ordenador está: encendido, apagado, bloqueado."
      
      - **Lists — Independent Items**: When list items are independent (not continuing a sentence), each item starts with a capital letter and no punctuation is used at the end.
        - *Source:* "• Turn on device\n• Connect to Wi-Fi" → *Target:* "• Enciende el dispositivo\n• Conéctate a la red Wi-Fi"
      
      - **Lists — Internal Punctuation**: In lists where items contain internal punctuation, use semicolons to separate items and a period after the last one.
        - *Source:* "• Mac, which is fast\n• iPad, which is portable" → *Target:* "• Mac, que es rápido;\n• iPad, que es portátil."
      
      - **Lists — Consistent Style**: Punctuation style must be consistent across all items in the same list. Do not mix styles.
        - *Source:* "• Wi-Fi\n• Bluetooth" → *Target:* "• Wi-Fi\n• Bluetooth"
      
      ## Capitalization
      
      - **Capitalize Less Than English — First Word Only for UI Items**: For UI items only the first word is capitalized, but for app names, utility names, and update names capitalize every major word (excluding prepositions, articles, and conjunctions). Avoid ALL CAPS in software.
        - *Source:* "Language & Text" → *Target:* "Idioma y texto"
        - *Source:* "Align Objects" → *Target:* "Alinear objetos"
        - *Source:* "WARNING: It is important…" → *Target:* "Advertencia: Es importante…"
      
      - **Lowercase After Colon — Unless Preceded by a Title or Warning**: In Spanish, lowercase is generally used after a colon when the text continues on the same line. Use uppercase after a colon only when preceded by a section title or a word like 'Advertencia', 'Nota', or 'Importante'.
        - *Source:* "Silent Mode: Off" → *Target:* "Modo Silencio: desactivado"
        - *Source:* "Important: Do not close this window." → *Target:* "Importante: No cierres esta ventana."
      
      ## Abbreviations
      
      - **Spell Out Abbreviations — Use Non-Breaking Spaces in Multi-Word Abbreviations**: Translate English abbreviations as fully spelled-out words when there are no space restrictions. Use non-breaking spaces in multi-word abbreviations. Abbreviations include periods; symbols do not.
        - *Source:* "e.g." → *Target:* "p. ej." (use   between "p." and "ej.")
        - *Source:* "U.S." → *Target:* "EE. UU." (use   between "EE." and "UU.")
      
      ## Acronyms
      
      - **Do Not Translate Acronyms — No Periods, No Spaces, No Plurals**: Do not translate acronyms unless a very common Spanish equivalent exists. Acronyms do not use periods or spaces between letters and have no plural form.
        - *Source:* "CDs" → *Target:* "CD"
        - *Source:* "USB" → *Target:* "USB"
      
      ## Numerals
      
      - **Comma for Decimal, Period for Thousands (5+ Digits), No Separator for 4 Digits**: Use a comma as the decimal separator. Use a period as the thousands separator only for numbers with five or more digits. Four-digit numbers do not use any thousands separator. Version numbers retain the period (Versión 2.0).
        - *Source:* "0.5 meters" → *Target:* "0,5 metros"
        - *Source:* "100,000 songs" → *Target:* "100.000 canciones"
        - *Source:* "1,000 files" → *Target:* "1000 archivos"
      
      - **Ordinals — Prefer Written-Out Forms**: Write ordinal numbers in words (tercer, primeras).
        - *Source:* "1st" → *Target:* "primero"
      
      - **Speed and Zoom — 'x' Before the Number**: When 'x' or '×' represents a magnitude of speed or zoom, place it before the number in Spanish. Prefer using the letter 'x' over the symbol '×'.
        - *Source:* "24x" → *Target:* "x24"
        - *Source:* "×24" → *Target:* "x24"
      
      - **Software Strings — Use Figures for Numbers by Default**: In software strings, numbers are written with figures by default.
        - *Source:* "3 files selected" → *Target:* "3 archivos seleccionados"
      
      - **Informal or Slogan-Like Strings — Small Numbers Can Be Written in Words**: In informal or slogan-like strings, small numbers can be written out in words when space allows.
        - *Source:* "Live a better day by achieving 3 daily fitness goals." → *Target:* "Mantente en forma con tres objetivos diarios."
      
      - **Number 1 — Prefer Written-Out Form**: Write the number 1 as "uno/una" when possible, except in contexts where it could represent a variable or a different number.
        - *Source:* "1 file selected" → *Target:* "Un archivo seleccionado"
      
      - **Version Numbers — Remove the 'v' Prefix**: Remove the 'v' prefix from version numbers.
        - *Source:* "Requires macOS v10.12." → *Target:* "Se requiere macOS 10.12."
      
      ## Date And Time
      
      - **Time Format — Use 24-Hour Clock**: Use the 24-hour time format with colons separating hours, minutes, and seconds. No leading zero for single-digit hours (2:00 not 02:00).
        - *Source:* "4:30 PM" → *Target:* "16:30"
      
      - **Time Format — Midnight and Noon**: Midnight is 00:00 and noon is 12:00.
        - *Source:* "12:00 AM" → *Target:* "00:00"
      
      - **AM/PM — Write as 'a. m.' and 'p. m.' with Non-Breaking Spaces**: When AM/PM cannot be avoided, write them as 'a. m.' and 'p. m.' using non-breaking spaces between the letters.
        - *Source:* "10:00 AM" → *Target:* "10:00 a. m." (use   between "a." and "m.")
      
      - **Date Format — Use DD/MM/YYYY**: Use the DD/MM/YYYY date format. Weekdays and months are not capitalized.
        - *Source:* "Monday, September 9" → *Target:* "lunes, 9 de septiembre"
      
      ## Addresses
      
      - **Use Spanish Postal Address Format**: Replace English placeholder addresses with the standard Spanish postal address format. Example format: `Calle, 123, Localidad, C. P. Provincia`.
      
      ## Special Characters
      
      - **Use Ellipsis Character — Not Three Dots**: Always use the ellipsis character (…) instead of three consecutive dots.
        - *Source:* "Searching..." → *Target:* "Buscando…"
      
      - **Non-Breaking Space Between Figures and Nouns**: Use a non-breaking space between a number and the noun that follows it.
        - *Source:* "25 pages" → *Target:* "25 páginas" (use   between "25" and "páginas")
      
      - **Non-Breaking Space Between Numbers and Symbols**: Use a non-breaking space between a number and its associated symbol.
        - *Source:* "25%" → *Target:* "25 %" (use   between "25" and "%")
      
      - **Non-Breaking Space in Multi-Word Abbreviations**: Use non-breaking spaces between the parts of multi-word abbreviations.
        - *Source:* "e.g." → *Target:* "p. ej." (use   between "p." and "ej.")
      
      - **Non-Breaking Space in Multi-Word Product Names**: Use non-breaking spaces between all words in multi-word Apple product names.
        - *Source:* "Apple Vision Pro" → *Target:* "Apple Vision Pro" (use   between each word)
      
      - **Non-Breaking Space Before '>' in UI Paths**: Use a non-breaking space before the '>' separator in UI navigation paths.
        - *Source:* "General > Accessibility" → *Target:* "General > Accesibilidad" (use   before ">")
      
      - **No Non-Breaking Spaces Around '+' in Keyboard Shortcuts**: Do not use non-breaking spaces around the '+' sign in keyboard shortcuts.
        - *Source:* "Command + C" → *Target:* "Comando + C" (regular spaces around "+")
      
      - **Translate Characters Used as Words**: The English character '#' must be replaced with “N.º” if context indicates a reference to numbers.
        - *Source:* "#23" → *Target:* "N.º 23"
      
      - **Non-Breaking Hyphen for Mid-Word Hyphens**: Use non-breaking hyphens for mid-word hyphens (like Wi‑Fi) to prevent line breaks. Do not use non-breaking hyphens when translating language codes (snk-Latn).
        - *Source:* "Wi-Fi" → *Target:* "Wi‑Fi"
      
      ## Interface Elements
      
      - **Keyboard Shortcuts — Use '+' Not Hyphen**: Use a '+' with spaces on both sides (Key1 + Key2) when translating keyboard shortcuts. When a key name appears mid-sentence, capitalize the first letter.
        - *Source:* "Command-C" → *Target:* "Comando + C"
        - *Source:* "Hold the option key while dragging" → *Target:* "Mantén pulsada la tecla Opción al arrastrar"
      
      - **Buttons and Interactive Elements — Use Infinitive**: Use the infinitive form for buttons, checkboxes, action links, switches, menu items, commands, and tooltips.
        - *Source:* "Delete" → *Target:* "Eliminar"
      
      - **Instructional Sentences and Titles — Use Imperative**: Use the imperative form for instructional sentences and titles that tell the user to perform an action.
        - *Source:* "Select a file to continue." → *Target:* "Selecciona un archivo para continuar."
      
      - **Tabs, Panels, and Menu Titles — Use Nouns When Possible**: Use nouns and not verbs for tabs, panels, and menu titles.
        - *Source:* "Printing" → *Target:* "Impresión"
      
      - **Menu Names — Use Noun Form**: Use nouns and not verbs to translate menu names.
        - *Source:* "Edit menu" → *Target:* "menú Edición"
      
      - **Periods Only for Complete Sentences — Not for Titles or Labels**: Titles do not end with a period.
        - *Source:* "Select a photo" → *Target:* "Selecciona una foto"
      
      - **Mode Names — Descriptive Style Preferred**: Translate mode names descriptively when possible (modo oscuro, modo privado). If a descriptive translation is not possible, only capitalize the first letter and enclose names with two or more words in quotation marks.
        - *Source:* "dark mode" → *Target:* "modo oscuro"
        - *Source:* "Do Not Disturb mode" → *Target:* "modo \u201CNo molestar\u201D"
        - *Source:* "Lost Mode" → *Target:* "modo Perdido"
      
      - **Undo Strings — Lowercase Noun Phrases**: Undo action strings are lowercased noun phrases so they read naturally when composed into an "Undo %@"-style container.
        - *Source:* "Undo Adjust Saturation" → *Target:* "Deshacer ajuste de la saturación"
      
      - **Drop-Down Menus — Capitalization Depends on Context**: If the content before a drop-down menu is a title (with or without a colon), capitalize the first letter of each option. If the drop-down is integrated within a sentence with hard-coded text before and after, use lowercase.
        - *Source:* "Select an option: / Option 1" → *Target:* "Selecciona una opción: / Opción 1"
      
      ## Measurements
      
      - **Do Not Convert Units — Keep Same as English**: Do not convert units except when the English measurement is illustrative. Unit symbols are lowercase, have no periods, and no plural forms.
        - *Source:* "Your device needs to be within 30 feet of your computer." → *Target:* "El dispositivo debe estar en un radio de 9 metros con respecto al ordenador."
      
      ## Trademarks And Product Names
      
      - **Hardware Articles (Masculine)**: Hardware terms take a gendered article matching the implicit noun (e.g., el reproductor → el iPod).
        - *Source:* "the iPod" → *Target:* "el iPod"
      
      - **Hardware Articles (Feminine)**: Hardware terms take a gendered article matching the implicit noun (e.g., la barra → la Touch Bar).
        - *Source:* "the Touch Bar" → *Target:* "la Touch Bar"
      
      - **Software Articles**: Most software terms do not take an article, with exceptions like 'el Finder', 'el Dock', and 'el Dashboard'.
        - *Source:* "Open Finder" → *Target:* "Abre el Finder"
      
      - **Store Articles**: The Stores (iTunes Store, App Store) are feminine but should not be preceded by an article.
        - *Source:* "Sign in to iTunes Store." → *Target:* "Inicia sesión en iTunes Store."
      
      - **Pluralization (With 's')**: Do not add a plural 's' to trademark names unless the product takes it natively (e.g., los AirPods, los AirTags).
        - *Source:* "AirTags" → *Target:* "los AirTags"
      
      - **Pluralization (Without 's')**: Do not add a plural 's' to trademark names unless the product takes it natively (e.g., los iPhone, los iPad).
        - *Source:* "the iPhones" → *Target:* "los iPhone"
      
      - **'y' Never Becomes 'e' Before Lowercase 'i' Product Names**: When a product name starts with a lowercase 'i' followed by a capital letter (iPad, iTunes) and is preceded by the conjunction 'y', do not change 'y' to 'e'.
        - *Source:* "music and iTunes" → *Target:* "música y iTunes"
        - *Source:* "tablets and iPad" → *Target:* "tabletas y iPad"
      
      ## URL Localization
      
      - **Localize Only Example/Demonstrative URLs**: Only localize URLs that are used as examples or are demonstrative. Never translate real URLs. When an illustrative URL is translated, apply the change to both the visible text and the underlying link.
        - *Source:* "example.com/folder" → *Target:* "example.com/carpeta"
        - *Source:* "name@example.com" → *Target:* "nombre@example.com"
      
      ## File And Path Names
      
      - **Localize File Names**: Sample file names should be localized.
        - *Source:* "MyImage.jpg" → *Target:* "Mi_imagen.jpg"
      
      - **Localize Path Names**: If the source contains path names, localize those parts of the path that are translated on the target system.
        - *Source:* "Current file will be renamed to \u201C/Library/Preferences/edu.mit.Kerberos.pre-Active Directory\u201D" → *Target:* "El archivo actual pasará a llamarse \u201C/Biblioteca/Preferences/edu.mit.Kerberos.pre-Active Directory\u201D"
      
      ## Phone Numbers
      
      - **Localize Phone Numbers**: Phone numbers are divided into groups of three digits, separated by a space. Spain regional prefixes are not written in parentheses.
        - *Source:* "Call 923233322" → *Target:* "Llama al 923 233 322"
      
      ## Sorting Order
      
      - **Sort Alphabetically Equivalent Words**: When two alphabetically equivalent words are present, one accented and the other unaccented, the unaccented word precedes the accented one.
        - *Source:* "aria / ártico / asno" → *Target:* "aria / ártico / asno"
      
      ## Inches
      
      - **Use the Double Prime for Inches**: For inches use the double prime (″ (\u2033)) rather than the quotation mark symbol.
        - *Source:* "2\u201D" → *Target:* "2\u2033"
      
    • styleguide_fi.md 15.6 KB
      # Finnish (fi) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart-Casual, Reader-Centered Tone**: The general tone for Finnish Apple content is 'smart but casual' — closer to formal than informal, but never stiff or trendy. The translation must read as natural Finnish and never feel like a translated text. Avoid jargon and overly colloquial language; prefer neutral, descriptive phrasing.
        - *Source:* "Start by typing a search term or web address in the Smart Search field - it knows the difference and will send you to the right place." → *Target:* "Kirjoita ensin hakusana tai verkko-osoite älykkääseen hakukenttään. Se tunnistaa eron ja lähettää sinut oikeaan paikkaan."
      
      ## Grammar
      
      - **Use Active and Passive Structures for Variety; Never Use 1st Person for System Actions**: Alternate between active and passive sentence structures to create natural variation. For progress notifications and inanimate system actions, always use the impersonal passive — never translate as if the device is speaking in the first person.
        - *Source:* "Loading library…" → *Target:* "Ladataan kirjastoa… (not Lataan kirjastoa…)"
      
      - **Simplify 'Are You Sure' Confirmation Strings**: Translate 'Are you sure you want to…' constructions into a direct, shorter Finnish form using the passive or a plain question. This sounds more natural and is considerably shorter. Use the English-modeled form only for second-level confirmation dialogs.
        - *Source:* "Are you sure you want to end navigation?" → *Target:* "Lopetetaanko navigointi?"
      
      - **Finnish Word Order: Subject–Verb–Object**: Follow Finnish SVO word order. Avoid translating English 'do X using Y' constructions literally — use an instrumental case instead, which is the natural Finnish structure.
        - *Source:* "Browse the list using the arrow keys." → *Target:* "Selaa luetteloa nuolinäppäimillä. (not Selaa luetteloa käyttämällä nuolinäppäimiä.)"
      
      - **Avoid Non-Finite Clauses Except for Very Short Phrases**: Prefer subordinate clauses over non-finite clause constructions (lauseenvastike) as they are clearer and easier to read. Use non-finite forms only for very short (1–2 word) subordinate equivalents where they are idiomatic.
        - *Source:* "Unlock after startup so you can use the device." → *Target:* "Avaa lukitus käynnistyksen jälkeen, jotta voit käyttää laitetta."
        - *Source:* "if needed" → *Target:* "tarvittaessa (non-finite short form is fine here)"
      
      ## Punctuation
      
      - **No Full Stops in Finnish Titles**: Finnish does not use a full stop at the end of titles and headings, even when the English source does. Always remove trailing periods from translated titles.
        - *Source:* "Downloading Apps to Your Mac." → *Target:* "Appien lataaminen Maciin"
      
      - **Comma Rules for Conjunctions and Subordinate Clauses**: Finnish requires commas before co-ordinate conjunctions between independent clauses, before relative clauses, before reported clauses, and before subordinate conjunction clauses. These are the most common translation errors — review Finnish comma rules regularly.
        - *Source:* "Check if there is space on the disk." → *Target:* "Tarkista, onko levyllä tilaa."
      
      - **Whitespace**: No whitespace before punctuation.
        - *Source:* "Go for it!" → *Target:* "Anna palaa!"
      
      - **Ellipsis**: Use single character ellipsis, not three periods.
        - *Source:* "..." → *Target:* "…"
      
      - **Hyphens**: Use hyphens (-) for hyphenation or compounding words or parts of words, e.g. when compounding foreign words.
        - *Source:* "Ethernet Cable" → *Target:* "Ethernet-kaapeli"
      
      - **En-dash for ranges**: Use en-dash (–) to indicate a range of values.
        - *Source:* "The meeting time is 6-8 pm." → *Target:* "Kokous järjestetään klo 18.00–20.00."
      
      - **En-dash replacing em-dash**: Replace the em-dashes in the source as en-dashes in the target, making sure it is preceded and followed by a whitespace.
        - *Source:* "This option is available only if the document uses the same color space as the printer—for example, when printing an RGB document on an RGB printer." → *Target:* "Tämä vaihtoehto on käytettävissä vain, jos dokumentti käyttää samaa väriavaruutta kuin tulostin – esimerkiksi, jos tulostat RGB-dokumentin RGB-tulostimella."
      
      - **Punctuation within quotes**: If a punctuation character is a part of a quote, it should be put inside the quotation mark, even if the source text places it after the quotation mark.
        - *Source:* "\u201CThis is a quote\u201D." → *Target:* "\u201CTämä on lainaus.\u201D"
      
      - **Punctuation within parenthesis**: A full sentence within a parenthesis should have the full stop before the right parenthesis.
        - *Source:* "(This is a complete sentence)." → *Target:* "(Tämä on kokonainen lause.)"
      
      - **Acronyms in compound words**: If an acronym is a part of a compound, a hyphen is used.
        - *Source:* "USB printer" → *Target:* "USB-tulostin"
      
      - **List format**: In a list of three or more items, do not use a comma before the final "and" or "tai".
        - *Source:* "%1$@, %2$@, and %3$ld others" → *Target:* "%1$@, %2$@ ja %3$ld muuta"
      
      - **Minus sign**: Use en dash as the minus sign.
        - *Source:* "The value is -10" → *Target:* "The value is –10"
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software; Use Full Words**: Do not abbreviate words in software translations unless every other option has been exhausted. Instead of abbreviating, try rewording to make the string shorter. In general, prefer full words over abbreviations.
        - *Source:* "Restart (too long)" → *Target:* "If 'Käynnistä uudelleen' does not fit, remove 'uudelleen': 'Käynnistä'"
      
      ## Trademarks And Product Names
      
      - **Inflect Apple Product Names Using Written Vowel Harmony**: Apply Finnish vowel harmony based on how the product name is written, not how it is pronounced. Inflect directly without a colon for names pronounced as words.
        - *Source:* "from GarageBand" → *Target:* "GarageBandista"
        - *Source:* "with AirPlay" → *Target:* "AirPlaylla"
      
      - **Drop 'Apple' from App Names When Referring to the App, Keep It for Services**: When 'Apple Music', 'Apple Health', 'Apple Podcasts', etc. refer to the app, drop 'Apple' and use only the Finnish app name (Musiikki, Terveys, Podcastit, Sää). When referring to the service, keep the full English name.
        - *Source:* "Open Apple Music to start listening." → *Target:* "Avaa Musiikki ja aloita kuuntelu."
        - *Source:* "Subscribe to Apple Music." → *Target:* "Tilaa Apple Music."
      
      ## Interface Elements
      
      - **Commands Use Imperative; Menu Names Prefer Verb Form; Titles Use Nouns**: Menu command items must use the 2nd person singular imperative (Lataa, Avaa, Sulje). Menu names prefer verb forms (Näytä, Lisää) though nouns are also used. Window and dialog titles sound better with nouns. Keyboard key names are written in lowercase as compound words.
        - *Source:* "File (menu name)" → *Target:* "Arkisto"
        - *Source:* "Download (command)" → *Target:* "Lataa"
        - *Source:* "esc and control keys" → *Target:* "esc- ja control-näppäimet"
      
      ## Date And Time
      
      - **Follow Finnish System Standard for Date and Time Formats**: Use the Finnish system standard for date and time as shown in System Settings. Duration is formatted with a full stop as separator (e.g. 0.15.25,05 for 0 hours, 15 minutes, 25 seconds, and 5 hundredths).
        - *Source:* "0:15:25.05" → *Target:* "0.15.25,05"
      
      ## Measurements
      
      - **Do Not Convert Measurements; Use Number + Space + Unit**: Do not convert imperial measurements to metric. Always format measurements as number + space + unit. The degree sign is written without a space when used alone (10°) but with a space when combined with a scale letter (+20 °C).
        - *Source:* "27-inch iMac" → *Target:* "27 tuuman iMac"
        - *Source:* "+20°C" → *Target:* "+20 °C"
        - *Source:* "5°" → *Target:* "5°"
      
      ## Names And Addresses
      
      - **Use Finnish Placeholder Names and Address Format**: Replace English placeholder names with locally-appropriate Finnish names; keep John Appleseed in English as an exception. Use Finnish postal address conventions for sample addresses. Example format: `Kauppakatu 5 C 24, 99999 Jokukylä`.
      
      ## Variables
      
      - **Keep Variables Intact; Use Nominative or Dummy Objects for Unknown Variables**: Preserve all variables exactly as they appear in the source. If the grammatical case of a variable's referent is unknown, translate so that the variable stands in nominative. Use a dummy object such as 'kohde' as a fallback, or reorder variables using positional notation (1$, 2$, etc.).
        - *Source:* "%@ cannot be downloaded." → *Target:* "%@ ei ole ladattavissa."
        - *Source:* "%@ Ratings for Version %@" → *Target:* "Versiolla %2$@ on %1$@ arviota."
      
      ## General
      
      - **Currency**: Place currency symbols after the number, separated by whitespace.
        - *Source:* "USD 00,000.00" → *Target:* "00.000,00 USD"
      
      - **Forms of address**: When English uses the word "Dear" at the start of letters or messages, use "Hei" instead. In very formal texts, "Hyvä" may be used. Omit the comma in the end of salutations.
        - *Source:* "Dear Lisa," → *Target:* "Hei Liisa"
      
      - **Apps**: Software applications are called "appi" (inflects like nappi) in Finnish, not "sovellus", "ohjelma" or "applikaatio".
        - *Source:* "All third-party apps must explain why they are requesting access to your Health app data." → *Target:* "Kaikkien muiden valmistajien appien on kerrottava, miksi ne pyytävät Terveys-apin tietojen käyttöoikeutta."
      
      - **Use of your**: For devices, do not translate the word "your".
        - *Source:* "Turn off your iPhone" → *Target:* "Sammuta iPhone"
      
      - **List format**: In a list of items, if one or more of the items contains the word "and", the last item in the list should be preceded by "sekä" instead of "ja".
        - *Source:* "Location Data, Security and Privacy, and Settings" → *Target:* "Sijaintitiedot, Tietosuoja ja suojaus sekä Asetukset"
      
      - **Time**: Use the 24 hour clock for time format. Use a full stop as a separator. If a 12 hour clock must be used, use "ap." for "AM" and "ip." for "PM".
        - *Source:* "7:30 pm" → *Target:* "19.30"
      
      - **Choice of word - generate**: To clarify and maintain distinction between "create", "generate" and "produce", translate the verb "generate" with the verb "generoida".
        - *Source:* "The generated files may contain some of your personal information" → *Target:* "Generoidut tiedostot voivat sisältää henkilökohtaisia tietojasi,"
      
      - **Choice of word - create**: Translate the verb "create" with the verb "luoda".
        - *Source:* "Turn on Apple Intelligence to create images in Genmoji." → *Target:* "Laita Apple Intelligence päälle, jotta voit luoda kuvia Genmojeissa."
      
      - **Choice of word - produce**: Translate the verb "produce" with the verb "tuottaa".
        - *Source:* "Sunlight also helps the body produce Vitamin D" → *Target:* "Auringonvalo auttaa myös kehoa tuottamaan D-vitamiinia"
      
      - **Conditional mood**: Do not use conditional mood in your translation when English uses it. Use indicative mood instead.
        - *Source:* "Would you like to respond?" → *Target:* "Haluatko vastata?"
      
      - **Translation of for**: In cases where "for" acts as a possessive in English, it should not be translated in allative case, but as genitive.
        - *Source:* "Open the Reset Privacy Identifier setting for Stocks." → *Target:* "Avaa Pörssi-apin Nollaa tietosuojatunniste -asetus."
      
      ## Cultural Adaptation
      
      - **Loan words**: Prioritize using Finnish words and expressions.
        - *Source:* "Clear Project Render Cache?" → *Target:* "Tyhjennetäänkö projektin mallinnusvälimuisti?"
      
      - **Politeness**: Avoid translating and including "Please" or similar polite imperatives from the source text. It is rarely used or needed in Finnish.
        - *Source:* "Please activate the account in Settings" → *Target:* "Aktivoi tili Asetuksissa"
      
      - **Formality**: Always address the user with "sinä" (+inflections).
        - *Source:* "Adding this accessory to Find My requires you to be signed in to your Apple Account." → *Target:* "Sinun on oltava kirjautuneena Apple-tilille, jos haluat lisätä tämän lisälaitteen Etsi-appiin."
      
      - **Use of agent structures**: Do not translate "xxx was performed/done by yyy" using the agent structure "toimesta".
        - *Source:* "The live video and uploaded media are sent end-to-end encrypted and cannot be viewed or accessed by Apple." → *Target:* "Livevideo ja lähetetty media lähetetään päästä päähän salatussa muodossa eikä Apple voi tarkastella eikä käyttää niitä."
      
      - **Gender neutrality**: Use gender-neutral terms e.g. for professions.
        - *Source:* "Firefighter" → *Target:* "Pelastaja"
        - *Source:* "Lawyer" → *Target:* "Juristi"
      
      - **Place names**: Use Finnish names for places and locations. When there are no commonly used Finnish translations, leave names of places untranslated.
        - *Source:* "Stockholm" → *Target:* "Tukholma"
      
      - **Brand names and product names**: Leave names of brands and products untranslated.
        - *Source:* "Return items to Costco" → *Target:* "Palauta tuotteet Costcoon"
      
      - **Translation of acronyms**: Acronyms are usually not translated unless there is an official Finnish acronym, e.g. YK for UN.
        - *Source:* "Air Quality Index (AQI)" → *Target:* "Ilmanlaatuindeksi (AQI)"
      
      ## Orthography
      
      - **Capitalization in headings**: Do not capitalize every word in headings, titles, feature names or setting names, even if the source text does.
        - *Source:* "Track a Workout with Heart Rate" → *Target:* "Seuraa treeniä ja sykettä"
      
      - **Capitalization of common nouns**: Do not use capital letter within sentences for: days of the week, months, currencies, nationalities, languages, professions, holidays.
        - *Source:* "Create a meeting on Monday" → *Target:* "Luo tapaaminen maanantaille"
      
      - **Lowercase product names**: If a product name starts with a lowercase letter, do not capitalise them even if they start a sentence.
        - *Source:* "iPhone can help during an Emergency" → *Target:* "iPhone voi auttaa hätätilanteessa"
      
      - **Numbers**: Follow the source text if numerals should be written out as words or as digits.
        - *Source:* "You hit all three of your goals and the day is still young." → *Target:* "Saavutit kaikki kolme tavoitettasi, ja päivä on vielä nuori."
      
      - **Thousand separator**: Use hard whitespace as thousand separator.
        - *Source:* "2000 Meditations" → *Target:* "2 000 meditointia"
      
      - **Decimal separator**: Use comma as a separator for decimal numbers.
        - *Source:* "2.5 cm" → *Target:* "2,5 cm"
      
      - **Software version numbers**: Although commas normally should be used as the separator for decimals, periods are instead used for software versions.
        - *Source:* "version 2.5" → *Target:* "versio 2.5"
      
      - **Unit symbols**: All symbols should be preceded by a hard whitespace.
        - *Source:* "50%" → *Target:* "50 %"
      
      - **Date format**: Use the Finnish standard date format, d.M.yyyy.
        - *Source:* "7/13/2025" → *Target:* "13.7.2025"
      
      - **Quotation marks**: Use double curly quote marks “ (\u201C) and ” (\u201D) on both sides of a quoted word or sentence.
        - *Source:* "%@ matching \u2019${account}\u2019." → *Target:* "%@ vastaa tiliä \u201C${account}\u201D."
      
      - **Ampersand character**: Use the word "ja" instead of the character &.
        - *Source:* "Privacy & Security" → *Target:* "Tietosuoja ja suojaus"
      
      - **Multiplication sign**: For sizes, the × character should be used between two numbers even if the source text writes an x. There should be a space before and after the × character.
        - *Source:* "38x45 cm" → *Target:* "38 × 45 cm"
      
      - **Inflected forms of acronyms**: Where the acronyms are pronounced letter by letter, a colon is used for inflected forms. The case ending is determined by the last letter.
        - *Source:* "Use USB Only" → *Target:* "Käytä vain USB:tä"
      
    • styleguide_fr-CA.md 9.8 KB
      # Canadian French (fr-CA) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The tone should be closer to formal than informal, but never stiff or academic. Keep a neutral, descriptive style. In Canadian French, the use of English words must be strictly avoided in written content even when they are commonly used orally.
        - *Source:* "Get started" → *Target:* "Premiers pas"
      
      ## Addressing Users
      
      - **Use Formal 'vous' Address**: Always address the user with the formal second-person plural 'vous'. Avoid gender-specific greetings such as Monsieur or Madame; if the gender is unknown, use 'Bonjour' or the user's name instead. Avoid overusing possessive pronouns.
        - *Source:* "Are you sure you want to delete this?" → *Target:* "Voulez-vous vraiment supprimer cet élément ?"
      
      - **Translate 'Please' as 'Veuillez'**: Do not translate 'please' as 's'il vous plaît'. Instead, use the imperative form of 'vouloir' — 'veuillez' — which is more natural and concise in Canadian French UI strings.
        - *Source:* "Please select a file to import" → *Target:* "Veuillez sélectionner le fichier à importer."
      
      ## Acronyms
      
      - **Check for Canadian French Equivalents of Acronyms**: Do not translate acronyms unless a recognized Canadian French equivalent exists. Some acronyms have standard French-Canadian counterparts that should be used.
        - *Source:* "PIN" → *Target:* "NIP"
      
      ## Date And Time
      
      - **Canadian French Date and Time Formats**: Use the short date format yyyy-MM-dd (e.g. 2023-02-25) and long format d MMMM yyyy (e.g. 5 février 2023). Times use a 24-hour clock; hours are never preceded by a leading zero, but minutes under 10 use a leading zero. The 'h' sign is preceded by a non-breaking space.
        - *Source:* "9:05 AM" → *Target:* "9 h 05"
        - *Source:* "February 5, 2023" → *Target:* "5 février 2023"
      
      ## Measurements
      
      - **Do Not Convert Measurements**: Do not convert imperial measurements to metric. Canada uses the metric system but do not apply conversions independently. Never use the double-quote symbol as an abbreviation for inches — use 'po' instead.
        - *Source:* "10 in." → *Target:* "10 po"
      
      ## Addresses
      
      - **Canadian Address Format**: Follow the Canadian address convention: Title/First Name/Last Name, then company, then house number followed by street type and name, then city (province) and postal code in A1A 1A1 format with a non-breaking space between the third and fourth characters. Example format: `904, rue Saint-Urbain, Montréal (Québec) H2Z 1K4`.
      
      ## Numerals
      
      - **Canadian French Number Formatting**: Use a non-breaking space as the thousands separator and a comma as the decimal separator. Numbers below twenty-one are generally written in words in non-technical contexts, but numerals are accepted in software strings due to space constraints and variables.
        - *Source:* "1,000,000 songs" → *Target:* "1 000 000 de chansons"
        - *Source:* "3.14" → *Target:* "3,14"
        - *Source:* ".5m" → *Target:* "0,5 m"
      
      ## Special Characters
      
      - **Translate Symbols Used as Words**: When '&' or '@' appear as words within a sentence, replace them with their French equivalents. Capital letters must carry the same accents as lowercase letters.
        - *Source:* "Black & white" → *Target:* "Noir et blanc"
        - *Source:* "State" → *Target:* "État (not: Etat)"
      
      ## Punctuation
      
      - **Use French Angle Quotation Marks with Non-Breaking Spaces**: Use « » (French guillemets) with a non-breaking space after the opening mark and before the closing mark. Use English double quotation marks “ (\u201C) and ” (\u201D) for nested quotes within guillemets, and English single quotes ‘ (\u2018) and ’ (\u2019) for a third level of nesting.
        - *Source:* "Select folder \u201Cxyz\u201D and delete it." → *Target:* "« Sélectionnez le dossier \u201Cxyz\u201D, puis supprimez-le. »"
      
      - **Non-Breaking Space Before Colon**: A colon must always be preceded by a non-breaking space. Do not capitalize the word following a colon unless it begins a complete quotation, follows a heading, or follows a label like 'Remarque' or 'Avertissement'.
        - *Source:* "Note: Do not turn off the device." → *Target:* "Remarque : N\u2019éteignez pas l\u2019appareil."
      
      - **No Space Before Question or Exclamation Mark**: Unlike French Universal, Canadian French does not use a space before the question mark or exclamation mark. The period, question mark, or exclamation mark goes inside the closing quotation mark when the full sentence is within quotes.
        - *Source:* "Are you sure?" → *Target:* "Confirmez-vous?"
      
      ## List Punctuation Scenarios
      
      - **List Punctuation Scenarios**: How a list is punctuated depends on whether the introductory sentence is complete and whether list items are verbal or non-verbal. Non-verbal items under a complete sentence end with no punctuation; verbal items each end with a period; items that complete an incomplete introductory sentence end with semicolons.
        - *Source:* "The app requires the following:
          the latest version of macOS
          a computer
          a printer" → *Target:* "L\u2019app XXX requiert ce qui suit :
          • la dernière version de macOS
          • un ordinateur Mac
          • une imprimante"
        - *Source:* "To reset your settings, follow these steps:
          Open System Settings.
          Click the button located in the top right.
          Reset your settings." → *Target:* "Pour réinitialiser vos réglages, procédez comme suit :
          Ouvrez l\u2019app Réglages système.
          Cliquez sur le bouton qui se trouve en haut à droite.
          Réinitialisez vos réglages."
        - *Source:* "The app requires:
          the latest version of macOS
          a computer
          a printer" → *Target:* "L\u2019app XXX requiert :
          • la dernière version de macOS;
          • un ordinateur Mac;
          • une imprimante."
      
      ## Grammar
      
      - **Use Imperative for Instructions to the User**: Instructions or prompts addressed directly to the user should use the imperative form. They should not end with a period.
        - *Source:* "Confirm with iPhone" → *Target:* "Confirmez sur l\u2019iPhone"
      
      - **Use Infinitive for Titles**: Titles should either use a substantive or the infinitive. They should never end with a period. Avoid using articles at the beginning of a title.
        - *Source:* "Enter your passcode" → *Target:* "Entrer le code"
        - *Source:* "Setup your Mac" → *Target:* "Configuration du Mac"
      
      - **Prefer 'ne + pas' Over 'ne' Alone**: Use the full negation 'ne + pas' rather than the literary 'ne' alone for clearer and more natural software strings.
        - *Source:* "The shortcut cannot be the same as an existing shortcut." → *Target:* "Le raccourci ne peut pas être identique à un raccourci existant."
      
      - **Capitalization in Canadian French**: Only the first word of a sentence and proper nouns are capitalized. Titles follow the same rule. References to UI options are treated as proper nouns and capitalized (first letter only). UI area names like 'centre de contrôle' are not capitalized in mid-sentence.
        - *Source:* "Access Settings and sign in with your Apple ID." → *Target:* "Accédez à l\u2019app Réglages et connectez-vous avec votre identifiant Apple."
      
      - **Spelling forms**: Use traditional forms for accents and verbs: words like "Événement" (not "Évènement"), words with an accent circonflexe like "Apparaître" (not "Apparaitre"), traditional accents in verbs like céder, and traditional spellings for -eler and -eter verbs. Use rectified (1990) forms only in proper names or quotations, hyphenations in complex numbers, simplified plurals for compound and borrowed words, and the invariable past participle of the verb laisser.
        - *Source:* "event" → *Target:* "Événement (not: Évènement)"
        - *Source:* "Two thousand twenty-six" → *Target:* "deux-mille-vingt-six (not: deux mille vingt-six)"
      
      ## Interface Elements
      
      - **Articles with Hardware vs. Software Names**: Always use a determiner before Apple hardware names (l'iPod, votre iPhone). Do not use an article before software names used as proper names. Always add 'l\u2019app' before the app name in full sentences to avoid ambiguity.
        - *Source:* "To open this link, open Messages on your iPhone." → *Target:* "Pour ouvrir ce lien, ouvrez l\u2019app Messages sur votre iPhone."
      
      ## Terminology
      
      - **Strictly Avoid Anglicisms**: English terms must be strictly avoided in Canadian French written content, even when widely used in everyday speech. Always use the established French-Canadian equivalent. This is a stronger requirement than in French Universal.
        - *Source:* "email" → *Target:* "courriel (not: e-mail)"
        - *Source:* "spam" → *Target:* "pourriel (not: spam)"
        - *Source:* "hub" → *Target:* "concentrateur (not: hub)"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language (Rédaction épicène)**: Prefer gender-neutral formulations whenever possible. Use collective nouns, neutral adjectives, and active voice to avoid gendered structures. Automatic Grammar Agreement can be used selectively for high-visibility strings to provide personalized gendered inflections.
        - *Source:* "customers" → *Target:* "la clientèle"
      
      - **Avoid Color-Based Connotations**: Do not use color terms to imply security levels, positive/negative value, or access permissions. Replace such terms with neutral functional vocabulary.
        - *Source:* "blacklist" → *Target:* "liste de refus"
        - *Source:* "whitelist" → *Target:* "liste d\u2019acceptation"
      
      ## Style
      
      - **Avoid using « Créer un nouveau »**: When translating "Create a new…", avoid adding « nouveau » (new) in the target.
        - *Source:* "Create a new file" → *Target:* "Créer un fichier (Button/title)
          Créez un fichier. (Description)"
      
      - **« Depuis » restricted to temporal use**: The preposition "depuis" without temporal value must be avoided. Use "à partir de" or "de" instead:
        - *Source:* "Download the app from the App store" → *Target:* "Téléchargez l\u2019app à partir de l\u2019App Store."
      
    • styleguide_fr.md 4.4 KB
      # French (fr) — Software String Localization Style Guide
      
      - **Formal address ("vous")**: Users are addressed with the formal "vous" (with singular agreement).
      
      - **Imperative vs. infinitive in UI**: Strings ending with a period use the imperative form ("Ouvrez le tableau de bord Internet."), while buttons, options, and strings without a period use the infinitive ("Acheter", "Continuer", "Réessayer"). Compulsory actions (like "Enter the code") use the imperative even without a period ("Saisissez le code"). Titles use the imperative but do not end with a period. As a rule, sentences with conjugated verbs should end with a period even if the source has none.
      
      - **Gender avoidance**: Avoid gendered words (adjectives in -é/-ée) wherever possible — e.g., rephrase "Êtes-vous sûr…" as "Voulez-vous vraiment…". When unavoidable, use masculine by default with neutral value ("Vous serez guidé tout au long des étapes…"). Never use parenthetical feminine: "guidé" not "guidé(e)".
      
      - **App names: no articles, no quotes, always capitalized**: App names are never preceded by an article, never enclosed in quotation marks, and always capitalized — "Ouvrez Utilitaire de disque" (not "Ouvrez l'Utilitaire de disque" or "Ouvrez « Utilitaire de disque »"), "Accédez à Réglages Système" (not "Accédez aux Réglages Système"). Exceptions: le Finder retains its article.
      
      - **Articles with hardware vs. software**: Hardware terms always take a determiner ("l’iPhone", "votre iPhone", "un iPhone"), while software/service names take none ("Ouvrir App Store…", "Cette fonctionnalité est disponible sur iOS."). "The App Store" → "l\u2019App Store" (store gets the article). Always use curly apostrophes in French — never straight apostrophes. Curly apostrophes and quotes are escaped. Use \u2019 for curly apostrophe.
      
      - **Quotation marks**: Use double angle quotes « » with non-breaking spaces inside ("« %@ »"). Multi-word feature names in sentences must be quoted ("Activer le mode « Ne pas déranger »"), but app names are never quoted ("Ajouter un code dans Mots de passe"). Nested quotes use English-style quotation marks “ (\u201C) and ” (\u201D) inside angle quotes: « Détecter \u201CDis Siri\u201D ».
      
      - **Prepositions "sur" vs. "dans"**: Use "sur" for platforms/services (sur Apple Music, sur iCloud, sur Apple Books) and "dans" for stores/containers (dans l'App Store, dans Photos iCloud). Use "sur" for OS versions ("sur iOS 26") but "sous" when combined with "appareil(s)" or "ordinateur(s)" booting an OS ("appareil ayant démarré sous iOS").
      
      - **Non-breaking spaces**: Required before double punctuation marks (? ; : !), inside angle quotes (« text »), in multi-word product names (Apple Watch, Touch ID — max 2 words linked), between numbers and units/currency symbols (3 km, 120 €), and before > in navigation paths (Réglages > Confidentialité).
      
      - **Capitalization**: Unlike English title case, only the first word is capitalized in multi-word menu items and feature names. Capital letters must be accentuated ("Éteindre" not "Eteindre"). Features and areas remain lowercased in sentences ("le centre de contrôle", "les données cellulaires") but are capitalized when used standalone as navigation labels ("Données cellulaires").
      
      - **Numerals**: Non-breaking space as thousands separator (5 000), comma as decimal separator (3,8 mètres). Unlike English, the leading zero is never dropped ("0,5 m" not ",5 m"). Trailing zeros can be dropped ("1,8 mm" not "1,800 mm"). Do not modify decimal points inside variables like "%.1f".
      
      - **Special characters**: "&" must be replaced by "et" and "@" by "à" when used as words in a phrase ("Nom et extension" not "Nom & extension"). Currency symbols go after the amount with a non-breaking space (120 €).
      
      - **Minutes abbreviation**: Use "min" for minutes (not "mn" or "m"). "m" can be confused with meters. E.g., "Il y a 10 min" not "Il y a 10 m".
      
      - **Possessive "de" for variables**: For possessive constructions with variables, prefer "iPhone de %@" over "%@'s iPhone". Reorder variables using positional markers ("%2$@ de %1$@") when syntactically needed.
      
      - **"Sorry" omission**: In error messages, "Sorry" should not be translated as "Désolé" — omit it entirely.
      
      - **App Intents**: Descriptions use third person with a period ("Ajoute une vidéo à une page."). Titles and summaries use infinitive without a period ("Appliquer un filtre"). No quotation marks except for multi-word entity value names.
      
    • styleguide_gu.md 22.1 KB
      # Gujarati (gu) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Gujarati uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting — not straight ASCII quotes.
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: Use a written colloquial style that balances spoken and written Gujarati — neither too conversational nor overly complex. Follow the register found in national newspapers like Gujarat Samachar and Sandesh. Avoid Sanskritized vocabulary unless it is in everyday use.
        - *Source:* "Sign in with your Apple account" → *Target:* "તમારા Apple અકાઉંટ દ્વારા સાઇન ઇન કરો"
      
      - **Prefer Gujarati Over English, but Prioritize Clarity**: Use native Gujarati terms when they are well-understood by urban and semi-urban speakers. If the Gujarati equivalent is archaic, artificial, or unfamiliar to the average reader, use a transliteration of the English term instead. The guiding principle is the reader's ease of understanding, not word origin.
        - *Source:* "Installation" → *Target:* "ઇંસ્ટૉલેશન" (transliteration preferred over an archaic Gujarati coinage)
      
      - **Do Not Translate “Please”**: Gujarati encodes politeness through formal verb endings (e.g., કરો). Do not add 'કૃપા કરીને' as a literal translation of the English word 'please'.
        - *Source:* "Please sign in with your Apple ID." → *Target:* "તમારા Apple ID દ્વારા સાઇન ઇન કરો."
      
      ## Addressing Users
      
      - **Use Honorific Second Person (તમે)**: Always address the user with the honorific pronoun તમે/તમને/તમારું and use the corresponding formal verb ending (e.g., કરો, આપો) rather than the informal forms (તું/કર). Gujarati encodes politeness through verb endings, so do not add 'કૃપા કરીને' as a literal translation of English 'please'.
        - *Source:* "To see menu text in your preferred language, change your iPhone language in Settings." → *Target:* "તમારી પસંદગીની ભાષામાં મેન્યૂ ટેક્સ્ટ જોવા માટે સેટિંગ્સમાં તમારી iPhone ભાષા બદલો."
      
      - **Same Formality for Adults and Minors**: In Gujarati and Indian convention, children are addressed with the same formal register as adults. Use તમે (not તું) and formal verb forms (કરો, not કર) regardless of whether the user is an adult or a child.
      
      ## Abbreviations
      
      - **Avoid Abbreviations; Use Gujarati Abbreviation Sign When Necessary**: Do not abbreviate strings in software unless rewording is not possible. When an abbreviation is unavoidable, use the Gujarati abbreviation sign (૰) after the first syllable of the abbreviated word.
        - *Source:* "Doctor" (abbreviated) → *Target:* "ડૉ૰"
      
      ## Acronyms
      
      - **Retain English Acronyms Unless a Common Gujarati Equivalent Exists**: Do not translate acronyms unless there is a widely used Gujarati equivalent. The bracketed expansion may be translated if it is a familiar phrase in Gujarati. Well-known Gujarati acronyms such as ઇસરો (ISRO) are written without the abbreviation sign.
        - *Source:* "HDR" (High Dynamic Range) → *Target:* "HDR" (retain as-is; translate expansion only if widely known)
      
      ## Date And Time
      
      - **Date and Time Format**: Use international numerals in hardcoded dates and times. The preferred date format is DD/MM/YYYY for long form and DD/MM/YY for short form. Do not use a comma between month and year. Use a colon (:) as the time separator with no surrounding spaces, and retain AM/PM in English following source capitalization.
        - *Source:* "March 17, 2022" → *Target:* "17 માર્ચ 2022"
        - *Source:* "7:15 AM" → *Target:* "7:15 AM"
      
      - **Month Short Forms**: Use specific short forms for months with the abbreviation sign: જાન૰, ફેબ૰, માર્ચ, એપ્રિલ, મે, જૂન, જુલાઈ, ઑગ૰, સપ્ટ૰, ઑક્ટ૰, નવ૰, ડિસ૰.
        - *Source:* "Jan / Feb / Oct" → *Target:* "જાન૰ / ફેબ૰ / ઑક્ટ૰"
      
      ## Measurements
      
      - **Do Not Convert Measurement Units**: Retain the original unit system from the English source — do not convert imperial to metric or vice versa. For electronics and computing units (GB, KB, 1080p, 5G), keep the unit in English. Add a space between the numeral and the unit, following the US source style.
        - *Source:* "8 GB" → *Target:* "8 GB"
      
      - **Localize Common Physical Units with Abbreviation Sign**: Common metric units like km, cm, kg, and mg are localized using Gujarati abbreviations with the abbreviation sign: કિ૰મી૰, સે૰મી૰, કિ૰ગ્રા૰, and મિ૰ગ્રા૰ respectively.
        - *Source:* "5 km" → *Target:* "5 કિ૰મી૰"
      
      ## Addresses
      
      - **Indian Address Format**: Format addresses in the standard Indian structure: Name, Building/Plot/Floor, Street/Road, Locality, City/Town, State – PIN Code. PIN codes are 6 digits with no spaces, written using international numerals. Addresses of locations outside India (e.g., Apple headquarters) should be left in English.
        - *Source:* "158-A, Lakshmi Society, Alkapuri, Vadodara, Gujarat 390007" → *Target:* "રમેશ કુમાર,
      158-A, લક્ષ્મી સોસાયટી
      અલકાપુરી
      વડોદરા, ગુજરાત- 390007"
      
      ## Numerals
      
      - **Use Indian Numbering System for Separators**: Apply the Indian numbering system for digit grouping (e.g., 10,00,000 rather than 1,000,000).
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 ગીત"
      
      - **Ordinal Numbers in Gujarati**: Spell out ordinal numbers using full Gujarati inflected forms. The forms agree with the grammatical gender and number of the noun they modify. Avoid the numeric shorthand style (1લો, 2જો) as it is not standard Gujarati.
        - *Source:* "First / Second / Third" → *Target:* "પહેલો/પહેલી/પહેલું · બીજો/બીજી/બીજું · ત્રીજો/ત્રીજી/ત્રીજું"
      
      ## Special Characters
      
      - **Anuswara Over Chandrabindu for Nasalization**: Gujarati uses anuswara (a dot above the character) to mark nasalization, not chandrabindu. Use the half consonant (pancham varna) instead of anuswara only in the specific cases where anuswara creates an ambiguous chandrabindu appearance, or when the sound ન/મ is followed by ય.
        - *Source:* "sample / content" → *Target:* "સૅમ્પલ / કૉન્ટેંટ" (not: સૅંપલ / કૉંટેંટ)
      
      - **Use Correct Vowels ઍ and ઑ for English Transliterations**: Use ઍ (near-open front unrounded) for the English short 'a' sound (as in 'app', 'flag') and ઑ (open back rounded) for the English short 'o' sound (as in 'install', 'ball'). These are distinct from the standard Gujarati vowels એ and ઓ and must be applied consistently in transliterated English words.
        - *Source:* "app / install / doctor / camera" → *Target:* "ઍપ / ઇંસ્ટૉલ / ડૉક્ટર / કૅમેરા"
      
      - **Transliterating Short and Long 'i'**: When transliterating English words, use the short 'i' matra (િ) for short 'i/e' sounds (e.g., Device -> ડિવાઇસ). Use the long 'i' matra (ી) for long 'i/ee' sounds (e.g., Sheet -> શીટ).
        - *Source:* "Device / Sheet" → *Target:* "ડિવાઇસ / શીટ"
      
      - **Transliterating Short and Long 'u'**: When transliterating English words, use the short 'u' matra (ુ) for short 'u' sounds (e.g., Account -> અકાઉંટ). Use the long 'u' matra (ૂ) for long 'u/oo' sounds (e.g., Tool -> ટૂલ).
        - *Source:* "Account / Tool" → *Target:* "અકાઉંટ / ટૂલ"
      
      - **Transliterating ‘Ja’, ‘Za’, and 'Fa' Sounds**: Map the English 'J' sound to 'જ'. Map the 'Z' sound to 'ઝ' (e.g., Noise -> નૉઇઝ). Map the 'F' sound to 'ફ' (e.g., San Francisco -> સાન ફ્રાંસિસ્કો). Do not use Nuqtas (subscript dots) for any of these sounds.
        - *Source:* "Noise / San Francisco" → *Target:* "નૉઇઝ / સાન ફ્રાંસિસ્કો"
      
      - **Transcribing English Plural Sounds**: Always prefer the singular form of English transliterations (e.g., devices, features). If you must transliterate a plural English word, transcribe the final sound phonetically: use 'સ' if it ends in an /s/ sound (e.g., Apps -> ઍપ્સ), and use 'ઝ' if it ends in a /z/ sound (e.g., News -> ન્યૂઝ).
        - *Source:* "Apps / News" → *Target:* "ઍપ્સ / ન્યૂઝ"
      
      ## Punctuation
      
      - **Space Before Colon to Avoid Confusion with Visarga**: Add a space before a colon (:) to prevent visual confusion with the Gujarati visarga (ઃ). This space should be omitted when the colon follows an English word or a number.
        - *Source:* "Settings:" → *Target:* "સેટિંગ્સ :"
      
      - **Use Curly Double Quotes for UI Feature Names**: Use curly double quotes “ (\u201C) and ” (\u201D) around UI feature or app names within a sentence when the name creates grammatical ambiguity — for example, when it changes the grammatical number or requires an oblique case form. Minimize the use of quotes wherever the sentence can flow naturally without them.
        - *Source:* "To add files into the folder, click Add button." → *Target:* "ફોલ્ડરમાં ફાઇલ ઉમેરવા માટે \u201Cઉમેરો\u201D બટન પર ક્લિક કરો."
      
      - **No Double Spaces**: Even if the English source uses double spaces between sentences, Gujarati must always use a single space after a period.
        - *Source:* "Sentence one.  Sentence two." → *Target:* "Sentence one. Sentence two."
      
      - **Terminal Punctuation Mirroring**: Do not add terminal punctuation (like a full stop) at the end of a string if it is not present in the English source. Mirror the source punctuation exactly.
        - *Source:* "A list to remove the places from" → *Target:* "સ્થળોને કાઢી નાખવા માટેની સૂચી"
      
      ## Grammar
      
      - **Attach Postpositions Directly to the Noun**: Postpositions in Gujarati must be written with no space between them and the noun they follow. A gap between a noun and its postposition is a grammatical error.
        - *Source:* "in Settings" → *Target:* "સેટિંગ્સમાં" (not: સેટિંગ્સ માં)
      
      - **Prefer Passive Voice When the Subject Is Absent**: Use the passive voice when the string contains an action but no explicit subject (e.g., standalone gerunds, or sentences where 'who is doing the action' cannot be determined from the string). This style produces more natural and unambiguous Gujarati.
        - *Source:* "updating…" → *Target:* "અપડેટ થઈ રહ્યું છે…"
        - *Source:* "Displays photos while locked." → *Target:* "લૉક થવા પર ફોટો બતાવવામાં આવશે."
      
      - **Instrumental 'With' (દ્વારા vs સાથે)**: When 'with' means 'using a device or tool' (e.g., 'Control with iPhone'), translate it using 'દ્વારા' (by/using). Do not use 'સાથે' (along with) or 'વડે'.
        - *Source:* "Control %@ with Your iPad" → *Target:* "તમારા iPad દ્વારા %@ને કંટ્રોલ કરો"
      
      - **Variable Subjects with Active Verbs**: If a variable represents a user name performing an action, use the passive voice (e.g., '%@ દ્વારા... ઉપયોગ કરવામાં આવ્યો') instead of the active voice ('%@ એ... ઉપયોગ કર્યો') to avoid grammatical errors when the name is resolved.
        - *Source:* "%1$@ used %2$@ for %3$@ over the past day." → *Target:* "%1$@ દ્વારા ગયા દિવસે %3$@ માટે %2$@નો ઉપયોગ કરવામાં આવ્યો."
      
      - **Directional Adverbs vs. Gendered Adjectives**: When referring to directions like 'right and left', use the adverbial forms 'જમણે' and 'ડાબે'. Do not use the feminine adjective forms 'જમણી' and 'ડાબી' unless modifying a specific feminine noun.
        - *Source:* "Slowly rotate your head right and left" → *Target:* "ધીમે ધીમે તમારું માથું જમણે અને ડાબે ફેરવો"
      
      - **Parallel Construction in Lists**: List items must match the flow of the source parent phrase and generally use the imperative form (કરો). Ensure parallel construction across all items in a list.
        - *Source:* "• Update your contact information" → *Target:* "• તમારા સંપર્ક સંબંધિત માહિતી અપડેટ કરો"
      
      - **Avoid Hanging Phrases**: Do not leave incomplete prepositional phrases in Gujarati. Translate the complete context or intent rather than doing a literal word-for-word translation that leaves a dangling postposition (not: ના માટે દરેક લાઇડને ચલાવો).
        - *Source:* "Play each slide for" → *Target:* "પ્રતિ સ્લાઇડ અંતરાલ"
        - *Source:* "Use Date from" → *Target:* "નીચેમાંથી એક તારીખ"
      
      - **Rule for Headings and subheadings**: Headings that begin with verb can be localized as imperative in Gujarati. Sub headings and topic titles that begin with verb can be localized in a manner of 'to do so and so'.
        - *Source:* "Personalize your iPhone" (heading) → *Target:* "તમારો iPhone પર્સનલાઇઝ કરો"
        - *Source:* "Adjust the volume" (subheading) → *Target:* "વૉલ્યૂમ ઍડજસ્ટ કરવા માટે"
      
      ## Interface Elements
      
      - **Avoid Double Pluralization**: Do not mark plural on a noun when plurality is already expressed by a preceding number or by verb agreement. Adding a Gujarati plural suffix (e.g., -ઓ) in addition to a numeric indicator creates redundant marking.
        - *Source:* "5 folders were deleted." → *Target:* "5 ફોલ્ડર ડિલીટ કરવામાં આવ્યાં હતાં." (not: 5 ફોલ્ડરો)
      
      - **Buttons Use Imperative Form with Helping Verb**: Translate button labels in the imperative (command) form and always include the appropriate helping verb (કરો, આપો, etc.) so the label functions as a verb phrase rather than a bare noun.
        - *Source:* "Edit / Cancel / Reply" → *Target:* "સંપાદિત કરો / રદ કરો / જવાબ આપો"
      
      - **App Names: Singular Proper Nouns**: Localized app names are treated as singular proper nouns even when the English name is plural. Exceptions are app names that are transliterated (Notes, Settings, Photos, Stocks remain plural in transliteration).
        - *Source:* "Reminders / Maps / Books" → *Target:* "રિમાઇન્ડર / નકશો / પુસ્તક"
      
      - **App and Category Names Default Singularization**: The default grammatical posture for app names and category labels in Gujarati is the uninflected (singular or number-neutral) base form. Drop the English plural marker ('s' or 'es') whether translating or transliterating.
        - *Source:* "Apps / Albums / Artists" → *Target:* "ઍપ / ઍલ્બમ / કલાકાર"
      
      - **Lexicalized Plurals for Specific Containers**: Retain the English plural marker ('s') in transliteration only when necessary to shift a single instance noun into a collective repository or system hub.
        - *Source:* "Photos / Notes / Settings" → *Target:* "ફોટોસ / નોટ્સ / સેટિંગ્સ"
      
      - **Native Pluralization for Human Relationships**: While inanimate objects and broad classes remain singular, nouns representing specific personal human relationships must use the native Gujarati plural suffix ('-ઓ') when acting as a category label.
        - *Source:* "Friends" → *Target:* "મિત્રો"
      
      - **Contextual Plurality Avoidance**: When a category label is used in a sentence as a common noun, apply double pluralization avoidance. If a number is present, keep the noun singular. If no number is present but plurality is needed, use a quantifying modifier (e.g., 'તમામ') instead of forcing an English '-s'.
        - *Source:* "Delete 5 folders" → *Target:* "5 ફોલ્ડર ડિલીટ કરો"
      
      - **Retain Frozen Plurals in Sentences**: When referring to a UI feature that is a frozen lexicalized plural (e.g., સેટિંગ્સ, ફોટોસ), it must retain its exact pluralized form in all sentence contexts. Do not strip the '-s' as it is part of the root's identity.
        - *Source:* "Open Settings to change your password." → *Target:* "તમારો પાસવર્ડ બદલવા માટે સેટિંગ્સ ખોલો."
      
      - **URL Tags with 'See'**: For strings commencing with the verb 'See' followed by a URL tag, place 'જુઓ :' at the start of the string followed by the tag to avoid unnatural verb repetition.
        - *Source:* "See <g>Customize controls</g>." → *Target:* "જુઓ : <g>કંટ્રોલ કસ્ટમાઇઝ કરો</g>."
      
      - **Callout Bar Formatting Exceptions**: Unlike standard buttons, formatting options in callout bars (Bold, Italic, Underline, Strikethrough) must be localized as nouns without helping verbs.
        - *Source:* "Bold / Italic / Underline" → *Target:* "બોલ્ડ / ઇટૅલિક / અંડરલાઇન"
      
      ## Spelling
      
      - **Transliteration Pronunciation Standard**: Sound out the English word based strictly on the Standard Oxford Dictionary of English (ODE) pronunciation when transliterating into Gujarati.
      
      - **Hyphenation in Transliterated Compounds**: Maintain hyphens in specific transliterated compound words as they appear in the source to maintain consistency in spoken and written aesthetics.
        - *Source:* "plug-in / check-in / pop-up" → *Target:* "પ્લગ-ઇન / ચેક-ઇન / પોપ-અપ"
      
      - **Transliteration Spelling Consistency**: Maintain consistent spelling for transliterated terms across the OS, strictly adhering to the approved glossary (e.g., use 'હેપ્ટિક્સ' for Haptics, not 'હૅપ્ટિક્સ').
        - *Source:* "Turn off Music Haptics." → *Target:* "સંગીત હેપ્ટિક્સ બંધ કરો."
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Variables must be kept exactly as they appear in the source. When Gujarati word order requires reordering, number all variables using the n$ indexing format (e.g., %1$@, %2$@) before rearranging. Never alter the variable format or remove a variable from the string.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%2$@ પર %3$@ રમીને %1$@ના કેટલા સ્કોર થયા તેમ તપાસો"
      
      - **Gender Agreement with Variables**: When a variable represents a person possessing another variable (e.g., a device), attach the correct gendered postposition (ના/ની/નું) directly to the first variable based on the gender of the second variable.
        - *Source:* "%@\u2019s %@" → *Target:* "%@ના/ની/નું %@"
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral Language and Fair Representation**: Prefer neuter or gender-neutral phrasing wherever possible. When referring to an unknown user, avoid defaulting to masculine forms by using plural phrasing or structuring sentences that are valid for all genders. Do not use terms that are violent, oppressive, or ableist, and avoid using color metaphors to convey positive or negative qualities.
        - *Source:* "You're becoming a world-building master!" → *Target:* "તમે વિશ્વ નિર્માણના ગુરૂ બની રહ્યાં છો."
      
      - **First-Person Gender Neutrality (Siri/AI)**: When an App or system refers to itself in the first person (e.g., 'I couldn't retrieve'), use a passive construction (e.g., 'મારાથી... કરી શકાયા નથી') to remain gender-neutral. Avoid masculine forms like 'હું... શક્યો'.
        - *Source:* "I couldn\u2019t retrieve the messages from this conversation." → *Target:* "મારાથી આ વાર્તાલાપમાંથી મેસેજ રિટ્રીવ કરી શકાયા નથી."
      
      - **Culturally Adapt Foreign Names to Gujarati Equivalents**: Culturally adapt foreign placeholder names (e.g., Danny, Anthony, Elena) to familiar Gujarati names (e.g., શિવમ, શુભમ, શનાયા) so they resonate with the target locale.
        - *Source:* "Dear Danny" → *Target:* "પ્રિય શિવમ"
      
      ## Terminology
      
      - **Exact Word Forms (App vs Application)**: Translate the exact word form used in the source. Do not abbreviate 'Application' to 'ઍપ'; use 'ઍપ્લિકેશન'. Use 'ઍપ' only when the source says 'App'.
        - *Source:* "Application Not Available" → *Target:* "ઍપ્લિકેશન ઉપલબ્ધ નથી"
      
      - **Established Feature Translation vs Transliteration**: Do not fall back to transliterating English feature names if a localized Gujarati term has been used in a previously-translated string.
        - *Source:* "Writing Tools" → *Target:* "લેખનશિલ્પી"
      
      - **Reuse Established Localized Terms**: Reuse the established Gujarati translations for features, apps, and UI elements as they appear in previously-translated strings (e.g., use 'ખોજી' for Find My, not 'શોધો').
        - *Source:* "Find My / Apple Intelligence" → *Target:* "ખોજી / Apple Intelligence"
      
      ## Formatting
      
      - **Preserve Line Breaks and Spacing**: Always maintain the exact line breaks (carriage returns) and spacing present in the English source string. Do not merge paragraphs into a single line.
        - *Source:* "Expressive Voices are powered by a new on-device model, currently available in developer preview.
      Certain Apple Intelligence features..." → *Target:* "એક્સપ્રેસિવ વૉઇસ નવા ઑન-ડિવાઇસ મૉડલ દ્વારા સંચાલિત છે જે હાલમાં ડેવલપર પ્રિવ્યૂમાં ઉપલબ્ધ છે.
      Apple Intelligenceના અમુક ફીચર..."
      
    • styleguide_he.md 10.7 KB
      # Hebrew (he) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: The tone should be closer to formal than informal, but never stiff or stilted. Avoid trendy slang and maintain a neutral, descriptive style. Strive for translations that sound as if they were originally written in Hebrew, not translated from English.
      
      - **Prefer Native Hebrew Terms**: Use native Hebrew vocabulary as much as possible, unless the term is unnatural or foreign to typical users. There is no one-to-one mapping between English and Hebrew; choose the most natural Hebrew equivalent used by a similar audience rather than a more literal but uncommon option.
        - *Source:* "load / retrieve" → *Target:* "לטעון (for both — לאחזר is too uncommon)"
        - *Source:* "program / software" → *Target:* "תוכנה (for both — תוכנית is rarely used in this context)"
      
      ## Addressing Users
      
      - **Use Gender-Neutral Forms When Addressing the User**: Because it is often ambiguous whether a string addresses the user or instructs the device, and because Hebrew grammatical gender is pervasive, default to gender-neutral constructions. Preferred strategies include present-tense participle verbs, second-person past-tense homographs, modal forms (באפשרותך, ניתן, יש ל-), and gerunds. Avoid hybrid slash forms (י/הקש) as they are not truly inclusive and are not read correctly by VoiceOver.
        - *Source:* "Save" → *Target:* "שמירה (gerund) or לשמור באפשרותך (modal)"
      
      ## Abbreviations
      
      - **Avoid Abbreviations; Reword Instead**: Abbreviations should be a last resort when a string is too long. Preferred fixes are rewording the translation for conciseness or filing a localizability bug. When abbreviation is unavoidable, use the geresh (׳) as the standard abbreviation marker, as is conventional in Hebrew writing.
        - *Source:* "by / number (abbreviated)" → *Target:* "ע״י / מס׳"
      
      ## Acronyms
      
      - **Use Hebrew Equivalents for Acronyms When They Exist**: If a common Hebrew equivalent term exists for an English acronym, use it freely — there is no requirement to retain the English form unless it is on a DNT list provided by the user. When an acronym concept can be translated but has no Hebrew acronym counterpart, keep the English acronym; if the source pairs it with a spelled-out form, translate that form and place the translated term first, with the English acronym in parentheses (the opposite of the English order) — don't add an expansion the source doesn't have, or drop one it does.
        - *Source:* "RAM" → *Target:* "זיכרון"
        - *Source:* "HDR (High Dynamic Range)" → *Target:* "תחום דינמי רחב (HDR)"
      
      ## Date And Time
      
      - **Date Format and Range Orientation**: Use the period (.) as the date separator and place the day before the month. Do not use a leading zero for hours or day numbers. For date and time ranges, place the earlier value on the right side (per Hebrew right-to-left convention). Use an en-dash (–) rather than a hyphen for ranges, as it behaves better in bidirectional text.
        - *Source:* "9/13/2013–9/15/2013" → *Target:* "13.9.2013–15.9.2013"
      
      ## Measurements
      
      - **Do Not Convert Measurement Units**: Keep the unit system from the source; do not convert inches to centimeters or vice versa. Do not use the gershayim character (״) as an abbreviation for inches — it is reserved for abbreviations and quotations in Hebrew.
      
      ## Names And Addresses
      
      - **Use Israeli Sample Names and Realistic Address Mix**: Replace generic placeholders (John/Jane Doe) with ישראל/ישראלה ישראלי. When multiple sample names are needed, include a realistic mix that reflects Israel's diverse population — include minority names and names representing a range of genders. City names in sample addresses should be fictional.
        - *Source:* "John Doe / Jane Doe" → *Target:* "ישראל ישראלי / ישראלה ישראלי"
      
      ## Numerals
      
      - **Write 1 and 2 as Words; Handle Plural Forms Carefully**: In Hebrew, the numbers 1 and 2 are written as words when they count a noun. The word for '1' follows its noun; '2' and all higher numbers precede it.
        - *Source:* "1 book / 2 books / 30 days" → *Target:* "ספר אחד / שני ספרים / 30 ספרים"
      
      ## Grammar
      
      - **Always Use the Definite Article (ה-) in Hebrew**: Hebrew does not drop the definite article in short UI strings. Add the article where it is grammatically required. Note that in construct-state compounds, the definite article attaches to the last noun in the chain. Prefixed prepositions and articles before non-Hebrew words or numbers require a hyphen (non-breaking when possible) between the prefix and the word.
        - *Source:* "File not found" → *Target:* "הקובץ לא נמצא (not: קובץ לא נמצא)"
        - *Source:* "the iPhone" → *Target:* "ה-iPhone (hyphen, no spaces)"
      
      - **Gerunds for Menu and Command Names**: Menu names should be translated as nouns or gerunds (e.g., קובץ, שיתוף, הוספה). Command names inside menus or action buttons should also use gerund forms. Avoid infinitive-only forms, which can seem grammatically incomplete and create ambiguity about who is performing the action.
        - *Source:* "Edit (menu name)" → *Target:* "עריכה"
        - *Source:* "Print / Install" → *Target:* "הדפסה / התקנה"
      
      - **No Comma Before Final List Item**: Hebrew rarely uses a serial comma before the last item in a list. Omit the comma unless the list items are so long or syntactically complex that the comma is needed to delimit the final item clearly.
        - *Source:* "iPhone, iPad, iPod touch" → *Target:* "ה-iPhone, ה-iPad וה-iPod touch"
      
      - **Spell Out 'Your' Using Definite Article When Possible**: English uses possessives like 'your' where Hebrew often uses the definite article instead. Avoid translating 'your' as שלך unless extra emphasis on the user's ownership is necessary for the context.
        - *Source:* "Turn off your device" → *Target:* "יש לכבות את המכשיר (no need for שלך)"
      
      - **Use Plene (Fuller) Spelling**: The Hebrew Language Academy recommends the 'fuller' spelling (כתיב מלא) as it is easier to read and leaves less ambiguity. Adopt fuller spellings in all new translations.
        - *Source:* "was (female)" → *Target:* "הייתה (preferred over היתה)"
      
      ## Punctuation
      
      - **Use Geresh and Gershayim for Quotation Marks**: Hebrew uses exclusively the geresh (׳) for embedded quotations and the gershayim (״) for primary quotations and abbreviations. Do not use English curly quotes, straight quotes, or any other quotation characters. Punctuation marks (periods, commas) go outside the closing quotation mark in Hebrew.
        - *Source:* "Choose File > Quit." → *Target:* ".יש לבחור ״קובץ״ < ״סיום״"
      
      - **Hyphen vs. En-Dash: Connecting vs. Separating**: A hyphen (מקף) connects elements with no surrounding spaces (e.g., ה-iPhone, דו-משמעות). An en-dash (קו מפריד) separates syntactic units and requires spaces on both sides. Do not use the upper makaf — it is inaccessible on standard keyboards. Use non-breaking hyphens whenever the following element might wrap to a new line.
        - *Source:* "the 19th century / iPhone settings" → *Target:* "המאה ה-19 / הגדרות ה-iPhone"
      
      ## Interface Elements
      
      - **Device Type Names Must Be Definite; English App Names Are Not**: Hebrew device type names (iPhone, iPad, Apple Watch) in a possessive or modified context take the definite article via a hyphen prefix. English application names that are not translated do not take the definite article. Translated generic app names (Calculator, Camera) use regular nouns and are definite when required.
        - *Source:* "iPhone Settings / Finder Settings" → *Target:* "הגדרות ה-iPhone / הגדרות Finder"
      
      - **Wrap Translated App Names in Gershayim Within Sentences**: When a translated compound or specialized app name is mentioned within running text, enclose it in gershayim (״…״) to distinguish it from surrounding text — Hebrew has no capital letters to perform this function. Generic app names that directly describe the function (Calculator, Camera) do not require quotes.
        - *Source:* "Quit Calendar" → *Target:* "סיום ״לוח שנה״"
      
      - **Mirror Left/Right References for RTL UI**: Because Hebrew UI elements are mirrored for right-to-left display, occurrences of 'right' in source strings that describe on-screen position should generally be translated as 'left' and vice versa. Exercise discretion since not all UI surfaces are mirrored.
        - *Source:* "Swipe from the left" → *Target:* "החלקה מהצד הימני (mirrored to right)"
      
      ## Variables
      
      - **Spell Out One and Two variants in a Plural Structure**: Plural strings allow modifying numbering variables. For Hebrew, remove the number "one" and "two" in most cases, and instead write the numbers in words. When the string contains more than one variable, only the first variable is allowed to be removed. The remaining variables should be numbered.
        - *Source:* "Add %lu item to \u201C%@\u201D" → *Target:* "הוספת שני פריטים אל ״%2$@״"
      
      - **Reorder Variables Using Numbered Indices**: When Hebrew word order requires reordering, add n$ numbering to all variables (e.g., %1$@ %2$@) before rearranging. When a prefix such as ה- or a preposition precedes a variable that may receive a non-Hebrew value, insert a non-breaking hyphen between the prefix and the variable.
        - *Source:* "%@ reacted %@ to an audio message" → *Target:* "תגובה של %2$@ נוספה על ידי %1$@ להודעת שמע"
      
      ## General Advice
      
      - **Keep Translations Concise**: Hebrew speakers favor directness, and Hebrew translations are often significantly shorter than their English equivalents. Aim to convey meaning in as few words as possible while maintaining clarity. Double spaces used in English before a new sentence should be reduced to a single space in Hebrew.
      
      ## Diversity And Inclusion
      
      - **People-First Language for Disability**: When referring to people with disabilities, describe the person before the disability. Avoid noun forms that reduce a person to their disability (e.g., עיוורים). Use full phrases such as אנשים עם עיוורון or אנשים עם לקות ראייה instead.
        - *Source:* "the blind" → *Target:* "אנשים עם עיוורון או לקות ראייה"
      
      - **Use Diverse and Inclusive Example Names**: When sample names are required, include names representing a variety of ethnicities and genders found in Israel's diverse population. Prefer gender-neutral names (טל, אור) where appropriate, and include minority names alongside common ones. Ensure a mix of ages is represented.
        - *Source:* "John / Jane Doe (multiple names)" → *Target:* "Examples: דימה, מוחמד, פנטה, נביל, רבקה, מיה"
      
    • styleguide_hi.md 11.3 KB
      # Hindi (hi) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Hindi tone should feel natural and approachable — closer to formal than informal, but never stiff. Follow the written colloquial style used in respected national newspapers like Jansatta or Hindustan, which blend formal and spoken Hindi.
        - *Source:* "Update available. Tap to install." → *Target:* "अपडेट उपलब्ध है। इंस्टॉल करने के लिए टैप करें।"
      
      ## Addressing Users
      
      - **Use Formal Address (आप)**: Always address the user with आप (formal you) and use formal verb forms like करें. Never use informal forms like तुम, तू, करो, or कीजिए. This applies equally when addressing minors.
        - *Source:* "You can cancel" → *Target:* "आप रद्द कर सकते हैं"
        - *Source:* "Cancel" → *Target:* "रद्द करें"
      
      - **Third-Person Roles Use Singular Informal**: When translating common nouns describing roles (e.g. 'user', 'administrator') or indefinite pronouns like 'someone', use the informal singular form, not the formal plural.
        - *Source:* "Administrator can do this" → *Target:* "ऐडमिनिस्ट्रेटर कर सकता है"
        - *Source:* "Someone joined the note" → *Target:* "कोई नोट में शामिल हुआ"
      
      ## Grammar
      
      - **Avoid Translating English Articles as 'एक'**: Hindi has no articles, so English 'a' or 'an' should not be mechanically translated as एक (one). Only use एक when the meaning genuinely requires the numeral one.
        - *Source:* "Please take a cupcake" → *Target:* "कपकेक लें"
      
      - **Use Passive Voice When Subject Is Absent**: When a string has no explicit subject (i.e., you cannot answer 'who is doing this?'), use the passive voice. This covers gerunds, gerund + object, and status messages.
        - *Source:* "updating…" → *Target:* "अपडेट किया जा रहा है…"
        - *Source:* "Adding %@ Videos" → *Target:* "%@ वीडियो जोड़े जा रहे हैं"
        - *Source:* "Sharing from: %@" → *Target:* "इनसे शेयर किया जा रहा है : %@"
      
      - **Gender Neutrality in User-Facing Strings**: Strings that address an unspecified user should be kept gender-neutral where possible. Use constructions with ने or की ओर से instead of द्वारा to avoid forcing a gendered subject.
        - *Source:* "Apple will send you an email." → *Target:* "Apple की तरफ़ से एक ईमेल भेजा जाएगा।"
      
      - **Nuqta Usage**: Nuqta (a dot below certain consonants) must be used for loan words from Arabic, Persian, Urdu, and English where it is present in the source language, particularly to distinguish फ (pha) from फ़ (fa) and ज (ja) from ज़ (za). When in doubt, consult Rekhta Dictionary.
        - *Source:* "file" → *Target:* "फ़ाइल (not फाइल)"
        - *Source:* "sadness (Urdu: ग़म)" → *Target:* "ग़म (not गम)"
      
      - **Chandrabindu vs. Anuswara**: Chandrabindu should be used wherever it avoids ambiguity between homonyms and reflects the correct pronunciation. Do not substitute anuswara for chandrabindu when they carry different sounds.
        - *Source:* "Mother" → *Target:* "माँ (not मां)"
      
      - **Use of Anuswar over Panchamakshar**: Use of Anuswar is preferred over Panchamakshar
        - *Source:* "End" → *Target:* "अंत (not अन्त)"
      
      - **Pronouns: 'Your' and 'Our' in the Same String**: When 'you/your' appear together in one string, translate 'your' as अपने (not आपके). Similarly, when 'we/our' appear together, translate 'our' as अपने (not हमारे).
        - *Source:* "You can see more details in the Health app on your iPhone." → *Target:* "अपने iPhone पर सेहत ऐप में आप अधिक विवरण देख सकते हैं।"
      
      ## Terminology
      
      - **Prefer Colloquial Hindi Over Archaic Terms**: Choose words that are widely understood in everyday spoken and written Hindi rather than formal or archaic equivalents. Prefer तस्वीर over चित्र, नक़्शा over मानचित्र, and दोस्त over मित्र. The deciding factor is linguistic suitability and common usage, not word origin.
        - *Source:* "photo" → *Target:* "तस्वीर (preferred over चित्र)"
        - *Source:* "map" → *Target:* "नक़्शा (preferred over मानचित्र)"
      
      - **Transliterate Technical Jargon**: Technical and software terms that are widely known in English should be transliterated rather than awkwardly translated. If a Hindi equivalent exists but is archaic or unclear (e.g. कलन विधि for 'Algorithm'), use the transliteration instead.
        - *Source:* "Installation" → *Target:* "इंस्टॉलेशन"
        - *Source:* "Algorithm" → *Target:* "एल्गोरिदम (not कलन विधि)"
      
      - **Use British English as Transliteration Base**: When transliterating from English, prefer British or Indian English pronunciations over American English. Use Mobile instead of Cellular, Cycling instead of Biking. However, where American forms dominate in India (e.g. ATM, not Cashpoint), follow popular usage.
        - *Source:* "Cellular" → *Target:* "मोबाइल"
        - *Source:* "Elevator" → *Target:* "लिफ़्ट"
      
      ## Abbreviations
      
      - **Use Devanagari Abbreviation Sign (लाघव चिह्न)**: Hindi abbreviations use the Devanagari Abbreviation Sign (॰) after the first syllable of the abbreviated word. Technical file format abbreviations (PDF, DOC, RTF) should remain unlocalized. Country codes like US and UK take the form यू॰एस॰ and यू॰के॰.
        - *Source:* "US" → *Target:* "यू॰एस॰"
      
      ## Acronyms
      
      - **Do Not Translate Acronyms Unless Equivalent Exists**: Retain English acronyms (e.g. HDR, RAM) unless a well-known localized equivalent exists. Popular Hindi acronyms such as यूनेस्को, भाजपा, and इसरो are used without the Devanagari Abbreviation Sign.
        - *Source:* "HDR" → *Target:* "HDR"
        - *Source:* "UNESCO" → *Target:* "यूनेस्को"
      
      ## Date And Time
      
      - **Date and Time Formatting**: Use international numerals for hardcoded dates and times. Date format follows DD/MM/YYYY. Use a colon as the time separator with no surrounding spaces. 'am' translates as 'पू' and 'pm' as 'अ', both placed before the time with a space after them.
        - *Source:* "March 17, 2022" → *Target:* "17 मार्च 2022"
        - *Source:* "7:15 am" → *Target:* "पू 7:15"
        - *Source:* "7:15 pm" → *Target:* "अ 7:15"
      
      ## Numerals
      
      - **Indian Numbering System for Hardcoded Numbers**: Use international (Arabic) numerals, not Devanagari digits, for hardcoded numbers. Apply the Indian grouping system with commas: the first comma appears after three digits, then every two digits (e.g. 10,00,000 not 1,000,000).
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 गाने"
      
      - **Ordinal Numbers**: Write ordinal numbers 1st–9th as Hindi words (पहला, दूसरा … नवाँ). From 10th onwards, append वाँ to the numeral (10वाँ, 11वाँ).
        - *Source:* "1st" → *Target:* "पहला"
        - *Source:* "10th" → *Target:* "10वाँ"
      
      ## Punctuation
      
      - **Hindi Full Stop (पूर्ण विराम)**: Use the Hindi full stop । (poornaviram) to end sentences. Do not use it when the sentence ends with an English word, a number (to avoid confusion with the digit 1), or a URL.
        - *Source:* "Your file has been saved." → *Target:* "आपकी फ़ाइल सहेजी गई।"
      
      - **Space Before Colon**: Add a space before a colon to prevent visual confusion with the Hindi visarga (ः). Exception: omit the space when the colon follows an English word, a number, or a DNT term.
        - *Source:* "Average Depth: %@" → *Target:* "औसत गहराई : %@"
      
      - **Use Curly Quotes for UI Strings**: Always use curly double quotes “ (\u201C) and ” (\u201D) in UI strings, not straight quotes. Minimize their use overall — only employ them when a feature or functionality name would cause grammatical ambiguity in the sentence.
        - *Source:* "Say \u201C%@\u201D Again" → *Target:* "\u201C%@\u201D फिर से कहें"
      
      ## Interface Elements
      
      - **Button Names Use Imperative With Helping Verb**: Translate button names in the imperative form. Include a helping verb (करें, दें) when omitting it would make the translation ambiguous — for example, a Hindi or Urdu noun used as a button label needs a verb to signal the action.
        - *Source:* "Edit" → *Target:* "संपादित करें"
        - *Source:* "Reply" → *Target:* "जवाब दें"
      
      - **Callout bar item names**: Callout bar items are generally translated in the imperative form using both the primary and helping verb. However in some cases, where the translation is not ambiguous, and especially when the terms are widely used and understood in that specific context, you may decide to drop the helping verb.
        - *Source:* "Cut" → *Target:* "कट"
      
      - **Keyboard Keys Are Transliterated**: Keyboard key names should be transliterated into Devanagari. When a key name is followed by the word 'key', the combined form uses a hyphen (e.g. कमांड-की). US keyboard shortcuts (⌘N etc.) are copied as-is without localizing to Devanagari characters.
        - *Source:* "Command-keys" → *Target:* "कमांड-कीज़"
        - *Source:* "Fn" → *Target:* "फ़ंक्शन"
      
      ## Variables
      
      - **Reorder and Number Variables as Needed**: Variable order may be changed to fit natural Hindi sentence structure. When reordering variables that are not already numbered in the source, add positional numbers (e.g. %1$@, %2$@). Do not change the period to a comma inside numeric format variables like %.1f.
        - *Source:* "%@ payment to %@ will be canceled." → *Target:* "%2$@ को %1$@ का भुगतान रद्द कर दिया जाएगा।"
      
      ## Names And Addresses
      
      - **Use Caste-Neutral Indian Names**: Replace generic Western placeholder names (Jane Doe, John Doe) with common Indian names that are inclusive across religions, regions, and castes. Avoid surnames that reveal a specific caste or community.
        - *Source:* "Jane Doe" → *Target:* "प्रिया कुमारी"
        - *Source:* "John Doe" → *Target:* "साहिल कुमार"
      
      ## Diversity And Inclusion
      
      - **Avoid Caste and Religion Stereotypes**: Do not translate role-based or occupation-based terms using words that carry caste connotations. For example, translate 'Priest' as पुजारी. Avoid emoji translations that associate religious symbols exclusively with one community.
        - *Source:* "Priest" → *Target:* "पुजारी"
      
      - **People-First Language for Disability**: When referring to people with disabilities, describe the person first and the disability second. Avoid collective labels like 'the blind'; prefer 'people who are blind or have low vision'.
        - *Source:* "The blind" → *Target:* "दृष्टिहीन व्यक्ति or जिन लोगों को कम दिखाई देता है (not अँधा)"
      
    • styleguide_hr.md 10.2 KB
      # Croatian (hr) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Croatian uses curly double quotation marks „ (\u201E) as the opening mark and “ (\u201C) as the closing mark, and the curly apostrophe ’ (\u2019).
        - *Source:* "Open \u201C%@\u201D." → *Target:* "Otvori \u201E%@\u201C."
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The Croatian tone is smart but casual — closer to formal than informal, without being stiff or trendy. Avoid slang, colloquialisms, and second-person singular (Ti-form), which is too informal and region-specific. Assume the product is intended for all age groups and the entire country, unless otherwise stated in the instructions or user-input.
      
      - **Promotional and Onboarding Strings: Natural and Local**: Promotional, onboarding, and feature-description strings (paywalls, upgrade prompts, "What's New", feature highlights) should read as if originally written in Croatian. Capture the tone and intent of the source — be clear and concise without rigid formality. Rephrase awkward structures, but never omit key information.
      
      ## Addressing Users
      
      - **Use Formal Address**: Address the user with the formal second-person plural (the polite "Vi" register) — this uses the plural imperative verb form (kliknite, odaberite, unesite), not the terse singular command form (klikni, odaberi) and not the informal singular Ti-form. Write the pronoun as lowercase 'vi', not capitalized 'Vi'. Use informal address only when the source string's tone is distinctly casual, or when the developer's instructions call for an informal voice (e.g. a social or youth-oriented app).
        - *Source:* "Click Content at the top of the page." → *Target:* "Kliknite Sadržaj na vrhu stranice."
        - *Source:* "Tap Open" → *Target:* "Dodirnite Otvori" ("Dodirnite" addresses the user, so it takes the formal plural imperative, while "Open" is a command name that takes the singular imperative)
      
      ## Abbreviations
      
      - **Avoid Abbreviations; Follow Priority Order When Necessary**: Abbreviations hurt readability and should be avoided. When they are unavoidable, try alternatives in this order: shorter synonym, rephrasing, restructuring the sentence, requesting more space, then abbreviating as a last resort. Abbreviations should end with a period, except metric units (ml, kg). Never start a sentence with an abbreviation.
        - *Source:* "Diagnosing" → *Target:* "Dijagnoza" (shorter alternative)
      
      ## Acronyms
      
      - **Keep Acronyms in English Unless a Standard Croatian Form Exists**: Do not translate acronyms unless a widely recognized Croatian equivalent exists. Declined forms of acronyms follow Croatian case endings with a hyphen (PDV-a, SAD-a, NATO-a, PC-ju). Acronyms do not use periods between letters.
        - *Source:* "USA" → *Target:* "SAD-a" (genitive)
        - *Source:* "PC" → *Target:* "PC-ju" (dative)
      
      ## Date And Time
      
      - **Croatian Date and Time Formats**: Use dd. MMMM yyyy. for long format with the month name in genitive (e.g. 11. veljače 2014.). Short format is dd. MM. yyyy. Croatia uses a 24-hour clock with a colon separator (17:00). Day and month names are not capitalized.
        - *Source:* "February 11, 2014" → *Target:* "11. veljače 2014."
        - *Source:* "5:00 PM" → *Target:* "17:00"
      
      ## Measurements
      
      - **Do Not Convert Measurement Units**: Keep measurements in the units used in the source — do not convert inches to centimeters or miles to kilometers. Insert a space between a quantity and its unit.
        - *Source:* "Operating temperature: 32ºF to 122ºF (0ºC to 50ºC)" → *Target:* "Radna temperatura: 32 ºF do 122 ºF (0 ºC do 50 ºC)"
      
      ## Numerals
      
      - **Use Spaces as Thousands Separator**: For numbers larger than 9999, use a space between digit groups (10 000, 859 343 286). In financial contexts, a full stop may be used instead. The decimal separator is always a comma, not a full stop. Software version numbers always use a full stop (macOS verzija 10.9.1).
        - *Source:* "1,000,000 songs" → *Target:* "1 000 000 pjesama"
        - *Source:* "3.5" → *Target:* "3.5" (software version number) / "3,5" (regular number)
      
      ## Special Characters
      
      - **Croatian Diacritics and Accent on 'o'**: Always use Croatian special characters č, ž, š, ć, and đ. The accent ô on the letter o should be used to differentiate homonyms (e.g. kôd for 'code' only in the nominative, but not in other cases, e.g. "koda").
        - *Source:* "code" → *Target:* "kôd"
      
      ## Grammar
      
      - **Capitalization Differences from English**: Croatian capitalizes far less than English. Days, months, and language names are lowercase. Only the first word of institution names, street names, and titles is capitalized (unless a proper noun follows). All words in personal names are capitalized.
        - *Source:* "Monday, January, Croatian" → *Target:* "ponedjeljak, siječanj, hrvatski"
        - *Source:* "Maksimir Street" → *Target:* "Maksimirska ulica"
      
      - **Capitalize After a Colon in Lists**: When a colon introduces a bullet list, start each list item with a capital letter. This also applies to titled bullet items inside larger lists.
        - *Source:* "There are two types:" → *Target:* "Postoje dvije vrste:"
        - *Source:* "- Word processing: For text-heavy documents" → *Target:* "· Obrada teksta: Za dokumente koji sadrže uglavnom tekst"
      
      - **Hyphens vs. Dashes**: Use a hyphen (no spaces) in compound words and for adding declension suffixes to abbreviations. Use an en-dash with spaces for 'from–to' ranges, reported speech, and vertical enumeration.
        - *Source:* "2010–2012" → *Target:* "2010. – 2012."
        - *Source:* "Zagreb–Split motorway" → *Target:* "autocesta Zagreb – Split"
      
      - **Plural Handling in Software Strings**: Croatian has multiple plural forms that cannot be served by a single string. Where a plural-aware format is not available (e.g. when the formatter isn't numerical), restructure to place the count in parentheses or after a colon to avoid incorrect agreement (e.g. 'Fotografije: %@' or 'Slanje fotografija (%@) na odredište').
        - *Source:* "%@ photos" → *Target:* "Fotografije: %@"
        - *Source:* "Sending %@ photos to destination." → *Target:* "Slanje fotografija (%@) na odredište."
      
      - **Declension in Concatenated Strings**: Variables inserted at runtime must remain in the Nominative case to work across different host strings. Adjust the host string to accommodate Nominative variables — for example, add a colon or restructure the phrase.
        - *Source:* "Download %@" → *Target:* "Preuzmi: %@"
      
      - **Default Gender for Standalone Strings**: When a standalone string has no context indicating gender, use neuter gender. Use ordinal numbers as digits (1.) to sidestep gender disagreement in ordinals. Colors default to feminine gender as this is most likely correct.
        - *Source:* "connected" → *Target:* "spojeno"
        - *Source:* "blue" → *Target:* "plava"
        - *Source:* "first" → *Target:* "1."
      
      - **Avoid 'od strane' for Passive Constructions**: The structure 'od strane …' is forbidden for passive voice. Rewrite the sentence to use an active construction or a different passive phrasing.
        - *Source:* "The service is provided by a third-party provider." → *Target:* "Uslugu pruža treća strana."
      
      ## Interface Elements
      
      - **Button and Command Names Use the Singular Imperative**: Button names, command names, and menu commands are translated in the second-person singular imperative (Otvori, Kopiraj, Zatvori). This terse singular form is reserved for UI control labels; it must not be used in tooltips, footers, or full sentences addressing the user — those take the formal plural form (see "Use Formal Address"). A sentence can therefore contain both: the plural form addressing the user plus a singular command name it refers to.
        - *Source:* "Open" → *Target:* "Otvori"
        - *Source:* "Click Close." → *Target:* "Kliknite Zatvori."
        - *Source:* "File" (menu) → *Target:* "Datoteka"
      
      ## Variables
      
      - **Reorder and Number Variables**: The order of variables can be changed to suit Croatian sentence structure. When variables in the source are not numbered, add explicit position numbers in the translation (%1$@, %2$@). Do not change the period to a comma in numeric format specifiers. Remove a trailing sentence-final full stop from the host string when the variable ends in a date already containing one.
        - *Source:* "Enabling the %@ account \u201C%@\u201D will disable \u201C%@\u201D on this Mac." → *Target:* "Omogućivanjem računa \u201E%2$@\u201C za aplikaciju %1$@, onemogućit će se \u201E%3$@\u201C na ovom Mac računalu."
        - *Source:* "Available until %@." → *Target:* "Dostupno do %@"
      
      ## Terminology
      
      - **Prefer Croatian Terms; Accepted Loan Words**: Use Croatian wherever a clear, natural translation exists. A curated set of loan words is accepted due to space constraints or established usage: Link (over 'poveznica'), Plugin, Widget, Slideshow, Streaming, Server (iOS only). 'OK' is used on iOS; macOS uses 'U redu'.
        - *Source:* "Link" → *Target:* "link" (not "poveznica")
        - *Source:* "Widget" → *Target:* "widget"
        - *Source:* "Server" (iOS) → *Target:* "server"
      
      - **Common Terminology Reference**: Use the established Croatian translations for key UI terms. Common errors include using wrong synonyms for standard UI vocabulary.
        - *Source:* "Update" → *Target:* "ažuriranje"
        - *Source:* "Upgrade" → *Target:* "nadogradnja"
        - *Source:* "Button" → *Target:* "tipka" (not "gumb")
        - *Source:* "System" → *Target:* "sustav" (not "sistem")
      
      ## Diversity And Inclusion
      
      - **Avoid Color-Based Connotations**: Use colors only to describe actual colors, not to imply security levels or moral qualities. Replace 'whitelist'/'blacklist' with inclusive Croatian equivalents.
        - *Source:* "Whitelist" → *Target:* "Popis odobrenih / Popis dozvoljenih"
        - *Source:* "Blacklist" → *Target:* "Popis odbijenih / Popis nedozvoljenih"
        - *Source:* "Master" → *Target:* "Primarni / Glavni"
      
      - **People-First Language and Gender-Neutral Titles**: Refer to people with disabilities by naming the person first (e.g. 'žena starije životne dobi' rather than 'starica'). Use gender-neutral terms like 'korisnik' or 'osoba' when gender is unknown. For honorifics, use 'Pozdrav' rather than gendered 'Poštovani/Poštovana'.
        - *Source:* "elderly woman" → *Target:* "žena starije životne dobi"
        - *Source:* "Dear Sir/Madam" → *Target:* "Pozdrav"
      
    • styleguide_hu.md 11 KB
      # Hungarian (hu) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Hungarian uses curly double quotation marks „ (\u201E) as the lower opening mark and ” (\u201D) as the upper closing mark, and the curly apostrophe ’ (\u2019).
        - *Source:* "Select \u201CStart\u201D." → *Target:* "Válassza a(z) \u201EStart\u201D lehetőséget."
      
      ## Tone And Voice
      
      - **Smart But Casual Tone**: Write in a neutral, descriptive style that leans formal without being stiff. Avoid trendy slang. For marketing copy, adopt a more expansive, positive style — for example, prefer 'akár 10 sablon' over 'legfeljebb 10 sablon' to convey optimism.
        - *Source:* "up to 10 templates" → *Target:* "akár 10 sablon"
      
      ## Addressing Users
      
      - **Formal Third-Person Singular Addressing**: Address the user formally using the third-person singular imperative (magázás). Use informal 'te' forms only when the source string's own tone is distinctly casual, or when the developer's instructions call for an informal voice (e.g. a social or youth-oriented app).
        - *Source:* "Click the Close button." → *Target:* "Kattintson a Bezárás gombra."
      
      ## Abbreviations
      
      - **Minimize Abbreviations and Match Source Length**: Avoid abbreviations wherever possible. The only mandated abbreviation is 'stb.' for 'és a többi'. Never let a Hungarian translation become roughly twice the length of the source — this will clip at runtime.
        - *Source:* "View in <app>" → *Target:* "Megtekintés itt: <app>"
      
      ## Acronyms
      
      - **Suffix Acronyms According to Pronunciation**: Do not translate acronyms unless a very common localized equivalent exists. When adding Hungarian suffixes to acronyms or product names, match the suffix to the actual spoken pronunciation of the word, not its spelling. Some acronyms have become common nouns and take no hyphen before their suffixes.
        - *Source:* "with iPad" → *Target:* "iPaddel" (not "iPaddal")
      
      ## Special Characters
      
      - **Non-Breaking Spaces for Apple Product Names and IDs**: Insert a non-breaking space between the brand name and its number or qualifier in Apple product names and identifiers such as Apple ID, Touch ID, Face ID, Apple TV, Apple Watch SE, and OS version names. Convert double spaces to single spaces.
        - *Source:* "Apple TV" → *Target:* "Apple TV" (with a non-breaking space between "Apple" and "TV")
      
      ## Grammar
      
      - **Compound Words and Hyphenation**: If a compound word is made up of three or more words (multiple compounds), write them solid when the total syllable count (excluding inflectional suffixes) is below seven, and insert a hyphen at a meaningful word boundary when the count reaches seven or more. Service and protocol names are never hyphenated: 'DHCP szolgáltatás', 'TCP/IP protokoll'. When a proper name forms part of a compound, attach the rest with a hyphen to the second element of the name.
        - *Source:* "software license agreement" → *Target:* "szoftver-licencszerződés"
      
      - **Articles Before Variables**: When a variable placeholder stands alone and its value is unknown at translation time, use the constructed article 'a(z)' to cover both vowel-initial and consonant-initial replacements. Only use a definite 'a' or 'az' when you are completely certain which value will fill the placeholder.
        - *Source:* "the %@ device" → *Target:* "a(z) %@ eszköz"
      
      - **Loan Words and Localized Spellings**: Keep certain terms in their English form: 'stream', 'web', 'e-mail', 'build'. Translate 'application' as 'alkalmazás' and 'app' as 'app' (with vowel-harmony suffix: 'appot'). Several loan words use Hungarian spelling: 'domén', 'szerver', 'bájt', 'fájl'. Never translate 'app' as 'alk.'
        - *Source:* "application" → *Target:* "alkalmazás"
        - *Source:* "app" → *Target:* "app"
      
      - **Word Order and Natural Hungarian Syntax**: Hungarian word order is far more flexible than English. Do not mirror the source sentence structure; instead use Hungarian conventions to naturally place emphasis. Avoid calquing article usage — 'Add a file' should become the articleless 'Fájl hozzáadása', not 'Egy fájl hozzáadása'.
        - *Source:* "Add a file" → *Target:* "Fájl hozzáadása"
      
      - **Singular vs. Plural Nouns**: When the source uses an indefinite singular noun to describe a general concept, Hungarian may naturally require the plural. Assess the context rather than following the source form blindly.
        - *Source:* "Adjust a file's attributes" → *Target:* "Fájlok tulajdonságainak szerkesztése"
      
      ## Date And Time
      
      - **Date, Time, and Calendar Abbreviations**: Never use Roman numerals for months or a period as a time separator. For abbreviated time units write them with a space before the abbreviation and no trailing period: 'ó' (hour), 'p' (minute), 'mp' (second). Preferred day abbreviations are Hé, Ke, Sze, Csüt, Pé, Szo, Vas; preferred month abbreviations end with a period: jan., febr., márc., etc.
        - *Source:* "45 min to home" → *Target:* "45 p hazáig"
      
      ## Measurements
      
      - **Measurement Units and Spacing**: Do not convert imperial measurements to metric. Always write a space between a quantity and its unit symbol, and never follow the unit with a period: '50 Hz', '12 m', '23 °C'. Exception: the percent sign (%) and degree sign (°) require no space: '99%', '45°-kal'.
        - *Source:* "50 Hz" → *Target:* "50 Hz"
        - *Source:* "0.99" → *Target:* "0.99"
      
      ## Numerals
      
      - **Decimal and Thousand Separators**: Use a comma as the decimal separator and a non-breaking space as the thousand separator. Apply the thousand separator only when a number has five or more digits; numbers up to 9999 are written without a separator.
        - *Source:* "100,000.00" → *Target:* "100 000,00" (non-breaking space for thousands, comma for the decimal)
        - *Source:* "12.50 cm" → *Target:* "12,50 cm"
      
      ## Names And Addresses
      
      - **Hungarian Name Order and Address Format**: Hungarian names place the family name first, matching gender carefully in context. Address formatting places the city first, followed by street address and postal code, or inline as 'postal-code city, street address'.
      
      ## Punctuation
      
      - **Hungarian Quotation Marks**: Always use Hungarian-style curly quotation marks: lower opening „ (\u201E) and upper closing ” (\u201D). Never use straight quotes or follow English placement rules. When a full sentence appears inside quotes or parentheses, place the closing punctuation inside; when only part of a sentence is quoted, the punctuation goes outside.
        - *Source:* "\u201Cquoted text\u201D" → *Target:* "\u201Eidézett szöveg\u201D"
      
      - **Dashes: Hyphens vs. N-Dashes**: Hungarian uses only hyphens (-) and n-dashes (–); never use m-dashes (—). Use hyphens for compound words, suffixes on abbreviations or foreign words, key combinations, and the '-e' question particle. Use n-dashes for parenthetical clauses (surrounded by spaces) and numerical ranges (without spaces). Use non-breaking hyphens inside 'Wi-Fi', 'e-mail', the '-e' question particle and for single-character suffixes on foreign proper nouns.
        - *Source:* "4–12 items can be added" → *Target:* "4–12 elem adható meg"
      
      - **Commas in Enumerations and Conjunctions**: Omit the comma before a coordinating conjunction ('és', 'vagy', 'meg') at the end of a list. Also omit the comma before 'stb.' if the enumeration only contains words/expressions, because it already contains 'és'. But keep the comma if the elements of the enumeration are comma-separated clauses. Always place a separator between clauses. When pairing correlative conjunctions such as 'akár–akár' or 'vagy–vagy', a comma must precede the second occurrence.
        - *Source:* "Prompts for name and password, certificate, etc." → *Target:* "Név, jelszó, tanúsítvány stb. bekérése"
        - *Source:* "Add Apple Card to Wallet to make payments, track spending, and more." → *Target:* "Adjon hozzá egy Apple Cardot a Tárcához, hogy fizethessen vele, nyomon követhesse költségeit, stb."
      
      - **Exclamation and Question Marks**: Hungarian conventions sometimes require an exclamation mark where the source omits one, or vice versa. When the source leaves out an exclamation mark but the Hungarian phrasing demands one for the same emotional weight, add it. Similarly, if a title is clearly a question in Hungarian, append a question mark even if the source title lacks one.
        - *Source:* "Why Time in Daylight Is So Important" → *Target:* "Miért olyan fontos a nappali fényben töltött idő?"
      
      ## Interface Elements
      
      - **UI Element Grammar: Nouns, Not Imperatives**: Buttons, menu items, commands, option names, and toolbar buttons must be translated as nouns or noun phrases, never imperative verbs. Only use the imperative when the device is instructing the user to take an action in a sentence. Window titles follow sentence case — only the first letter is capitalized, not every word.
        - *Source:* "Delete" → *Target:* "Törlés"
        - *Source:* "Text Format Settings" → *Target:* "Szövegformátum beállítása"
      
      - **Tooltips Use Noun Phrases**: Translate tooltip strings as gerundive noun phrases rather than verb sentences.
        - *Source:* "Modifies the text color" → *Target:* "Szöveg színének módosítása"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks; Inflect by Pronunciation**: Never translate or transliterate trademarks, product names, or marketing slogans. When Hungarian suffixes must be attached to such terms, base the suffix vowel on the spoken pronunciation of the name, not its spelling.
        - *Source:* "with iPhone Pro Max" → *Target:* "iPhone Pro Maxszal" (not "iPhone Pro Maxval")
      
      ## Variables
      
      - **Preserve Variables and Reorder When Needed**: Never alter variable placeholders such as '%@' or '%.1f' — they are replaced at runtime and any change breaks the substitution. If the Hungarian word order requires reordering multiple '%@' variables, add positional specifiers: the first '%@' becomes '%1$@', the second '%2$@', and so on. Do not change a period inside a numeric format string to a comma.
        - *Source:* "%1$@ shared %2$@" → *Target:* "%2$@-t megosztotta: %1$@"
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral Language and Disability Terminology**: Hungarian has no grammatical gender, so pronouns are not an issue, but avoid stereotyped phrases such as 'szebbik nem' or 'férfierő'. When writing about people with disabilities, use the adjective-first Hungarian convention ('látássérült ember') rather than the English people-first order. Follow the color neutrality of the source — if 'black list' is replaced by 'block list' in the source, use 'tiltólista' instead of 'feketelista'.
        - *Source:* "blind people" → *Target:* "látássérült ember"
      
      ## Terminology
      
      - **Avoid Common Translation Errors**: Several words have established Hungarian equivalents that differ from common usage. Use these approved forms consistently and avoid the listed incorrect alternatives.
        - *Source:* "photo" → *Target:* "fotó" (not "fénykép")
        - *Source:* "link" → *Target:* "link" (not "hivatkozás")
        - *Source:* "Cancel" (iOS/macOS) → *Target:* "Mégsem" (not "Mégse")
        - *Source:* "attachment" → *Target:* "melléklet" (not "csatolmány")
      
    • styleguide_id.md 8.8 KB
      # Indonesian (id) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Indonesian uses curly double quotation marks “ (\u201C) and ” (\u201D), and the curly apostrophe ’ (\u2019).
        - *Source:* "Open \u201C%@\u201D." → *Target:* "Buka \u201C%@\u201D."
      
      ## Tone And Voice
      
      - **Smart But Casual Tone**: Write in a formal register that emulates spoken Indonesian rather than written prose. Casual does not mean informal — standard EYD/PUEBI grammar and spelling always apply, but phrasing should sound like something a fluent speaker would naturally say aloud, not something they would write in a document. Smart means phrasing is idiomatic and culturally appropriate; avoid clunky or wordy constructions; avoid word redundancy.
        - *Source:* "What\u2019s new with Voice Control in visionOS 27" → *Target:* "Yang baru di Kontrol Suara visionOS 27"
      
      - **Context-Specific Tone Variants**: Target tone must match the source — when the source is formal, the translation is formal; when the source is conversational, the translation follows suit and may use the informal second-person address kamu. Explicitly conversational strings such as smack-talk and encouragement may use colloquial verb forms like nge- + verb + -in to match the register of the source. In strings where ambiguity could lead to misinterpretation, a more verbose rendering is acceptable.
        - *Source:* "Nice moves! Keep it up — you're getting better every round." → *Target:* "Keren! Terus begitu — kamu makin jago tiap ronde." (informal kamu — casual, youth-oriented source)
      
      ## Addressing Users
      
      - **Use 'Anda' as Standard Second-Person Pronoun**: Capitalize 'Anda' in all standard software strings per Pedoman Umum Ejaan Bahasa Indonesia. Use 'kamu' only when the source string's tone is distinctly casual or the developer's instructions call for an informal voice (e.g. a social or youth-oriented app). When switching to 'kamu', adjust related words for tonal consistency — for example, change 'dapat' to 'bisa'.
        - *Source:* "Your settings have been saved." → *Target:* "Pengaturan Anda telah disimpan."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software Strings**: Do not abbreviate words in software translations. Use a shorter alternative translation if needed.
        - *Source:* "Choose Notifications to Summarize" → *Target:* "Pilih Notifikasi"
      
      ## Acronyms
      
      - **Retain Acronyms Without Translation**: Do not translate acronyms unless a widely recognized Indonesian equivalent already exists. Common technical acronyms such as CD-ROM and RAM are kept as-is.
        - *Source:* "ADSR" → *Target:* "ADSR"
      
      ## Grammar
      
      - **Compounds and Hyphens with Loan Words**: Use hyphens to join Indonesian words with English loan words, for example 'antar-app'. The plural form 'undang-undang' in copyright notices is written with a hyphen even though Indonesian does not otherwise distinguish plural nouns. English compound words typically expand into a phrase in Indonesian — do not carry over the hyphen. For example, In-App Purchase becomes Pembelian di App, not Pembelian di-App.
        - *Source:* "between apps" → *Target:* "antar-app"
      
      - **Article Omission and Disambiguation**: Articles (the, a, an) are usually omitted in Indonesian. However, when omitting an article would obscure whether the source refers to a specific item or to things in general, translate 'a' as 'satu' to preserve the intended specificity.
        - *Source:* "John likes a photo." → *Target:* "John menyukai satu foto."
      
      - **Conjunction Substitution**: When a direct translation of a source conjunction produces grammatically awkward Indonesian, replace it with a functionally equivalent alternative rather than forcing a literal rendering.
        - *Source:* "And, this update also improves stability." → *Target:* "Selain itu, pembaruan ini juga meningkatkan stabilitas."
      
      - **Prepositions Must Not Be Embedded Into the Following Word**: Write prepositions as separate, free-standing words. A common error is fusing a preposition with the next word as though it were a prefix — this is grammatically incorrect and must be avoided.
      
      - **Capitalization Follows Source; Multi-Word Translations Capitalize All Words**: Mirror the capitalization pattern of the source string in both software and help content. When a single source word translates to two or more Indonesian words, capitalize every word in the translation. Write 'internet' in all lowercase in sentence-case strings, but follow the source's casing pattern when it appears alone or in title-case or all-uppercase strings.
        - *Source:* "Resize" → *Target:* "Ubah Ukuran"
      
      - **Plurals: Use 'Beberapa'/'Sejumlah' Only When Critical**: Indonesian does not inflect nouns for number. Only add 'beberapa' or 'sejumlah' when the plural count is critical to the message. Reduplicated forms such as 'anak-anak' are also acceptable when the plural meaning must be explicit.
        - *Source:* "children" → *Target:* "anak-anak"
      
      ## Date And Time
      
      - **Indonesian Date and Time Format**: Use a dot (.) to separate hours, minutes, and seconds, and a comma for milliseconds (e.g. 00.00.00,00). Never place a comma between month and year in written dates.
        - *Source:* "1 January, 2018" → *Target:* "1 Januari 2018"
      
      ## Measurements
      
      - **Measurement Handling and Imperial-to-Metric Swap**: Do not convert imperial measurements to metric. When a sentence already contains both a metric and an imperial value in parentheses, swap their positions so the metric value appears first and the imperial value moves inside the parentheses.
        - *Source:* "a workout of at least a mile (1.6K)" → *Target:* "berolahraga setidaknya sejauh 1,6 km (satu mil)"
      
      ## Numerals
      
      - **Indonesian Numeral Separators**: Use a comma (,) as the decimal separator and a dot (.) as the thousand separator in accordance with the Indonesian convention.
        - *Source:* "1,000,000" → *Target:* "1.000.000"
        - *Source:* "3.14" → *Target:* "3,14"
      
      ## Punctuation
      
      - **Oxford Comma for Multiple Successive Nouns**: Always use the Oxford (serial) comma when listing three or more successive nouns in a sentence.
        - *Source:* "Photos, Videos and Documents" → *Target:* "Foto, Video, dan Dokumen"
      
      - **Em-Dash for Parenthetical Clarity**: Use an em-dash without surrounding spaces to isolate a parenthetical part of a sentence when the sentence already contains many commas and readability would suffer.
        - *Source:* "Your photos, videos, and files are backed up — along with your contacts, calendars, and app data — automatically every day." → *Target:* "Foto, video, dan file Anda—beserta kontak, kalender, dan data app—dicadangkan secara otomatis setiap hari."
      
      - **Full Stop Placement After Closing Quote**: When a sentence ends with a word or phrase in quotation marks, place the full stop after the closing quotation mark, not before it.
      
      ## Interface Elements
      
      - **UI Elements: Imperative for Buttons and Commands**: Translate button names, menu commands, and toolbar buttons using the imperative form. Examine the button's functionality to determine the correct form. For example, tambah implies increasing a quantity, while Tambahkan implies placing a specific object into a destination. Keyboard key names such as function, command, option, control, shift, return, delete, tab, and caps lock must not be localized.
        - *Source:* "Cancel" → *Target:* "Batalkan"
        - *Source:* "Show Font" → *Target:* "Tampilkan Font"
      
      - **Tooltips Use Imperative Form**: Translate tooltip strings using the imperative.
      
      ## Variables
      
      - **Preserve Runtime Variables**: Never modify placeholders such as '%@' or '%.1f' — they are substituted at runtime and any alteration will break the substitution. Be especially mindful of differences between Indonesian and English syntax when repositioning variables within a sentence.
        - *Source:* "%1$@ liked %2$@'s photo" → *Target:* "%1$@ menyukai foto %2$@"
      
      ## General Advice
      
      - **Distinguish Nouns From Verbs in Translation**: English and Indonesian differ significantly in word formation, making it easy to confuse a verb for a noun. Always identify the grammatical role of the source word before translating.
        - *Source:* "Download" (noun) → *Target:* "Pengunduhan"
        - *Source:* "Download" (verb) → *Target:* "Unduh"
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral Language and Disability Terminology**: Avoid gendered suffixes -wan/-wati where a neutral equivalent exists: use 'pekerja' instead of 'karyawan' and 'murid' instead of 'siswa'. For disability terms, use people-first language in most cases, but research community preferences — for example, the Indonesian Deaf community prefers 'Tuli' (capitalized) over 'tunarungu'. Avoid colloquial expressions that are only familiar to certain regional dialects.
        - *Source:* "students" → *Target:* "murid" (not "siswa")
        - *Source:* "workers" → *Target:* "pekerja" (not "karyawan")
      
    • styleguide_it.md 4 KB
      # Italian (it) — Software String Localization Style Guide
      
      - **Imperative for commands and buttons**: Commands, button labels, and option names use the imperative: "Seleziona tutto", "Mostra gli acquisti disponibili". For tabs, panels, and menu titles, prefer nouns over verbs: "Stampa" for "Printing". If the gerund in English refers to an ongoing action, use the 1st singular person of indicative present: "Exporting the files...", "Esporto i file...".
      
      - **Foreign words never take Italian plurals**: English loan words remain in their singular form even when used as plurals. "Mantieni entrambi i file" (not "i files"). This applies universally to all non-Italian words if they are common nouns. If they are product names, keeping the final -S depends on the specific products, e.g. AirPods remains unchanged (gli AirPods), while we drop the S in "AirTags", "gli AirTag".
      
      - **Curly double quotes for multi-word UI options**: Use Italian curly double quotes “ (\u201C) and ” (\u201D) around UI options and items consisting of two or more words within sentences: Fai clic su “Uscita forzata”. Do not quote single-word options (Fai clic su Condivisione), or app names. Nested quotes use single curly quotes (‘, \u2018 and ’, \u2019): “Imposta ‘Non disturbare’”. Apostrophes should always be curly as well (’, \u2019). The inch symbol in product names remains straight as in the source string (MacBook Pro 16").
      
      - **Impersonal form for errors; "tu" for software**: Address users with "tu", but for error messages, use impersonal constructions: "Impossibile aprire il file" or "Avvio della periferica non riuscito" rather than addressing the user directly. 
      
      - **Gender-inclusive rephrasing**: Avoid gendered constructions where possible. Rephrase "Sei sicuro di voler..." as "Confermi di voler..." or "Vuoi...?". "Non sei connesso a internet" becomes "La connessione a internet non è attiva". 
      
      - **Euphonic "d" before Apple product names**: Always use "ad" before products starting with lowercase "i" (ad iPhone, ad iPad, ad iMac) and before products starting with "Apple" (ad Apple Watch, ad Apple Pay), regardless of standard pronunciation-based rules.
      
      - **No space before percent; comma as decimal separator**: The percent sign attaches directly to the number ("50%"). Use comma as decimal separator and period as thousands separator for 5+ digit numbers ("15.000"). Always include leading zero for decimals ("0,8 m" not ".8 m"). No space before degree symbol alone ("12°") but space before scale ("12 °C").
      
      - **Drop "please" and demonstrative adjectives**: Never translate "please" in instructions: "Please use another name" becomes "Utilizza un altro nome". Minimize demonstrative adjectives ("questo/questa") with product names unless needed to distinguish between multiple devices.
      
      - **Suppress possessive adjectives with products**: Omit possessives before hardware/software names: "Inserisci la password" (not "Inserisci la tua password"), "configura iPhone utilizzando i dati cellulare" (not "configura il tuo iPhone").
      
      - **UI option gender defaults to feminine**: When adjectives or past participles refer to a UI option starting with a verb, use the feminine form because the implied nouns (opzione, impostazione, modalità) are feminine: Solo quando "Preferisci WLAN 6E" è disattivata. If the UI option starts with a noun, adjectives and past participles should match the noun gender, e.g. "Voice Recognition is off", ""Riconoscimento vocale" è disattivato".
      
      - **Replace em/en dashes with hyphens or colons**: Italian does not use em dashes in running text. Replace em dashes introducing asides with commas or parentheses. Replace em/en dashes in headings with colons: "Missed call — from your iPhone" becomes "Chiamata persa: da iPhone". Use non-breaking hyphens (\u2011) in compound words like Wi‑Fi.
      
      - **Brevity strategies for space-constrained UI**: Suppress articles when space is tight ("Scarica immagine" over "Scarica l’immagine"). Prefer "Usa" over "Utilizza" and "Vuoi" over "Desideri".
      
    • styleguide_ja.md 14.7 KB
      # Japanese (ja) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Write in a tone that is closer to formal than informal, but never stiff or overly academic. Avoid trendy slang; use a neutral, descriptive style. Prefer Japanese terminology where possible, even when users commonly say the English word.
        - *Source:* "You may have to reinstall some of the applications you transfer." → *Target:* "転送するアプリケーションによっては、再インストールが必要なものもあります。"
      
      - **Translation of 'Try again'**: When translating the common UI instruction "Try again", use "やり直してみてください". Do not use "やり直してください" or "もう一度お試しください", as "やり直してみてください" better conveys the intended nuance.
        - *Source:* "Try again later." → *Target:* "あとでやり直してみてください。"
      
      ## Addressing Users
      
      - **Omit 'You' / 'Your' When Context Is Clear**: In Japanese it is natural to drop the subject. Omit 'you' and 'your' unless the sentence must explicitly distinguish one user from another. When disambiguation is needed, use ユーザ(の), あなた(の), 自分(の), or この.
        - *Source:* "Enter your password" → *Target:* "パスワードを入力してください"
        - *Source:* "on your iPhone" → *Target:* "iPhone上"
        - *Source:* "This iPhone is linked to your Apple Account so no one else can use it" → *Target:* "このiPhoneはあなたのApple Accountに関連付けられているため、ほかの人は使用できません。"
      
      - **Minimize and Localize Pronoun Usage**: Directly translating English pronouns often results in unnatural text. Omit pronouns if context is clear. For third-person (he/she/they), avoid 彼/彼女; use descriptive nouns like ユーザ, 連絡先, この人, or the person's name. For first-person (I/we), avoid casual terms like 僕/俺; if strictly necessary, use the standard 私 or 私たち.
        - *Source:* "You should change the passwords and passkeys for accounts you no longer want them to have access to." → *Target:* "この人にアクセスして欲しくないアカウントのパスワードとパスキーを変更する必要があります。"
      
      ## Special Characters
      
      - **No-Break Space for Specific Apple Product Names**: Always use NO-BREAK SPACE within the following terms to prevent them from wrapping across two lines: Apple ID, Apple Account, Face ID, Touch ID, Optic ID, Apple TV, Apple Pay, Apple Cash, Apple Card, iTunes U, Vision Pro.
        - *Source:* "Set up Apple Pay" → *Target:* "Apple Payを設定"
      
      - **Conditional No-Break Space for Other Apple Terms**: For store names (e.g., App Store), Apple service names (e.g., Apple Music), and other Apple product names (e.g., Apple Watch), follow the English source text. If the source uses a NO-BREAK SPACE, use it in the translation. If the source uses a regular space, use a regular space. Exception: You may use a NO-BREAK SPACE if a regular space would cause an awkward line break.
        - *Source:* "Open the App Store" → *Target:* "App Storeを開く"
      
      ## Grammar
      
      - **Conjunctions: 'and' and 'or'**: Use 'と' as the default translation of 'and' between nouns. Use 'および' in formal enumerations or with three or more items. For 'or', prefer 'または'; use 'あるいは' when the conjunction is nested. Do not use 'もしくは'.
        - *Source:* "Display & Brightness" → *Target:* "画面表示と明るさ"
        - *Source:* "Forgot Apple Account or Password?" → *Target:* "Apple Accountまたはパスワードをお忘れですか?"
        - *Source:* "Restoring ringtones, media, and files" → *Target:* "着信音、メディア、およびファイルを復元中"
      
      - **Avoid Inanimate Subjects (無生物主語)**: Inanimate subject is to be avoided. Omit the inanimate subject or rephrase.
        - *Source:* "iPhone can help during an Emergency" → *Target:* "緊急時にiPhoneが役に立ちます"
      
      ## Numerals
      
      - **Arabic Numerals; Respect Thousand Separators from Source**: Use single-byte Arabic numerals. Add or omit the thousand separator (,) based on whether the English source uses it. Use Japanese numerals only when the number is part of a fixed idiom or set phrase.
        - *Source:* "1,000,000 songs" → *Target:* "1,000,000曲"
        - *Source:* "1000 Mbps/Half Duplex" → *Target:* "1000 Mbps/半二重"
      
      ## Names And Addresses
      
      - **Honorific Suffix さん After Person-Name Variables**: Add the honorific suffix 'さん' directly after any variable that will be replaced by a person's name at runtime. Do not add it after variables that represent device names, email addresses, or phone numbers. If a variable could represent either a name or an email, prefer adding さん.
        - *Source:* "Received item from %1$@." → *Target:* "%1$@さんから1項目を受信しました。"
      
      ## Measurements
      
      - **Unit Handling: Spell Out or Keep Per Context**: Do not convert imperial measurements to metric. For abbreviated units, keep them as-is. Translate fully spelled-out units into Japanese (e.g., 'inch' → インチ). Exception: time abbreviations such as 'h', 'm', 's' should be translated to 時間, 分, 秒 unless space is constrained.
        - *Source:* "h" → *Target:* "時間"
        - *Source:* "inch" → *Target:* "インチ"
      
      ## Interface Elements
      
      - **App Name Quoting Rules**: Quote the following translated app names with curly double quotation marks “ (\u201C) and ” (\u201D) because they are common nouns: “カレンダー”, “カメラ”, “時計”, “連絡先”, “ファイル”, “探す”, “ヘルスケア”, “ホーム”, “メール”, “マップ”, “メッセージ”, “ミュージック”, “メモ”, “電話”, “写真”, “ポッドキャスト”, “リマインダー”, “設定”, “ショートカット”, “株価”, “ヒント”, “翻訳”, “天気”. Do not quote DNT names.
        - *Source:* "Video saved to Photos" → *Target:* "ビデオは\u201C写真\u201Dに保存されました"
      
      - **Button and Command Names: Noun Phrase Without する**: For buttons, command names, menu names, and option names, use a noun or noun phrase (O+を+V) and omit the trailing 'する'. One exception is '同意する', which must keep する because its counterpart '同意しない' requires it.
        - *Source:* "Delete" → *Target:* "削除"
        - *Source:* "Show All" → *Target:* "すべてを表示"
      
      - **Keyboard Shortcuts: Spell Out Key Names**: Refer to modifier keys using lowercase English letters followed by キー (e.g., commandキー, optionキー), not by their symbols. Use a single-byte '+' to join keys in shortcut combinations.
        - *Source:* "Press Command-Option-F5" → *Target:* "Command+Option+F5キーを押します"
      
      - **Translation of '"%@" would like to xxx'**: When translating strings formatted as '"%@" would like to xxx' (where "%@" is an inanimate subject like an app), use the passive voice structure: "\u201C%@\u201Dから、[action]を求められています。". Do not use active voice structures like "\u201C%@\u201Dが[action]を求めています。"
        - *Source:* "\u201C%@\u201D would like to access your contacts." → *Target:* "\u201C%@\u201Dから、連絡先へのアクセス権を求められています。"
      
      ## Variables
      
      - **Preserve Variables and Add Positional Markers When Reordering**: Never alter variable tokens such as %@, %d, or %lu. If multiple variables must be reordered to produce natural Japanese, add positional markers (e.g., %1$@, %2$@) to every variable in the string. Use the %[tt]@ format when a variable holds a Japanese App name such as “探す”  that needs automatic quoting.
        - *Source:* "Leave now: It will take %@ to get to %@ on %@ by car." → *Target:* "今出発: %2$@まで車で%3$@を通って%1$@かかります。"
      
      ## Orthography
      
      - **Katakana**: Half-width katakana should never be used.
        - *Source:* "Software Update" → *Target:* "ソフトウェアアップデート"
      
      - **Alphabets**: Full-width Latin letters should not be used.
        - *Source:* "iPhone" → *Target:* "iPhone"
      
      - **Numbers**: Full-width digits should not be used.
        - *Source:* "Your Available Credit may take up to 10 business days to reflect this payment." → *Target:* "このお支払いが利用可能残高に反映されるまでに最大10日間かかる場合があります。"
      
      - **Compound word in katakana**: KATAKANA MIDDLE DOT should not be used when writing a compound word in katakana.
        - *Source:* "Picture in Picture" → *Target:* "ピクチャインピクチャ"
      
      - **Place name in katakana**: When writing a place name in katakana, use KATAKANA MIDDLE DOT as appropriate.
        - *Source:* "Trinidad and Tobago" → *Target:* "トリニダード・トバゴ"
      
      - **Time format**: Use the 24-hour for time format by default. Use a single-byte colon as a separator. If the source uses 12-hour clock, then use it in the target too. Use "午前" for AM and "午後" for PM. "午前" and "午後" should be placed before the time.
        - *Source:* "4:00 am" → *Target:* "午前4:00"
      
      - **Date format**: Use the Japanese standard date format, YYYY/MM/DD.
        - *Source:* "8/14/2025" → *Target:* "2025/8/14"
      
      - **No Space Between English and Japanese**: A space should not be placed between English and Japanese words.
        - *Source:* "Apple Watch cellular plans." → *Target:* "Apple Watchのモバイル通信プラン"
      
      - **Spacing Between Numbers and Units**: A single-byte space between a numeric value (or variable) and a unit should strictly follow the English source text. If the source has a space, include a space in the translation. If the source does not have a space, do not include a space.
        - *Source:* "%@ GB" → *Target:* "%@ GB"
        - *Source:* "%@GB" → *Target:* "%@GB"
      
      ## Punctuation
      
      - **Question mark**: The full-width question mark should not be used. Instead, the single-byte one should be used.
        - *Source:* "Are you sure you want to delete %lu items?" → *Target:* "%lu項目を削除してもよろしいですか?"
      
      - **Question mark spacing**: When QUESTION MARK is followed by another text, a space should be placed after the mark.
        - *Source:* "Are you sure you want to continue? All media, data, and settings will be erased." → *Target:* "続けてもよろしいですか? すべてのメディア、データ、および設定を消去します。この操作は取り消せません。"
      
      - **Exclamation mark**: The full-width exclamation mark should not be used. Instead, the single-byte one should be used.
        - *Source:* "That marks 1000 Fitness+ mindful cooldowns. Amazing!" → *Target:* "これはFitness+のマインドフルクールダウン1000回の記録です。すごいです!"
      
      - **Exclamation mark spacing**: When EXCLAMATION MARK is followed by another text, a space should be placed after the mark.
        - *Source:* "Nice job getting on the bike yesterday! Well done, %@." → *Target:* "昨日はサイクリングをがんばりましたね! よくできました、%@さん。"
      
      - **Comma**: Except for a thousands separator, an ideographic comma should be used.
        - *Source:* "If you have multiple calling apps, you can change the default." → *Target:* "複数の通話アプリがある場合は、デフォルトを変更できます。"
      
      - **Full stop**: Except for a decimal separator, an ideographic full stop should be used.
        - *Source:* "A request to get the car power level status for the user." → *Target:* "ユーザが車の充電状態を取得するためのリクエスト。"
      
      - **Colon**: The full-width colon should not be used. Instead, the single-byte one should be used. When followed by text, place a single-byte space after the colon.
        - *Source:* "Replacement:" → *Target:* "置き換え:"
        - *Source:* "Arriving: %@" → *Target:* "到着: %@"
      
      - **Parenthesis**: FULLWIDTH LEFT and RIGHT PARENTHESIS are to be used.
        - *Source:* "Shanghainese (China mainland)" → *Target:* "上海語(中国本土)"
      
      - **Parenthesis Exception: Hardware Model Names**: While full-width parentheses are the standard, you must use half-width (single-byte) parentheses ( ) when translating hardware model names (e.g., Mac models) to prevent UI layout issues.
        - *Source:* "MacBook Air (13-inch, M5)" → *Target:* "MacBook Air (13インチ、M5)"
      
      - **Ellipsis**: HORIZONTAL ELLIPSIS is always to be used. MIDLINE HORIZONTAL ELLIPSIS should not be used. Do not use three single-byte dots.
        - *Source:* "..." → *Target:* "…"
      
      - **Double quotation marks**: Use curly quotes in general, i.e. LEFT/RIGHT DOUBLE QUOTATION MARK (\u201C and \u201D). Double quotation marks are typically used to refer to UI elements such as an app name, a menu item, and a button label.
        - *Source:* "Double-tap to open Settings" → *Target:* “\u201C設定\u201Dを開くにはダブルタップします"
      
      - **Right double quotation mark spacing**: When RIGHT DOUBLE QUOTATION MARK is followed by another single-byte character, then a single-byte space should be placed after the quotation mark.
        - *Source:* "Are you sure you want to remove the selected messages from the \u201C%1$@\u201D POP server?" → *Target:* "選択したメッセージを\u201C%1$@\u201D POPサーバから削除してもよろしいですか?"
      
      - **Greater-than sign**: When the Greater-Than Sign is used to explain the steps of UI navigation, use FULLWIDTH GREATER-THAN SIGN.
        - *Source:* "Additional Outgoing Mail Servers can be configured for Mail accounts in Settings > Apps > Mail > Accounts." → *Target:* "\u201C設定\u201D>\u201Cアプリ\u201D>\u201Cメール\u201D>\u201Cアカウント\u201Dで、追加の送信用メールサーバを構成することができます。"
      
      - **Slash sign**: Use a half-width/single-byte sign. FULLWIDTH SOLIDUS should not be used.
        - *Source:* "Parent/Guardian" → *Target:* "親/保護者"
      
      - **Wave dash**: Use a WAVE DASH to indicate a range of values.
        - *Source:* "40-49 dB" → *Target:* "40〜49 dB"
      
      - **Corner brackets**: LEFT CORNER BRACKET and RIGHT CORNER BRACKET should not be used in general. Instead, LEFT DOUBLE QUOTATION MARK (\u201C) and RIGHT DOUBLE QUOTATION MARK (\u201D) should be used.
        - *Source:* ""Tags" is supported in Landmarks 2.0 and later." → *Target:* "\u201Cタグ\u201DはLandmarks 2.0以降に対応しています。"
      
      - **Corner brackets Exception: Tapbacks and Accessibility**: While double curly quotation marks (“ ”) are the standard for quoting UI elements in software, you must use corner brackets (「 」) as an exception when translating Messages Tapback reactions (e.g., 「ハート」).
        - *Source:* "You loved this" → *Target:* "あなたはこれに「ハート」と応答"
      
      ## Terminology
      
      - **Press and hold Terminology**: "Press and hold", "Press & hold" and "Long press" should be translated as "長押し(する)" for consistency.
        - *Source:* "Press and hold the power button" → *Target:* "電源ボタンを長押しします"
      
    • styleguide_kk.md 9.3 KB
      # Kazakh (kk) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Kazakh uses guillemet quotation marks « (\u00AB) and » (\u00BB) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Turn on \u201CDo Not Disturb\u201D." → *Target:* "\u00ABМазаламау\u00BB функциясын қосыңыз."
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The tone should be closer to formal than informal but never stiff or archaic. Keep a neutral, descriptive style and avoid trendy or hip expressions. Use Kazakh as much as possible, though some terms that do not translate well may remain in English.
        - *Source:* "HTTPS, True Tone, Bluetooth" → *Target:* "HTTPS, True Tone, Bluetooth" (left in English)
      
      - **Avoid Literal Word-for-Word Translation**: The goal of translation is reached when the reader does not feel they are reading a translation. Restructure sentences to sound natural in Kazakh, use short concise sentences, and avoid cryptic or pedantically literal renderings.
        - *Source:* "You're all set!" → *Target:* "Барлығы дайын!" (a literal calque would be nonsensical; restructure for meaning)
      
      ## Addressing Users
      
      - **Use Formal Pronoun Сіз Sparingly**: Address the user in a polite and respectful tone using the formal Сіз form, but omit it wherever the sentence reads naturally without it. Kazakh grammar often carries sufficient politeness through verb endings alone, so overusing Сіз sounds unnatural.
        - *Source:* "You can create, save, edit, move, copy and delete files." → *Target:* "Файлдарды жасауға, сақтауға, өзгертуге, жылжытуға, көшіруге және жоюға болады."
      
      - **Omit 'Your' When Possessive Ending Suffices**: The English pronoun 'your' can almost always be omitted in Kazakh translation. The possessive case ending -ыңыз/-іңіз attached to the noun conveys the same meaning without adding the explicit pronoun.
        - *Source:* "Using your device you can do the following." → *Target:* "Құрылғыңызбен төмендегі әрекеттерді орындауға болады."
      
      - **Avoid 'Please' Constructions**: Polite commands with 'Please' do not translate naturally into Kazakh. The formal imperative already conveys sufficient politeness, so simply use the imperative form without adding a Kazakh equivalent of 'please'.
        - *Source:* "Please enter your password." → *Target:* "Құпиясөзді енгізіңіз."
      
      - **Action Descriptions in Tips Name the User**: When translating action-description strings that serve as VoiceOver alt-text for images, passive voice sounds unnatural. Instead, explicitly name the user performing the action in the translation.
        - *Source:* "Done is tapped, then Set as Wallpaper Pair is tapped." → *Target:* "Пайдаланушы \u00ABДайын\u00BB опциясын, содан кейін \u00ABЖұп тұсқағаз ретінде орнату\u00BB опциясын түртеді."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software Strings**: Do not shorten words through abbreviations in UI translations. If a string is too long, use a shorter alternative translation rather than abbreviating. A fixed set of accepted abbreviations exists for units such as сағ, мин, сек, КБ, МБ, ГБ.
        - *Source:* "hour / minute / second" → *Target:* "сағ / мин / сек"
        - *Source:* "kilobyte / megabyte / gigabyte" → *Target:* "КБ / МБ / ГБ"
      
      ## Acronyms
      
      - **Keep Acronyms in English**: Do not translate acronyms unless a standard industry equivalent exists in Kazakh. If the source spells the acronym out (e.g. an expansion in parentheses), translate that expansion; do not add one the source doesn't include.
        - *Source:* "RAM (random access memory)" → *Target:* "RAM (кездейсоқ қол жеткізу жады)"
      
      ## Date And Time
      
      - **Kazakh Date Format**: Kazakh documents use the format YYYY жылғы DD MMMM. Use the 24-hour time format.
        - *Source:* "August 29, 2021" → *Target:* "2021 жылғы 29 тамыз"
      
      ## Measurements
      
      - **Do Not Convert Measurements**: Do not convert imperial measurements to metric or local equivalents. Use the double prime symbol (″ (\u2033)) as the abbreviation for inches. Spell out miles as 'миль'; if an abbreviation is unavoidable, use 'ми' (not 'мл', which means milliliters).
        - *Source:* "5 miles" → *Target:* "5 миль"
      
      ## Names And Addresses
      
      - **Kazakh Address Format**: Follow the Kazakh post-office convention — street/avenue name and building number, apartment or office number, city, postal index, country, with the 6-digit postal index placed after the city name (e.g. "Абай даңғылы, 10, Алматы, 050000, Қазақстан"). Foreign addresses outside CIS countries are kept as-is.
        - *Source:* "Apple Inc. One Apple Park Way, Cupertino, CA 95014, United States" → *Target:* "Apple Inc. One Apple Park Way, Cupertino, CA 95014, United States" (foreign address kept as-is)
      
      ## Numerals
      
      - **Comma as Decimal Separator, Non-breaking Space as Thousands Separator**: Use a comma as the decimal separator and a non-breaking space as the thousands separator. Do not use a thousands separator in four-digit numbers. Version numbers continue to use a period, and the version number is never followed by a period.
        - *Source:* "11234.50 kg" → *Target:* "11 234,50 кг"
        - *Source:* "OS X v10.8.2" → *Target:* "OS X 10.8.2 нұсқасы"
      
      ## Special Characters
      
      - **Translate # as № and & as және**: The hash symbol # is not used in Kazakh; replace it with № followed by a non-breaking space. The ampersand & is also not used except inside registered trademarks or band names; in regular text translate it as 'және'.
        - *Source:* "Track #5" → *Target:* "№ 5 жол"
        - *Source:* "Display & Brightness" → *Target:* "Дисплей және жарықтық"
      
      ## Punctuation
      
      - **Use Guillemet Quotation Marks**: Kazakh localization uses guillemet marks « » as the primary quotation marks. Straight double quotes are only used for a quote inside a quote. Do not use any quotation marks around foreign product names or DNT terms.
        - *Source:* "\u201CDo Not Disturb\u201D feature" → *Target:* "\u00ABМазаламау\u00BB функциясы"
      
      - **Use En Dash, Not Hyphen, as Dash**: Never substitute a hyphen for a dash. Use the en dash (–) where an em dash or sentence dash is needed. Use a non-breaking hyphen within hyphenated words such as Wi-Fi to prevent incorrect line-wrapping.
        - *Source:* "This is a paid service." → *Target:* "Бұл – ақылы қызмет." (en dash, not hyphen)
      
      ## Grammar
      
      - **Handle the Indefinite Article with Word Order or бір**: Kazakh has no articles. Translate 'a/an' by using natural Kazakh word order (placing the new item at the end of the sentence) or, when genuine singularity must be emphasized, by adding the quantifier 'бір'. Do not use an objective case ending to imply indefiniteness.
        - *Source:* "Create a file." → *Target:* "Файл жасау." (not "Файлды жасау")
        - *Source:* "Select a file." → *Target:* "Бір файлды таңдаңыз."
      
      - **Conjunction Usage: және vs мен/бен/пен**: 'And' can be rendered as 'және' or as the clitic 'мен/бен/пен' depending on context. Between verbs, prefer using a converb (gerund form) with a comma rather than repeating 'және', which sounds unnatural.
        - *Source:* "Save the changes and close the file." → *Target:* "Өзгерістерді сақтап, файлды жабыңыз." (not "...сақтаңыз және файлды жабыңыз.")
      
      - **Imperative Forms in Instructions**: Use the polite imperative (singular) for instructions. Do not use the plural imperative form. Tooltips that are simple hints use the infinitive form; tooltips that include a clause of purpose use the imperative.
        - *Source:* "Select" → *Target:* "таңдаңыз" (not "таңдаңыздар")
        - *Source:* "Press and hold to create a new project." → *Target:* "Жаңа жоба жасау үшін басып тұрыңыз."
      
      ## Interface Elements
      
      - **Buttons and Commands as Infinitives**: Translate button names and command names as verbs in infinitive form. Menu names follow the part of speech of the source — nouns remain nouns, verbs become infinitives. Toolbar buttons are typically translated as nouns.
        - *Source:* "Cancel" → *Target:* "Бас тарту"
        - *Source:* "Copy" → *Target:* "Көшіру"
        - *Source:* "Share" → *Target:* "Бөлісу"
      
      ## Variables
      
      - **Number Variables When Word Order Changes**: Keep all variables intact. When Kazakh sentence structure requires reordering variables relative to the source, add a positional index (e.g. %1$@, %2$@) so each variable resolves correctly at runtime. Do not change the decimal separator inside numeric format strings.
        - *Source:* "Found %@ with %@ starting from this date." → *Target:* "Осы күннен бастап %2$@ бар %1$@ табылды."
      
      ## General Advice
      
      - **Prefer Kazakh Terminology Over English Loan Words**: Use an existing Kazakh term whenever it matches the meaning, function, and context of the source term. Avoid English loan words for the sake of coolness or current spoken tendency. Leave terms in English only as a last resort after careful research.
        - *Source:* "Password" → *Target:* "Құпиясөз"
      
    • styleguide_kn.md 19.7 KB
      # Kannada (kn) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Kannada uses curly double quotation marks “ (\u201C) and ” (\u201D), and the curly apostrophe ’ (\u2019).
        - *Source:* "Open \u201C%@\u201D." → *Target:* "\u201C%@\u201D ಅನ್ನು ತೆರೆಯಿರಿ."
      
      ## Abbreviations
      
      - **Translate Abbreviations to Full Form; Abbreviate Only Under Space Constraint**: Prefer translating abbreviations to their full Kannada form. Abbreviate only when space restrictions make the full form impossible. Use a period after abbreviated terms. Keep abbreviated country names (UAE, UK, etc.) in English. Date/time abbreviations follow CLDR entries.
        - *Source:* "No." → *Target:* "ಸಂಖ್ಯೆ" (full form) / "ಸಂ." (space-restricted)
        - *Source:* "Dept." → *Target:* "ವಿಭಾಗ"
      
      ## Acronyms
      
      - **Transliterate Well-Known Acronyms; Keep Technical Ones in English**: Transliterate commonly recognized acronyms into Kannada script (e.g., UNESCO → ಯುನೆಸ್ಕೋ, NASA → ನಾಸಾ). For technical file-format abbreviations and other IT acronyms that are better left unlocalized (PDF, MAC, POP), keep them in English.
        - *Source:* "UNESCO" → *Target:* "ಯುನೆಸ್ಕೋ"
        - *Source:* "POP Server" → *Target:* "POP ಸರ್ವರ್"
      
      ## Addressing Users
      
      - **Use Formal Honorific Forms for 'You' and Verbs**: Always address the user with the formal second-person ನೀವು/ನಿಮ್ಮ rather than the informal ನೀನು/ನಿನ್ನ. Use the honorific verb form ending in ಮಾಡಿ, ಹೇಳಿ, etc. rather than the plain ಮಾಡು, ಹೇಳು. Use the formal plural ಅವರು for he/she and ಅವರ for him/her.
        - *Source:* "Your information" → *Target:* "ನಿಮ್ಮ ಮಾಹಿತಿ" (not "ನಿನ್ನ ಮಾಹಿತಿ")
        - *Source:* "Make a call" → *Target:* "ಕರೆ ಮಾಡಿ" (not "ಕರೆ ಮಾಡು")
      
      ## Date And Time
      
      - **Date Format DD/MM/YYYY; Keep AM/PM in English**: Format dates as DD/MM/YYYY or in the form '12ನೇ ಮಾರ್ಚ್ 2023' (for 12th March 2023). Always write the month name in Kannada when it is spelled out. Keep AM/PM labels in English as per the source. For time ranges, use a hyphen (e.g., 9 am - 6 pm) to avoid space and suffix issues.
        - *Source:* "March 12, 2023" → *Target:* "12 ಮಾರ್ಚ್ 2023"
        - *Source:* "9 am to 6 pm" → *Target:* "9 am - 6 pm"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language**: Use the honorific form to address users generically, which is inherently gender-inclusive in Kannada. Avoid gendered terms whenever possible; prefer neutral terms like ಜನರು (people), ಬಳಕೆದಾರರು (users), or ವ್ಯಕ್ತಿ (person). When gender must be expressed, use both masculine and feminine forms or rephrase.
        - *Source:* "You're becoming a world-building master!" → *Target:* "ನೀವು ವಿಶ್ವ ನಿರ್ಮಾಣದ ಮಾಸ್ಟರ್ ಆಗುತ್ತಿದ್ದೀರಿ!"
      
      ## General Advice
      
      - **Prioritize Readability and Conciseness in Space-Constrained UI**: Kannada translations are generally longer than their sources. In iOS and watchOS contexts, be as concise as possible to avoid truncation. Suppress articles where safe, choose shorter verb variants, and avoid verbose constructions. Abbreviation is the last resort.
        - *Source:* "%@ sent you an email." → *Target:* "%@ ಅವರು ನಿಮಗೆ ಇಮೇಲ್ ಅನ್ನು ಕಳುಹಿಸಿದ್ದಾರೆ." (full) / "%@, ನಿಮಗೆ ಇಮೇಲ್ ಕಳುಹಿಸಿದ್ದಾರೆ" (space-restricted)
      
      ## Grammar
      
      - **No Articles: Do Not Translate 'a/an' as ಒಂದು**: Kannada has no articles. Do not translate English 'a' or 'an' as ಒಂದು (one) unless the meaning genuinely requires the numeral one. Most sentences are grammatically correct and natural without it.
        - *Source:* "Buy a pen" → *Target:* "ಪೆನ್ ಖರೀದಿಸಿ" (not "ಒಂದು ಪೆನ್ ಖರೀದಿಸಿ")
      
      - **Vibhakti (Case Suffixes) with Transliterated and DNT Terms**: Attach case suffixes to transliterated and DNT terms following Kannada Sandhi rules. For Dwitiya Vibhakti (ಅನ್ನು): add a space before ಅನ್ನು if the word ends with virama (್); attach directly (using phonetic Sandhi) if it ends with a vowel. For other cases, use ZWNJ after virama-ending words.
        - *Source:* "Update" (accusative) → *Target:* "ಅಪ್‌ಡೇಟ್ ಅನ್ನು"
        - *Source:* "Face ID" (accusative) → *Target:* "Face IDಯನ್ನು"
        - *Source:* "Finder" (locative) → *Target:* "Finderನಲ್ಲಿ"
      
      - **Pluralization: Use Kannada Suffix ಗಳು for Transliterated Words**: Pluralize transliterated English words using the Kannada suffix ಗಳು (not the English -s). Attach the suffix directly to the word with no space. Exception: app and feature names that are inherently plural in English (e.g., Podcasts, AirPods) should match the source form.
        - *Source:* "Passcodes" → *Target:* "ಪಾಸ್‌ಕೋಡ್‌ಗಳು" (not "ಪಾಸ್‌ಕೋಡ್ಸ್")
        - *Source:* "HomePods" → *Target:* "HomePodಗಳು" (not "HomePod ಗಳು")
      
      - **Syntax: Use Imperative Form for Commands and Buttons**: For user-action buttons, command names, dialog box titles, and instructions, use the imperative verb form. Include a helping verb (ಮಾಡಿ, ನೀಡಿ) where omitting it would create ambiguity. In space-restricted contexts, the helping verb may be dropped.
        - *Source:* "Install" → *Target:* "ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ"
        - *Source:* "Reply" → *Target:* "ಪ್ರತ್ಯುತ್ತರಿಸಿ"
        - *Source:* "Share" → *Target:* "ಹಂಚಿಕೊಳ್ಳಿ"
      
      - **Active vs. Passive Voice**: Follow the voice of the source as closely as possible. Prefer passive constructions when the string is directed at the user without identifying an explicit subject (i.e., when neither 'what' nor 'who' is stated in the string).
        - *Source:* "Updating…" → *Target:* "ಅಪ್‌ಡೇಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"
        - *Source:* "You blocked this contact." → *Target:* "ನೀವು ಈ ಸಂಪರ್ಕವನ್ನು ಬ್ಲಾಕ್ ಮಾಡಿದ್ದೀರಿ."
      
      - **Headings and Titles: Use Nominalized and Infinitive Forms**: Titles should convey as much information as possible about the ensuing text. If the heading begins with a gerund, use a nominalized form in Kannada (e.g., ಮಾಡುವಿಕೆ). If the source title uses an imperative verb (e.g., Make), translate it using the infinitive verb form (e.g., ಮಾಡುವುದು). Use the infinitive form for 'How to' section headings. Titles should be concise and use active nouns.
        - *Source:* "Installing software" → *Target:* "ಸಾಫ್ಟ್‌ವೇರ್ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವಿಕೆ"
        - *Source:* "How to send the file" → *Target:* "ಫೈಲ್ ಅನ್ನು ಕಳುಹಿಸುವುದು ಹೇಗೆ"
        - *Source:* "Make a FaceTime video call" → *Target:* "FaceTime ವೀಡಿಯೊ ಕರೆಯನ್ನು ಮಾಡುವುದು"
      
      ## Interface Elements
      
      - **Category Labels: Countable Items (Common Noun)**: When a category label refers to actual, literal countable items inside an app (rather than the app container itself), treat it as a common noun and apply the native Kannada plural suffix '-ಗಳು'.
        - *Source:* "unread messages" → *Target:* "ಓದದಿರುವ ಸಂದೇಶಗಳು"
      
      - **App Names in Sentences: Use 'ಆ್ಯಪ್' as a Morphological Buffer**: When an app name is used in a sentence, append the generic noun 'ಆ್ಯಪ್' (app) immediately after it. Attach any case suffixes (Vibhakti) directly to 'ಆ್ಯಪ್' to preserve the app name's exact identity and prevent unnatural consonant conjuncts.
        - *Source:* "Go to Settings" → *Target:* "ಸೆಟ್ಟಿಂಗ್ಸ್ ಆ್ಯಪ್‌ಗೆ ಹೋಗಿ"
      
      - **App Names: Use Singular Form for Translated Apps**: When translating app names into Kannada, use the singular form. The native plural suffix '-ಗಳು' strictly denotes a physical count and creates semantic contradictions for app containers. Use the singular form to represent a unified category.
        - *Source:* "Books" → *Target:* "ಪುಸ್ತಕ"
      
      - **App Names: Retain English Plural 's' in Transliterations**: Transliterated app names function as proper nouns and loan words. Treat the English plural marker '-s' as an indivisible part of the proper noun's root identity. Do not replace it with or add Kannada plural suffixes.
        - *Source:* "Settings" → *Target:* "ಸೆಟ್ಟಿಂಗ್ಸ್"
      
      - **UI Categories: Use Native Plural '-ಗಳು' for General Collections**: For general UI elements that function as common nouns representing a collection of items, use the native Kannada plural suffix '-ಗಳು' following standard grammar rules.
        - *Source:* "Downloads" → *Target:* "ಡೌನ್‌ಲೋಡ್‌ಗಳು"
      
      - **Key Names and Keyboard Shortcuts**: Transliterate key names (⌘ command → ಕಮಾಂಡ್, ⇧ shift → ಶಿಫ್ಟ್). When a key name is followed by the word 'key', render it as e.g. ಕಮಾಂಡ್ ಕೀ. For keyboard shortcut combinations such as ⌘N, copy them unchanged—do not localize the letter.
        - *Source:* "command key" → *Target:* "ಕಮಾಂಡ್ ಕೀ"
        - *Source:* "⌘N" → *Target:* "⌘N" (unchanged)
      
      ## Terminology
      
      - **Prefer Transliteration Over Archaic Kannada for Technical Terms**: For technical terms that have become part of everyday speech, transliterate rather than translate. Use a natural Kannada term only when it is immediately clear to the target audience. Avoid archaic Sanskritized vocabulary that users will not recognize.
        - *Source:* "Password" → *Target:* "ಪಾಸ್‌ವರ್ಡ್" (not "ಗುಪ್ತಪದ")
        - *Source:* "Update" → *Target:* "ಅಪ್‌ಡೇಟ್" (not "ನವೀಕರಣ")
      
      - **Prefer Natural Kannada for General Terms (Non-App)**: Use a natural, widely understood Kannada term when it is immediately clear to the audience. When a word like 'Books' is used as a general common noun (and not as the singular Apple App name), translate it using the native plural suffix. Avoid archaic Sanskritized vocabulary that users will not recognize.
        - *Source:* "Books" → *Target:* "ಪುಸ್ತಕಗಳು" (widely understood Kannada term)
      
      - **Color Names: Translate Standard Colors**: Translate universally recognized basic colors with established Kannada terms into their direct Kannada equivalents.
        - *Source:* "Red" → *Target:* "ಕೆಂಪು"
      
      - **Color Names: Transliterate Coined Colors**: Consistently transliterate coined color names designed for specific aesthetic or marketing purposes to maintain brand identity and marketing appeal.
        - *Source:* "Midnight Black" → *Target:* "ಮಿಡ್‌ನೈಟ್ ಬ್ಲ್ಯಾಕ್"
      
      - **Color Names: Do Not Translate Proprietary Brand Colors**: Leave proprietary or brand-specific color names in English to maintain brand identity and avoid naming conflicts, especially when indicated by an engineering comment.
        - *Source:* "Bleu Pastel" → *Target:* "Bleu Pastel"
      
      - **Transliteration: Follow Indian/UK English Pronunciation**: When transliterating, use Indian or UK English equivalents as the reference pronunciation rather than American English. The standard reference is the Oxford Dictionary of English (ODE). For example, use Network Provider instead of Carrier, Mobile instead of Cellular and Full-stop instead of Period.
        - *Source:* "Carrier" → *Target:* "ನೆಟ್‌ವರ್ಕ್ ಪೂರೈಕೆದಾರರು"
        - *Source:* "Carrier Network" → *Target:* "ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್"
      
      ## Measurements
      
      - **Keep Electronic/Computer Units in English; Translate Expanded Forms**: Units related to electronics and computing (MB, GB, TB, 720p, 4K) should remain in English as per the source. For other units with expanded Kannada equivalents (e.g., kilometer → ಕಿಲೋಮೀಟರ್), translate the full form and keep the abbreviation in English in parentheses.
        - *Source:* "Kilometer (km)" → *Target:* "ಕಿಲೋಮೀಟರ್ (km)"
        - *Source:* "Gigabyte (GB)" → *Target:* "ಗಿಗಾಬೈಟ್ (GB)"
      
      ## Numerals
      
      - **Use International Numerals; Spell Out Numbers in Context**: The system default for Kannada is international numerals. Use numerals (420) in scientific, technical, statistical, and UI contexts. Spell out numbers in full (ನಾಲ್ಕು ನೂರಾ ಇಪ್ಪತ್ತು) when appropriate to the prose context. Follow the source format as a guide.
        - *Source:* "10th" → *Target:* "10ನೇ"
        - *Source:* "Ten" → *Target:* "ಹತ್ತು"
      
      - **Apply Indian Comma Grouping System for Large Numbers**: The Indian comma system must be used for large numbers - commas are placed after thousands, then lakhs and crores (e.g. 10,00,000 not 1,000,000). Hard-coded numbers must always be in international numeral form (0-9). Always leave a space between a number and the following word or unit.
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 ಹಾಡುಗಳು"
      
      ## Special Characters
      
      - **Use ಮತ್ತು Instead of & in Kannada Text**: When you render a phrase in Kannada script — whether you translate or transliterate it — write 'and' as ಮತ್ತು, never the ampersand (&). This applies even to English phrases you transliterate (both examples below are English, and both take ಮತ್ತು). A literal & survives only inside a name kept verbatim in Latin script (a brand or product name you are not transliterating), where the & sits between Latin-script words rather than Kannada ones.
        - *Source:* "Display & Brightness" → *Target:* "ಡಿಸ್‌ಪ್ಲೇ ಮತ್ತು ಬ್ರೈಟ್‌ನೆಸ್"
        - *Source:* "Sounds & Haptics" → *Target:* "ಸೌಂಡ್ಸ್ ಮತ್ತು ಹ್ಯಾಪ್ಟಿಕ್ಸ್"
      
      ## Transliteration (Indian/UK English Pronunciation)
      
      - **Map Starting Flat 'a' Sound (/æ/)**: When a word starts with an 'a' that makes a flat /æ/ sound (e.g., App, Access, Apple) with no preceding consonant, use the special vowel combination ಆ್ಯ.
        - *Source:* "App" → *Target:* "ಆ್ಯಪ್"
      
      - **Map Flat 'a' Sound (/æ/)**: When the letter 'a' makes a flat /æ/ sound after a consonant (e.g., Tap, Tag), use the ya-vattu suffix ್ಯಾ.
        - *Source:* "Tap" → *Target:* "ಟ್ಯಾಪ್"
      
      - **Map Long 'ah', Short 'o', and 'aw' Sounds (/ɑː/, /ɒ/, /ɔː/)**: When 'a' or 'o' makes a long 'ah' (/ɑː/ e.g., Bar), short 'o' (/ɒ/ e.g., Lock), or 'aw' (/ɔː/ e.g., Install) sound, use the Deergha suffix ಾ.
        - *Source:* "Lock" → *Target:* "ಲಾಕ್"
      
      - **Map Starting Schwa 'A' Sound (/ə/)**: When a word starts with an 'A' that makes a soft 'uh' sound (schwa /ə/, e.g., Alert, Account), use the standard short vowel ಅ.
        - *Source:* "Alert" → *Target:* "ಅಲರ್ಟ್"
      
      - **Map Long 'o' Sound (/oʊ/)**: When 'o' makes a long 'oh' sound (/oʊ/ e.g., Home, Phone), use the Othvasudeergha suffix ೋ.
        - *Source:* "Phone" → *Target:* "ಫೋನ್"
      
      - **Map 'Sa' and 'Sha' Sounds**: Map the 's' sound (/s/) to ಸ, the 'sh' sound (/ʃ/) to ಶ, and the retroflex 'sh' sound (e.g., Washington) to ಷ.
        - *Source:* "Sheet" → *Target:* "ಶೀಟ್"
      
      - **Map 'Ja', 'Za', and 'Fa' Sounds**: Map the 'j' sound (/dʒ/, including soft 'g' like Digit) to ಜ. Map the 'z' sound to ಝ. Map the 'f' or 'ph' sound to ಫ.
        - *Source:* "Format" → *Target:* "ಫಾರ್ಮ್ಯಾಟ್"
      
      - **Map Short and Long 'i' Sounds (/ɪ/, /iː/)**: Map short 'i' sounds (/ɪ/, /iː/ e.g., Click, Kit) to Gudisu ಿ. Map long 'ee' sounds (e.g., Sheet, Screen) to Gudisina Deergha ೀ.
        - *Source:* "Click" → *Target:* "ಕ್ಲಿಕ್"
      
      - **Map Diphthong 'i' Sound (/aɪ/)**: When 'i' makes an 'eye' sound (/aɪ/ e.g., File, Icon), use the Aithva suffix ೈ or the standalone vowel ಐ.
        - *Source:* "File" → *Target:* "ಫೈಲ್"
      
      - **Map Short and Long 'u' Sounds (/ʊ/, /uː/)**: Map short 'u' sounds (/ʊ/, /uː/ e.g., Put, Push) to Kombu ು. Map long 'oo' sounds (e.g., Zoom, Tool) to Kombina Deergha ೂ.
        - *Source:* "Zoom" → *Target:* "ಝೂಮ್"
      
      - **Map Short 'uh' Sound (/ʌ/)**: When 'u' makes a short 'uh' sound (/ʌ/ e.g., Button, Custom), do not use Kombu (ು). Rely on the inherent 'a' sound (ಅ) of the Kannada consonant.
        - *Source:* "Button" → *Target:* "ಬಟನ್"
      
      - **Map 'yoo' Sound (/juː/)**: When 'u' makes a 'yoo' sound (/juː/ e.g., Mute), use ಯೂ at the start of a word or the ್ಯೂ suffix after a consonant.
        - *Source:* "Mute" → *Target:* "ಮ್ಯೂಟ್"
      
      ## Tone And Voice
      
      - **Smart but Casual Tone in Written Colloquial Style**: Use a written colloquial Kannada style that balances spoken and written language, making translations sound natural to urban and semi-urban Kannada speakers. The tone should be simple, clear, professional, and friendly — never heavy, stiff, or arrogant. Write short, easy-to-read sentences.
      
      ## URL And Links
      
      - **Do Not Attach Suffixes Directly to URLs**: When localizing URL addresses, avoid placing Zero width non-joiners (ZWNJ) or suffixes directly adjacent to the URL link. This practice can cause the URL to become non-functional and non-clickable, blocking the user experience. Instead, use a buffer word like 'ಎಂಬಲ್ಲಿಗೆ'.
        - *Source:* "Visit www.apple.com" → *Target:* "www.apple.com ಎಂಬಲ್ಲಿಗೆ ಭೇಟಿ ನೀಡಿ"
      
      ## Variables
      
      - **Preserve Variables; Reorder with Positional Markers if Needed**: Keep all variable tokens (e.g., %@, %1$@) intact. If the natural Kannada word order differs from the source, add or retain positional markers (%1$@, %2$@) on every variable. For person-name variables, add ಅವರು after the variable; for date variables, add ದಿನಾಂಕ; for app variables, add ಆ್ಯಪ್.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%3$@ ಆಡುವ ಮೂಲಕ %2$@ ಎಂಬಲ್ಲಿ %1$@ ಅವರು ಗಳಿಸಿದ ಸ್ಕೋರ್ ಅನ್ನು ನೋಡಿ"
      
      - **Variables: Add 'ದಿನಾಂಕ' as Buffer for Dates**: When translating strings with date variables in running sentences, add 'ದಿನಾಂಕ' next to the variable. Attach any required grammatical suffixes directly to 'ದಿನಾಂಕ' rather than the variable itself.
        - *Source:* "You earned this award for completing a marathon on %@." → *Target:* "%@ ದಿನಾಂಕದಂದು ಮ್ಯಾರಥಾನ್ ಅನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದಕ್ಕಾಗಿ ನೀವು ಈ ಅವಾರ್ಡ್ ಅನ್ನು ಗಳಿಸಿದ್ದೀರಿ."
      
      - **Variables: Add 'ಸಮಯ' as Buffer for Time**: When translating strings with time variables in running sentences, add 'ಸಮಯ' next to the variable. Attach any required grammatical suffixes directly to 'ಸಮಯ' rather than the variable itself.
        - *Source:* "Tomorrow at %2$@" → *Target:* "ನಾಳೆ %2$@ ಸಮಯಕ್ಕೆ"
      
      - **Variables: Add 'ಅವರು' as Buffer for Person Names**: When translating strings with person name variables in running sentences, add the honorific 'ಅವರು' next to the variable. Attach any required grammatical suffixes directly to 'ಅವರು' rather than the variable itself.
        - *Source:* "%@ Edited" → *Target:* "%@ ಅವರು ಎಡಿಟ್ ಮಾಡಿದ್ದಾರೆ"
      
      - **Variables: Add 'ಆ್ಯಪ್' as Buffer for App Names**: When translating strings with app variables in running sentences, add 'ಆ್ಯಪ್' next to the variable. Attach any required grammatical suffixes directly to 'ಆ್ಯಪ್' rather than the variable itself.
        - *Source:* "Welcome to %@" → *Target:* "%@ ಆ್ಯಪ್‌ಗೆ ಸುಸ್ವಾಗತ"
      
    • styleguide_ko.md 13 KB
      # Korean (ko) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Korean uses curly double quotation marks “ (\u201C) and ” (\u201D) for dialogue and direct quotes, and curly single quotation marks ‘ (\u2018) and ’ (\u2019) for UI element references or emphasis.
        - *Source:* "Tap \u201CPrivacy\u201D." → *Target:* "\u2018개인정보 보호\u2019를 탭하십시오."
      
      ## Tone And Voice
      
      - **Smart but Casual; Verb Ending Based on Sentence Function**: Choose the verb ending based on the sentence's function. For descriptive sentences (stating facts), use the formal declarative form ~ㅂ니다 (합쇼체). For imperative sentences (instructing the user), use the standard polite imperative ~세요 (해요체) or ~하십시오. 해요체 is preferred for navigation UI such as Maps and VoiceOver navigation, and for friendly contexts like 'What's New' onboarding screens and Apple Watch achievement notifications. 하십시오체 is preferred in highly formal legal disclaimers or system warnings where an authoritative tone is required.
        - *Source:* "Start enjoying these features today." → *Target:* "지금 바로 이 기능을 즐겨 보세요."
      
      ## Addressing Users
      
      - **Addressing 'You/Your' as 사용자**: Render 'user', 'you', and 'your' as 사용자 in standard software strings. 사용자 may be omitted when context makes the subject obvious. Use 여러분 for a warmer, more personal tone in marketing-style text. Do not use 당신 as a pronoun for the user. Exception: when 'you/your' is addressed from the perspective of another user (not this app)—for example, in a message a user is composing to send to someone else—당신 is acceptable.
        - *Source:* "This %@ account has already been added to your Apple Watch." → *Target:* "이 %@ 계정이 이미 사용자의 Apple Watch에 추가되어 있습니다."
        - *Source:* "You're added as my Account Recovery contact." → *Target:* "당신을 제 계정 복구 연락처로 추가했습니다."
      
      ## Abbreviations
      
      - **Keep English Abbreviations Unless a Korean Form Is Standard**: Do not create Korean abbreviations for UI strings. Keep familiar English abbreviations unchanged. If the source provides an explanation, translate it; do not add one the source doesn't include. A small number of abbreviations have required Korean forms, such as AM/PM → 오전/오후 and US → 미국.
        - *Source:* "AM/PM" → *Target:* "오전/오후"
        - *Source:* "US" → *Target:* "미국"
      
      ## Acronyms
      
      - **Handle Acronyms**: Do not translate acronyms unless there is a standard localized equivalent. If the source spells out the acronym (e.g. the full phrase in parentheses), translate that; do not add an expansion the source doesn't provide.
        - *Source:* "DRM (Digital Right Management)" → *Target:* "DRM (디지털 저작권 관리)"
      
      ## Date And Time
      
      - **Korean Date and Time Format**: Add Korean date units and adjust word order to match the system standard. Express time with Korean AM/PM (오전/오후) before the numeral. Dates follow the YYYY년 MM월 DD일 pattern.
        - *Source:* "4:44 PM" → *Target:* "오후 4:44"
        - *Source:* "2010/6/14" → *Target:* "2010년 6월 14일"
      
      ## Measurements
      
      - **Inch Localization for Product Names vs. Display Size**: When 'inch' appears as part of a product name (e.g., iPad Pro 13-inch), remove it from the Korean translation. When it describes display size in a spec or marketing context, convert the figure to centimeters and replace 'inch' with 'cm' (this matches Apple's shipped Korean specs, which express display sizes in cm, e.g. 33.0cm).
        - *Source:* "iPad Pro 13-inch" → *Target:* "iPad Pro 13"
        - *Source:* "13-inch (diagonal)" → *Target:* "33.0cm(대각선)"
      
      ## Names And Addresses
      
      - **Use Street Name Address Format (도로명주소)**: A Korean address follows the street name address format (도로명주소) introduced in 2014, not the older parcel number format (지번주소): city/province, district, then road name and building number, with an optional legal dong in parentheses (e.g. "서울특별시 강남구 영동대로 517 (삼성동)"). Korean postal codes consist of 5 digits with no spaces. Foreign addresses are kept as-is.
      
      ## Numerals
      
      - **Arabic Numerals Are Not Translated; Spell Out Korean Numerals When Required**: Do not translate Arabic numerals (1 stays 1). When numbers are written out as words in the source (one, two, three), you are allowed to localize them into Korean spoken-number form (하나, 둘, 셋) or Sino-Korean form (일, 이, 삼) as appropriate to the context.
        - *Source:* "You\u2019ll see your Year in Review as soon as you have at least 1 book marked as finished." → *Target:* "최소 1권의 책을 읽기 완료로 표시하면 \u2018한 해 돌아보기\u2019를 확인할 수 있습니다."
      
      ## Special Characters
      
      - **Always Use the Ellipsis Character, Not Three Periods**: Use the single ellipsis character (…, typed Option-;) everywhere. Three individual periods are not equivalent visually or functionally and should not be used. Unify any inconsistent source usage to the ellipsis character.
        - *Source:* "Loading..." → *Target:* "로드 중…"
      
      ## Grammar
      
      - **DNT Terms: Use Singular Capitalized Form for Software Feature Names**: When a software feature-name DNT (e.g., 'Live Photo/Live Photos') appears in both singular and plural forms in the source, use the singular capitalized form consistently in translation.
        - *Source:* "Save %@ Live Photos" → *Target:* "%@장의 Live Photo 저장"
      
      - **DNT Terms: Follow the Singular/Plural Forms in the Source for Hardware DNT Terms**: If a hardware DNT appears in both singular and plural forms, follow the form used in the source (e.g., AirPod/AirPods).
        - *Source:* "Select your AirPods" → *Target:* "AirPods 선택"
      
      - **DNT Terms: Keep Plural Form for DNT Terms in Plural Forms in All Instances**: If a DNT only has plural form, keep this Plural form in all instances, e.g. iTunes Extras, iTunes, AirTunes, iBooks, Beats, Apple Ads, etc.
      
      - **Proper Korean Suffixes After DNT Terms**: Attach Korean grammatical suffixes to DNT terms based on the Korean phonetic pronunciation of the transliteration. For example, 'HomeKit' is pronounced 홈키트, so the correct forms are HomeKit가, HomeKit는, HomeKit를, HomeKit로.
        - *Source:* "CarPlay.app uses homekit for dashboard features" → *Target:* "CarPlay.app은 대시보드 기능에 HomeKit를 사용합니다."
      
      - **Proper Korean Suffixes After DNT Terms (Plural)**: Phonetic pronunciation of hardware DNT terms in plural form should follow the singular form. Make sure it’s followed by the correct postpositional particles (e.g. Both “AirPod” and “AirPods” will be pronounced “에어팟”)
        - *Source:* "Adjust the duration required to press and hold on your AirPods." → *Target:* "AirPods을 길게 누를 때 필요한 시간을 조절합니다."
      
      ## Capitalization
      
      - **DNT Terms: Match the Source if DNT Terms in All Caps**: If a DNT term is all caps in the source, keep all caps in translation.
        - *Source:* "DIGITAL CROWN" → *Target:* "DIGITAL CROWN"
      
      - **DNT Terms: Use Capitalized Form Consistently**: Use capitalized form consistently, if a DNT term is used inconsistently in the source.
        - *Source:* "wifi / wi-fi / Wifi / WiFi / Wi-Fi" → *Target:* "Wi-Fi"
      
      ## Punctuation
      
      - **Using a Non-breaking Space for DNT with Two or More Words**: DNT terms comprised of two or more words should stay together for better readability. To this end, add a non-breaking space as necessary between words in DNT terms.
        - *Source:* "Apple Watch" → *Target:* "Apple Watch" (non-breaking space between the words)
      
      - **Period Use with Korean Sentences**: Add a period when the Korean translation ends with a complete verb form (~다, ~시오). Omit the period when the translation ends with a noun or noun-form suffix (~하기, ~ㅁ), even if the English sentence had a period.
        - *Source:* "Please Try Again" → *Target:* "다시 시도하십시오."
      
      - **Do Not Use Semicolons in Korean**: Korean does not use semicolons. Replace a source semicolon with a period, a comma, or omit it entirely, choosing the approach that produces the most natural Korean sentence.
        - *Source:* "Only the table you're currently in is affected; other tables will still use the setting." → *Target:* "현재 사용 중인 표에만 적용됩니다. 다른 표는 기존 설정을 계속 사용합니다."
      
      - **Colon at End of a Complete Sentence Becomes a Period**: If a Korean sentence ends with a complete verb and the source ends in a colon, replace the colon with a period in the translation. A colon may be kept if the sentence ends in a noun or noun-form suffix.
        - *Source:* "Please refer to the Apple support page: www.apple.com/compatibility" → *Target:* "Apple 지원 페이지(www.apple.com/compatibility)를 참조하십시오."
      
      - **Korean Quotation Mark Style: Curly Quotes**: Use curly double quotation marks for dialogue and direct quotes, and curly single quotation marks for UI element references or emphasis. Never use straight typewriter quotes.
        - *Source:* "You can review this information by going to Settings on your iOS device, tapping Privacy, tapping Analytics and looking under Analytics Data." → *Target:* "관련 정보는 iOS 기기에서 설정으로 이동하여 \u2018개인정보 보호\u2019, \u2018분석\u2019을 차례로 탭한 다음 \u2018분석 데이터\u2019에서 확인할 수 있습니다."
      
      - **No Space Before the Honorific Suffix 님**: Although standard Korean grammar places a space before 님, do not insert one in translations. This prevents text clipping and orphan-character issues and is standard practice in the Korean IT industry.
        - *Source:* "%@ has joined this chat." → *Target:* "%@님이 이 대화방에 들어왔습니다."
      
      ## Interface Elements
      
      - **Button and Menu Names: Change Verbs to Noun Form**: When a button, menu item, command, or option name contains a verb, convert it to the corresponding Korean verbal nouns (Sino-Korean or derived nouns, gerund form) in the translation when applicable.
        - *Source:* "Add" → *Target:* "추가"
        - *Source:* "Open" → *Target:* "열기"
        - *Source:* "Don't use" → *Target:* "사용 안 함"
      
      - **Tooltip Style: ~합니다. with Full Stop**: Tooltips should use the ~합니다 verb form and end with a full stop, even if the source does not. Keep the translation clear and brief. Look for the cue from the engineering comment mentioning “tooltip”.
        - *Source:* "Show contents in grid view" → *Target:* "목차를 격자 보기로 표시합니다."
      
      ## Variables
      
      - **Variable Orders**: When the source string contains two identical variables (%@ %@) and the order needs to change in the target language, the variables can be changed to %1$@ and %2$@ to indicate the original variable order.
        - *Source:* "%@ near %@" → *Target:* "%2$@ 근처의 %1$@"
      
      ## General Advice
      
      - **Age References: Do Not Use 만 Prefix**: As of June 2023, Korean officially adopted the international age counting system, so do not add the 만 prefix before age numbers in translations. Translate ages directly without 만, and remove 만 from any existing strings that previously used it for international age clarification.
        - *Source:* "The Blood Oxygen app is available for users age 18 and above." → *Target:* "혈중 산소 앱은 18세 이상의 사용자를 대상으로 합니다."
      
      ## Diversity And Inclusion
      
      - **Avoid Violent, Oppressive, and Ableist Language**: Do not translate technology terms using inherently violent words (kill, hang) or terms describing oppressive relationships (master/slave). Avoid 제거 when referring to a person; use 삭제 instead. Korean has no gendered pronouns by default—avoid imported gendered forms like 그녀 where gender-neutral language suffices.
        - *Source:* "Remove Yourself?" → *Target:* "사용자 본인을 삭제하겠습니까?"
      
      ## Terminology
      
      - **Application vs. App Terminology**: 'Application(s)' should be translated as 응용 프로그램. 'App(s)' should always be translated as 앱 in singular form. The term 'OK' translates as 확인 (not 승인 as in earlier usage), 'Document' as 문서 (not 도큐멘트), and 'Passkey' as 패스키 (not 암호키).
        - *Source:* "App" → *Target:* "앱"
        - *Source:* "Application" → *Target:* "응용 프로그램"
      
      ## Translation Style
      
      - **Use Active Voice and Direct Sentence Structure**: Prefer active voice over passive voice when context allows and meaning is preserved—it makes the actor of the action clear and the sentence more direct. For call-to-action sentences, prefer Object > Verb structure that presents the action directly (e.g., '이 팁을 활용하여 보세요') over indirect framing (e.g., '저장을 위해 이 팁을 보세요').
        - *Source:* "Face ID will be required to open this app." → *Target:* "이 앱을 열려면 Face ID가 필요합니다."
      
      ## Standardized Translations
      
      - **Welcome Translations**: Use the standardized translation for 'Welcome' based on context: '~ 시작하기' for software menus/titles and '~의 사용을 환영합니다.' for phrases.
        - *Source:* "Welcome to Game Center" → *Target:* "Game Center 시작하기"
      
    • styleguide_lt.md 10.4 KB
      # Lithuanian (lt) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Lithuanian uses low-high quotation marks „ (\u201E) as the opening mark and ” (\u201D) as the closing mark, and the curly apostrophe ’ (\u2019).
        - *Source:* "Click \u201CApp Store\u201D." → *Target:* "Spustelėkite \u201EApp Store\u201D."
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The overall tone should be neutral and descriptive — closer to formal than informal, but never stiff or stilted. Avoid trendy slang and hip expressions. Prefer established Lithuanian vocabulary over English loan words wherever a natural Lithuanian equivalent exists.
        - *Source:* "Get your iChat Account" → *Target:* "Sukurti \u201EiChat\u201D paskyrą" (not "Gauti \u201EiChat\u201D paskyrą")
      
      ## Addressing Users
      
      - **Address Users with Formal jūs**: Always use the formal second-person pronoun jūs and its declensions. Write jūs, jūsų, jums in lower case, unless it's the very first word of a sentence or a phrase. Avoid repeating the pronoun where Lithuanian naturally omits it.
        - *Source:* "Your settings" → *Target:* "Jūsų nustatymai"
      
      - **Use Gender-Neutral Naudotojas**: To sidestep gender agreement issues, use the word Naudotojas (User) instead of gendered forms. When a neutral construction is impossible, masculine gender serves as the generic form in Lithuanian. Only switch to the informal tu when strings are explicitly addressed to children or close friends and family.
        - *Source:* "Do you really want to call this group?" → *Target:* "Ar tikrai skambinti šiai grupei?" (not "Ar tikrai norite skambinti šiai grupei?" when addressing children)
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software; Use Lithuanian Equivalents**: Do not abbreviate UI strings unless all other workarounds have failed and space genuinely cannot be increased. When a commonly accepted Lithuanian abbreviation exists for an English one, use it consistently.
        - *Source:* "e.g." → *Target:* "pvz."
        - *Source:* "etc." → *Target:* "ir t. t."
      
      ## Date And Time
      
      - **Use ISO Date Format and 24-Hour Time**: Write dates in YYYY-MM-DD format (e.g., 2023-01-01). Use 24-hour time with a period as the separator (e.g., 16.30). Keep AM/PM in English (don't translate it) only when the string is itself the 12-hour time-format label — that is, when AM/PM is the actual text being displayed. Otherwise, convert to 24-hour time.
        - *Source:* "January 1, 2023" → *Target:* "2023-01-01"
        - *Source:* "4:30 PM" → *Target:* "16.30"
      
      - **Abbreviated Day and Month Names**: Abbreviate days of the week using the approved single-letter codes: P (pirmadienis), A (antradienis), T (trečiadienis), K (ketvirtadienis), Pn (penktadienis), Š (šeštadienis), S (sekmadienis). For months use three-letter abbreviations: Sau, Vas, Kov, Bal, Geg, Bir, Lie, Rgp, Rgs, Spa, Lap, Gru.
        - *Source:* "Monday" → *Target:* "P"
        - *Source:* "January" → *Target:* "Sau"
      
      ## Measurements
      
      - **Convert Imperial to Metric; Use Non-Breaking Space**: Convert descriptive or incidental imperial measurements to metric (e.g., inches to centimeters) when they appear in sentences. Exception: keep product display and screen sizes in inches (colių), matching Apple's shipped Lithuanian conventions. Never use the double-quote symbol as an abbreviation for inch. Separate the numerical value from the unit symbol with a non-breaking space.
        - *Source:* "100 m" → *Target:* "100 m"
        - *Source:* "30 min." → *Target:* "30 min."
        - *Source:* "13-inch display" → *Target:* "13 colių ekranas" (display size stays in inches)
      
      - **Lithuanian Unit Abbreviations**: Use Lithuanian abbreviations for time units: min. (minute, with full stop), val. (hour), s (second). Use uppercase B for bytes (KB, MB, GB) and lowercase b for bits (Kb, Mb, Gb). Replace the English 'per' indicator with a slash in combined units.
        - *Source:* "kbps" → *Target:* "Kb/s"
        - *Source:* "FPS" → *Target:* "kadr./s"
      
      ## Numerals
      
      - **Thousand Separator and Decimal Mark**: For numbers of five or more digits, use a non-breaking space as the thousand separator. Use a comma as the decimal mark (e.g., 1000,24 EUR). Version numbers retain a period (e.g., OS X 10.9). Replace the 'v' prefix with the word versija.
        - *Source:* "10,000 songs" → *Target:* "10 000 dainų"
        - *Source:* "Requires OS X v10.8.2." → *Target:* "Reikia \u201EOS X 10.8.2\u201D versijos."
      
      ## Special Characters
      
      - **Replace # with Nr. and & with ir**: The hash sign # is not used in Lithuanian to indicate numerals; replace it with Nr. followed by a non-breaking space. The ampersand & is also not used in general text; replace it with the Lithuanian word ir. Keep & only when it is part of a registered trademark or product name.
        - *Source:* "Track #5" → *Target:* "Takelis Nr. 5"
        - *Source:* "Display & Brightness" → *Target:* "Ekranas ir ryškumas"
      
      ## Punctuation
      
      - **Use Lithuanian Quotation Marks**: Enclose UI element names, feature names, product names, and citations in Lithuanian low-high quotation marks „ (\u201E) and ” (\u201D). Do not use straight quotes or English-style curly quotes. In a keyboard shortcut, wrap a named key such as Ctrl or Shift in „ ” (\u201E \u201D); leave single-letter keys and the connecting + unquoted (correct: „Ctrl” + C; incorrect: „Ctrl” + „C”).
        - *Source:* "Click \u201CApp Store\u201D." → *Target:* "Spustelėkite \u201EApp Store\u201D."
        - *Source:* "Press Ctrl+C" → *Target:* "Paspauskite \u201ECtrl\u201D + C."
      
      - **Dash vs. Hyphen Usage**: Use the en dash (–) for ranges (2021–2023), bilateral relations (pirkimo–pardavimo sutartis), and minus signs (–5 °C). Use a hyphen only in brand names that contain one (Wi-Fi), date formats (2023-01-01), and letter-digit groups. Do not substitute a hyphen for a dash or vice versa.
        - *Source:* "2021-2023" → *Target:* "2021–2023"
      
      ## Grammar
      
      - **Lithuanian Capitalization — Lowercase in Mid-Sentence**: Lithuanian does not capitalize common nouns in the middle of a sentence or in headings, even if the source does. Capitalize only proper names, words at the start of a sentence, and direct references to specific UI features or labels. In a UI item name, only the first word is capitalized.
        - *Source:* "System Preferences" → *Target:* "Sistemos nuostatos"
        - *Source:* "Security & Privacy" → *Target:* "Sauga ir privatumas"
      
      - **Preserve Internal-Capitalization Names**: A term written with internal capitalization (a CamelCase product or feature name — including the developer's own) is usually a name, not a translatable word. Keep it as-is: do not translate, transliterate, or change its casing.
        - *Source:* "PhotoMix" → *Target:* "PhotoMix"
      
      - **Use Participial Constructions to Avoid Clumsy Relative Clauses**: When translating gerunds or participial phrases, prefer an active participial form (imituojančias) over a relative clause with kurios. This produces shorter, more elegant Lithuanian. Adverbial participles should have a clear time reference and logical link to the main verb.
        - *Source:* "Use your iPhone to send Animoji messages that mirror your facial expressions." → *Target:* "Siųskite \u201EAnimoji\u201D žinutes iš \u201EiPhone\u201D, imituojančias jūsų veido išraiškas."
      
      - **Lithuanian Plural Forms in Software Strings**: Lithuanian has four plural forms — one (1, 21, 31…), few (2–9, 22–29…), many (decimal values like 1.2, 1.5…), and other (0, 10–20, 30, 40…). Supply the correct Lithuanian plural ending for each form.
        - *Source:* "1 player / 2 players / 10 players" → *Target:* "1 žaidėjas / 2 žaidėjai / 10 žaidėjų"
      
      ## Interface Elements
      
      - **Button Names as Verbs; Menu Names as Nouns**: Buttons and dialog box actions must be translated as infinitive verbs (Atšaukti, Atidaryti, Diegti). Main menu bar items are nouns (Peržiūra, Pagalba). Submenu items that lead directly to an action are verbs in infinitive form (Kopijuoti). Window titles must be noun phrases, never verb phrases.
        - *Source:* "Cancel" → *Target:* "Atšaukti"
        - *Source:* "View" (menu) → *Target:* "Rodyti"
      
      - **Add Premodifiers for DNT Terms in Oblique Cases**: When a DNT term such as an app name must appear in a grammatical case that Lithuanian signals with a preposition, add an appropriate context word after the DNT term rather than inflecting it. This prevents ambiguous or grammatically incorrect constructions.
        - *Source:* "The app in the Dock." → *Target:* "Programa yra \u201EDock\u201D juostoje" (not "\u201EDock\u201D.")
        - *Source:* "If data is not in iCloud" → *Target:* "Jei duomenys nėra \u201EiCloud\u201D debesyje"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks or Product Names**: Trademarks, slogans, and product names must remain in English. Use non-breaking spaces within multi-word DNT terms (Time Capsule, iPod touch) to prevent unwanted line breaks. For very long DNT strings such as Apple Pro Display XDR, do not place a non-breaking space after the company name itself.
        - *Source:* "Time Capsule" → *Target:* "Time Capsule"
      
      ## Variables
      
      - **Number Variables When Reordering; Preserve %% in Percent Strings**: If Lithuanian word order requires moving variables, add positional markers (e.g., %1$@, %2$@) to all variables in that string. In software strings, %% represents a literal percent sign and must not be changed to %. Separate %% from the numeric variable with a non-breaking space.
        - *Source:* "%.0f%% completed" → *Target:* "Baigta: %.0f %%"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language; Avoid Gendered Pronouns**: Avoid gender-specific constructions wherever possible. Rewrite sentences using infinitive structures (Norint padaryti…) or the neutral Naudotojas form instead of masculine or feminine verb agreement. For non-binary references following a singular 'they', use phrases like šis žmogus.
        - *Source:* "If you have doubts, you can always talk to an adult you trust, and they will help you." → *Target:* "Jei abejoji, visada gali pasikalbėti su suaugusiuoju, kuriuo pasitiki. Šis žmogus padės tau priimti tinkamą sprendimą."
      
      - **Prefer People-First Language for Disability**: Avoid labels like aklas (blind) or invalidas (disabled). Instead use people-first or neutral terms: silpnaregis (visually impaired), neįgalusis, žmogus su negalia. Focus on what people can do rather than assumed limitations.
        - *Source:* "blind user" → *Target:* "silpnaregis naudotojas"
      
    • styleguide_ml.md 15.7 KB
      # Malayalam (ml) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Malayalam uses single curly quotation marks ‘ (\u2018) and ’ (\u2019) for UI feature references, double curly quotation marks “ (\u201C) and ” (\u201D) for nested quotes, and the curly apostrophe ’ (\u2019).
        - *Source:* "Hold Select to clear" → *Target:* "മായ്ക്കാൻ, \u2018തിരഞ്ഞെടുക്കൂ\u2019 അമർത്തി പിടിക്കൂ"
      
      ## Tone And Voice
      
      - **Smart but casual**: Use a written colloquial Malayalam — a fine balance between spoken and formal written language — that sounds natural and is closer to formal than informal. Do not use words that are very hip or trendy; keep a neutral, descriptive style. Follow the style of respected Malayalam publications, which blend formal and colloquial Malayalam effectively.
        - *Source:* "%@ may not have arrived at their destination yet." → *Target:* "%@ ലക്ഷ്യസ്ഥാനത്ത് ഇതുവരെ എത്തിയിട്ടുണ്ടാവില്ല."
      
      - **Prefer Transliteration Over Unnatural or Archaic Malayalam Terms**: When a Malayalam equivalent is archaic, obscure, or not widely used in its specific context, transliterate the English term instead. Common technical terms like Desktop, Click, Menu, Installation should be transliterated because Malayalam users encounter them in that form daily.
        - *Source:* "Installation" → *Target:* "ഇൻസ്റ്റലേഷൻ (not സ്ഥാപിക്കൽ)"
      
      ## Command Verb Form
      
      - **The verb form**: UI command labels (buttons, menu commands) use the semi-formal imperative ‘ചെയ്യൂ’. Avoid the longer തിരഞ്ഞെടുക്കുക form to save space.
        - *Source:* "Select a network connection" → *Target:* "ഒരു നെറ്റ്‌വ൪ക്ക് കണക്ഷൻ തിരഞ്ഞെടുക്കൂ"
      
      ## Addressing Users
      
      - **Address Users with Semi-Formal നിങ്ങൾ**: Use നിങ്ങൾ, നിങ്ങളുടെ, and നിങ്ങൾക്ക് for the English words you and your. This is the appropriate semi-formal register for all user-facing content. Omit the pronoun in sentences where Malayalam naturally drops it to keep text concise and natural.
        - *Source:* "You're sending info about websites you visit to Apple" → *Target:* "സന്ദർശിക്കുന്ന വെബ്‌സൈറ്റുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ നിങ്ങൾ Apple-ലേക്ക് അയയ്ക്കുന്നു"
      
      ## Abbreviations
      
      - **Abbreviation Rules for Malayalam Words and Units**: Abbreviated Malayalam words end with a period unless the abbreviated form has become an accepted standalone word (e.g., ഡോ., ഉദാ.). Commonly accepted English acronyms such as TV and SMS may be written in Malayalam script without full stops (ടിവി, എസ്എംഎസ്). All other abbreviations stay in English as in the source.
        - *Source:* "Dr." → *Target:* "ഡോ."
      
      ## Acronyms
      
      - **Keep Acronyms in English Unless a Common Malayalam Equivalent Exists**: Acronyms like WiMAX and LAN that have no common Malayalam equivalent should remain in English. Acronyms that have effectively become Malayalam words (e.g., LASER) do not need to be kept in English. Technical file format abbreviations (PDF, RTF, DOC) must never be translated or transliterated.
        - *Source:* "LAN" → *Target:* "LAN"
        - *Source:* "LASER" → *Target:* "ലേസർ" (acronym that has become a Malayalam word)
      
      ## Date And Time
      
      - **Date Format and Month/Day Names**: Write dates as DD Month YYYY in Malayalam (e.g., 03 ഓഗസ്റ്റ് 2001). Do not use numeric-only formats like 03.08.2001. Do not translate or localize AM/PM — keep it in English, matching source capitalization. Do not add Malayalam plural suffixes to units of time (use മൂന്ന് മണിക്കൂർ, not മൂന്ന് മണിക്കൂറുകൾ).
        - *Source:* "August 3, 2001" → *Target:* "3 ഓഗസ്റ്റ് 2001"
      
      ## Measurements
      
      - **Retain Electronic and Computer Units in English**: Units related to electronics and computing (GB, KB, dB, kbps) must remain in English. Use °C and °F for temperature short forms. Do not convert imperial to metric.
        - *Source:* "8 GB" → *Target:* "8 GB"
      
      ## Numerals
      
      - **Use International Numerals and Indian Separator System**: Keep numerals as international digits (0–9) — do not convert them to native Malayalam numerals. Whether digits ultimately display as international or native is a user setting the translation can't see, so don't change the numeral system yourself. Group large numbers using the Indian separator system (e.g., 10,00,000).
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 പാട്ടുകൾ"
      
      - **Ordinal Numbers Up to Nine Use Full Malayalam Words**: For ordinal numbers up to 9 without variables, write the full Malayalam word (ഒന്നാമത്തെ, രണ്ടാമത്തെ). For numbers above 9 or when a variable is used, attach the suffix with a hyphen (10-ആമത്തെ). Avoid using dotted circle diacritics (1-ാമത്തെ) as they render visibly on UI.
        - *Source:* "1st, 10th" → *Target:* "ഒന്നാമത്തെ, 10-ആമത്തെ"
      
      ## Special Characters
      
      - **Translate & as ആൻഡ്; Use Visarga Correctly**: Do not use the & symbol in Malayalam text. Translate it as ആൻഡ് in fully transliterated phrases where there is no space issue. Use the conjunction ഉം…ഉം (or -ഉം suffix) when linking two Malayalam words. Add visarga (ഃ) wherever it is grammatically required in native words.
        - *Source:* "Display & Brightness" → *Target:* "ഡിസ്പ്ലേയും ബ്രൈറ്റ്‌നസും"
        - *Source:* "Black & White" → *Target:* "ബ്ലാക്ക് ആൻഡ് വൈറ്റ്"
      
      ## Punctuation
      
      - **Use Single Curly Quotes for UI Feature References**: In UI strings, enclose feature names and functionality names in single curly quotes ‘ (\u2018) and ’ (\u2019) when grammatical ambiguity could arise. Use them minimally. For nested quotations, double curly quotes go outside and single curly quotes inside. Never use straight quotes (" ") in UI strings.
        - *Source:* "Hold select to clear" → *Target:* "മായ്ക്കാൻ, \u2018തിരഞ്ഞെടുക്കൂ\u2019 അമർത്തി പിടിക്കൂ"
      
      - **Straight quotes in HTML codes**: Straight quotes appearing in program files or HTML codes should retain as is.
        - *Source:* "Tap Settings <img src="settings_gear.jpg" alt="Gear icon for Settings" width="25" height="25">" → *Target:* "ക്രമീകരണത്തിൽ ടാപ്പ് ചെയ്യൂ <img src="settings_gear.jpg" alt="ക്രമീകരണത്തിന്റെ ഗിയർ ഐക്കൺ" width="25" height="25">"
      
      ## Interface Elements
      
      - **Naming Conventions — Apps and Feature Names**: This rule is applicable exclusively to transliterated app and feature names. Considering them as proper nouns, transliterated app names do not take Malayalam inflectional suffixes. They retain the English plural marker as an integral part of the identifier itself. When the English app name carries no plural marker, the transliteration stands alone without any suffix. This distinction governs all morphological decisions for app names in Malayalam. Malayalam phonology permits the integration of the ‘-സ്’ suffix in single-word transliterations without violating natural pronunciation. Translated names, by contrast, take the grammatically appropriate Malayalam form of the source term.
        - *Source:* "Photos, Maps, Games" → *Target:* "ഫോട്ടോസ്, മാപ്പ്സ്, ഗെയിംസ്"
      
      - **Button Names in Imperative with Helping Verb**: Translate buttons and callout bar items using the semi-formal imperative form with the helping verb ചെയ്യൂ to avoid ambiguity with nouns. Exception — triggered by the source term: when the source string is a single standalone ‘Cut’, ‘Copy’, ‘Paste’, ‘Delete’, or ‘On’/‘Off’, write it without the helping verb.
        - *Source:* "Edit" → *Target:* "എഡിറ്റ് ചെയ്യൂ"
      
      - **Naming Conventions — Generic Collections**: Transliterated nouns must follow Malayalam plural suffixes (കൾ, ക്കൾ, ങ്ങൾ), not English plurals. When a category label describes a generic collection of items, it is a common noun and must always take the appropriate Malayalam suffix, regardless of whether it is transliterated or translated. Use വീഡിയോകൾ (not വീഡിയോസ്).
        - *Source:* "Apps, Widgets, Playlists, Tabs, Filters" → *Target:* "ആപ്പുകൾ, വിജറ്റുകൾ, പ്ലേലിസ്റ്റുകൾ, ടാബുകൾ, ഫിൽട്ടറുകൾ"
      
      ## Spelling And Grammar
      
      - **Transliteration Spelling Conventions**: Indian English has adopted words from both American English and British English. Find out which version is more popular for the locale while making this choice. Changing cellular to mobile, biking to cycling, elevator to lift is fine, but not for ATM as cashpoint. ATM is a popular term used in India, so use it. Also, in technical terms, American English is widely used like mail, mailbox. Therefore, evaluate carefully and localize as per the needs of Malayalam language.
        - *Source:* "Elevator, Biking" → *Target:* "ലിഫ്റ്റ്, സൈക്ലിങ്"
        - *Source:* "Import" → *Target:* "ഇംപോർട്ട്"
        - *Source:* "English Spelling" → *Target:* "ഇംഗ്ലീഷ് സ്പെല്ലിങ്"
        - *Source:* "intent/indent" → *Target:* "ഇന്റന്റ്/ഇൻഡന്റ്"
        - *Source:* "Character" → *Target:* "കാരക്റ്റർ"
        - *Source:* "Wallet" → *Target:* "വാലറ്റ്"
        - *Source:* "Port" → *Target:* "പോർട്ട്"
        - *Source:* "Gate, Space" → *Target:* "ഗേറ്റ്, സ്പേസ്"
        - *Source:* "Domain, Train, Portrait, Noise" → *Target:* "ഡൊമെയിൻ, ട്രെയിൻ, പോർട്രെയ്റ്റ് , നോയ്സ്"
        - *Source:* "Service" → *Target:* "സർവീസ്"
      
      - **Use Active Voice; Reserve Passive for Ambiguous Subjects**: Prefer active voice in Malayalam as passive constructions sound overly formal and take more space. Use passive voice only when the subject of the sentence cannot be identified from the string, or when restructuring would create ambiguity (e.g., 'is not supported').
        - *Source:* "Files are being transferred" → *Target:* "ഫയലുകൾ ട്രാൻസ്ഫർ ചെയ്യുന്നു (active)"
      
      - **Postpositions with Variables — Use Descriptive Words**: Never directly append a postposition to a variable when phonotactic combinations like ‘-ന്റെ’ or ‘-യുടെ’ would be ambiguous or incorrect at runtime. Instead, insert a descriptive word (എന്നയാളുടെ for a person, എന്ന ഡിവൈസിന്റെ for a device) to carry the postposition.
        - *Source:* "%@'s iPhone" → *Target:* "%@ എന്നയാളുടെ iPhone"
        - *Source:* "Open in %@" → *Target:* "%@ എന്നതിൽ തുറക്കൂ"
      
      - **Postposition rule for category label, App and feature names when used in running sentences**: When a category label, app name, or feature name appears in a running sentence with a Malayalam postposition attached to it, wrap the name in single curly quotation marks.
      
      Malayalam postpositions attach directly to the preceding word through agglutination. When a postposition attaches to a translated/transliterated noun, the combined form can be misread as a native Malayalam word, stripping the name of its noun identity. Single quotation marks preserve the name as a distinct noun within the sentence. When the name is already followed by ആപ്പ് (App), the quotation marks are not required — ആപ്പ് itself signals that the preceding word is an app name.
      
        - *Source:* "Go to Notifications" → *Target:* "\u2018അറിയിപ്പുകളി\u2019ലേക്ക് പോകൂ" (not അറിയിപ്പുകളിലേക്ക് പോകൂ)
        - *Source:* "Show in Photos" → *Target:* "\u2018ഫോട്ടോസി\u2019ൽ കാണിക്കൂ"
        - *Source:* "Show in Photos App" → *Target:* "ഫോട്ടോസ് ആപ്പിൽ കാണിക്കൂ" (no quotes — ആപ്പ് already marks it as an app name)
      
      ## Orthography
      
      - **Encode the ന്റ conjunct consistently**: Encode the conjunct ‘ന്റ’ (nta) as the codepoint sequence ന + ് + റ (U+0D28 U+0D4D U+0D31), not the alternative ൻ + ് + റ (U+0D7B U+0D4D U+0D31). Both render the same glyph, but the ന-based sequence gives one consistent Unicode encoding everywhere for searchability and avoids rendering issues in some fonts. Normalize any ൻ + ് + റ encoding to ന + ് + റ.
        - *Source:* "Internet" → *Target:* "ഇന്റർനെറ്റ്"
      
      ## Variables
      
      - **Number Variables When Reordering; Preserve Decimal Format Strings**: Keep all variables exactly as they appear in the source. If Malayalam word order requires reordering, number all variables with the n$ positional index immediately after the % sign. If variables in the source are already numbered, then reorganize them as needed in the translation.
        - *Source:* "Downloaded %@ files out of a total of %@" → *Target:* "മൊത്തം %2$@ ഫയലുകൾ ഉള്ളതിൽ %1$@ ഡൗൺലോഡ് ചെയ്തു"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Inclusive Language**: Avoid gendered pronouns (അവൻ, അവന്റെ, അവൾ, അവളുടെ) when the source does not specify a gender — refer to people by name or with gender-neutral alternatives such as അവർ (they) or ആൾ (person); when the source establishes a specific gender, follow it. For role titles use gender-neutral forms: ആർട്ടിസ്റ്റുകൾ (not കലാകാരൻമാർ) for artists.
        - *Source:* "Matthew opened his MacBook." → *Target:* "മാത്യു തന്റെ MacBook തുറന്നു."
      
      - **Avoid biases and stereotypes**: Avoid translations that reinforce biases or stereotypes based on gender, race, physical ability, or age. Use gender-neutral language wherever possible, avoiding binary representations. When translating content related to people with disabilities, apply people-first language by placing the person before the condition, and focus on ability rather than limitation.
      
      Avoid using അന്ധൻ, അന്ധ for the blind
      Instead use കാഴ്ചയ്ക്ക് ബുദ്ധിമുട്ടുള്ളവർ;
      Avoid using വൃദ്ധൻ, വൃദ്ധ for Elderly
      Instead use മുതി൪ന്ന പുരുഷൻ, മുതി൪ന്ന സ്ത്രീ
        - *Source:* "The blind" → *Target:* "കാഴ്ചയ്ക്ക് ബുദ്ധിമുട്ടുള്ളവർ"
      
      - **Emoji — Avoid Demographic and Religious Stereotyping**: Do not associate emoji depicting head coverings or cultural dress with a specific religion, sect, or ethnicity. Use descriptive neutral terms (ടർബൻ, തലപ്പാവ്, മുഖാവരണം, ശിരോവസ്ത്രം) instead of religious identifiers (സിക്ക്, ഹിജാബ്, ബുർഖ). Avoid prepositions and helping words in emoji translations unless necessary.
        - *Source:* "man with turban emoji" → *Target:* "ടർബൻ ധരിച്ചയാൾ ഇമോജി"
      
    • styleguide_mr.md 12.6 KB
      # Marathi (mr) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Marathi uses single curly quotation marks ‘ (\u2018) and ’ (\u2019) for UI feature references, and the curly apostrophe ’ (\u2019). Double curly quotation marks “ (\u201C) and ” (\u201D) are used only for dialogue.
        - *Source:* "Network Configuration Missing Required Key" → *Target:* "नेटवर्क कॉंफिगरेशनमध्ये आवश्यक \u2018की\u2019 उपलब्ध नाही."
      
      ## Tone And Voice
      
      - **Written Colloquial Style — Smart but Casual**: Use a written colloquial Marathi that balances spoken and formal language, following the register of respected newspapers. The tone should be closer to formal than informal but never stiff. Avoid Sanskritized vocabulary and word-for-word translation. The reader should not feel they are reading a translation.
        - *Source:* "I will show you how to do this task" → *Target:* "मी तुम्हाला हे टास्क कसे करायचे ते दाखवतो. (not कसं करायचं)"
      
      - **Transliterate Only When No Easily Understood Marathi Word Exists**: First look for a Marathi word that the primary and secondary target audience can easily understand. Transliterate the English term only when no such word exists.
        - *Source:* "configuration
      Install" → *Target:* "कॉंफिगरेशन (not विन्यास)
      इंस्टॉल"
        - *Source:* "Install" → *Target:* "इंस्टॉल"
      
      ## Addressing Users
      
      - **Use Formal तुम्ही / तुमचे**: Always address users with the honorific तुम्ही (formal you) and the corresponding verb form करा instead of the informal तू / कर. This must be strictly adhered to in all UI strings. Use the informal तू / तुझे only when the source string's tone is distinctly casual or a developer comment calls for an informal, youth-oriented voice (e.g. a children's app).
        - *Source:* "Select your network connection." → *Target:* "तुमचे नेटवर्क कनेक्शन निवडा."
      
      - **Use Inclusive आपण for 'We' only, not for 'you'**: Marathi distinguishes inclusive and exclusive 'we'. Use आपण when 'we' includes the user or listener, and आम्ही when the user is excluded.
        - *Source:* "We can explore this together" → *Target:* "आपण हे एकत्र पाहू शकतो"
      
      ## Abbreviations
      
      - **Marathi Abbreviation Formation**: Marathi abbreviations are formed by taking the first letter or syllable of a word, followed by a full stop. Country names like UK are written with periods between each letter: यू.के. For months use the first two letters (डिसें. for December, सप्टें. for September). Do not create new abbreviations in software unless all workarounds have failed.
        - *Source:* "Dr." → *Target:* "डॉ."
        - *Source:* "UK" → *Target:* "यू. के."
      
      ## Acronyms
      
      - **Popular Acronyms Written Without Full Stops in Marathi Script**: Keep acronyms in English, unless Marathi localization is very common. Popular acronyms like HDR (एचडीआर), NASA (नासा), FIFA (फिफा) are written in Marathi script without full stops. Technical file format abbreviations (PDF, RTF, DOC) must stay untranslated.
        - *Source:* "Wi-Fi" → *Target:* "Wi-Fi"
        - *Source:* "PDF" → *Target:* "PDF"
      
      ## Date And Time
      
      - **Date and Time Formats**: The correspondence date format is DD Month YYYY (e.g., 22 एप्रिल 2022). Long format is DD/MM/YYYY and short format is DD/MM/YY. Use international numerals in hardcoded dates. Do not use a comma to separate month from year. AM and PM are written as AM/PM following CLDR. Time uses a colon separator (HH:mm:ss) with no space before or after it.
        - *Source:* "April 22, 2022" → *Target:* "22 एप्रिल 2022"
        - *Source:* "10:18:30 AM" → *Target:* "10:18:30 AM"
      
      ## Measurements
      
      - **Retain Electronic Units in English; Space Between Number and Unit**: Units related to electronics and computing (GB, KB, 1080p) must stay in English. There must be a space between the digit and the unit, matching the source spacing. Do not convert imperial to metric. Follow the latest CLDR release for all other unit representations.
        - *Source:* "10KB" → *Target:* "10KB"
      
      ## Numerals
      
      - **Use International Numerals and Indian Separator System**: Keep numerals as international digits (0–9) — do not convert them to Devanagari numerals. Whether digits ultimately display as international or native is a user setting the translation can't see, so don't change the numeral system yourself. Group large numbers using the Indian separator system (e.g., 10,00,000). Follow ordinal forms पहिला/पहिली, दुसरा/दुसरी, etc. — avoid styles like 1ला, 2रा.
        - *Source:* "1000000" → *Target:* "10,00,000"
        - *Source:* "First / Second" → *Target:* "पहिला/पहिली / दुसरा/दुसरी"
      
      ## Special Characters
      
      - **Translate 'and' as आणि and '&' as व**: In Marathi, the conjunction 'and' in general text is आणि. The ampersand symbol '&' used as a separator in feature or setting names is translated as व. Do not use the & symbol directly in Marathi UI text.
        - *Source:* "Files and folders" → *Target:* "फाइल आणि फोल्डर"
        - *Source:* "Display & Brightness" → *Target:* "डिस्प्ले व ब्राइटनेस"
      
      ## Punctuation
      
      - **Add Space Before Colon to Distinguish from Visarga**: A space must be added before the colon (:) in Marathi text to prevent confusion with the Marathi visarga (ः). This space is required when the colon follows a Marathi word. When the colon follows an untranslated English word or number, the space can be omitted. Do not add a space before visarga in native Marathi words.
        - *Source:* "To:" → *Target:* "प्रति :"
        - *Source:* "Self (visarga)" → *Target:* "स्वतः (no space)"
      
      - **Use Curly Single Quotes for UI References**: Always use curly single quotes (‘ ’) rather than straight quotes. Use double curly quotes only for dialogue. Single curly quotes may be added even when not in the source, where grammatical ambiguity would otherwise arise — but minimize their use.
        - *Source:* "Network Configuration Missing Required Key" → *Target:* "नेटवर्क कॉंफिगरेशनमध्ये आवश्यक \u2018की\u2019 उपलब्ध नाही."
      
      ## Grammar
      
      - **Nuqta Is Not Used in Marathi**: Marathi does not use nuqta (nukta) to denote loan words. As per Maharashtra government guidelines, nuqta may only be used when writing Urdu or Sindhi lines within a Marathi document. All English sounds including f and ph are represented by फ without a nuqta.
        - *Source:* "phone / forward" → *Target:* "फोन / फॉरवर्ड (not फ़ोन)"
      
      - **Anuswara Usage and Chandrabindu**: Marathi uses anuswara (ं) to all nasalize sounds. Prefer anuswara over the parsavarn forms exception is वाङ्मय).
        - *Source:* "Configuration" → *Target:* "कॉंफिगरेशन (not कॉन्फिगरेशन)"
        - *Source:* "College" → *Target:* "कॉलेज"
      
      - **No Articles — Do Not Translate 'a/an' as एक**: Marathi has no articles. Do not translate 'a' or 'an' as एक unless omitting it creates a genuinely incomplete sentence. Most sentences translate naturally without an article. Consider using एक only when it is truly necessary for meaning.
        - *Source:* "Have a coffee." → *Target:* "कॉफी प्या."
        - *Source:* "Please bring me a cup of coffee." → *Target:* "माझ्यासाठी एक कप कॉफी आण."
      
      - **Prefer Passive Voice When Subject Is Absent**: When the English source is active but no explicit subject performs the action, use passive voice in Marathi to keep the translation aesthetic and unambiguous. This applies to gerund-only strings, verb+object strings, and strings where you cannot answer 'who will do this?' from the string alone.
        - *Source:* "Adding %@ Videos" → *Target:* "%@ व्हिडिओ जोडले जात आहेत."
      
      - **Variables and Postpositions — Use Independent Words**: Directly concatenating postpositions (विभक्ती प्रत्यय) like च्या/ला/ना/शी to variables causes readability issues at runtime. Use independent words instead: येथे for places, रोजी for dates, वाजता for time, ह्यांनी for persons. Always add a non-breaking space before चा/ची/चे/च्या/ने/ला when they follow a DNT term.
        - *Source:* "%@ shared this folder" → *Target:* "%@ ह्यांनी हे फोल्डर शेअर केले"
      
      - **Pluralization of transliterated words**: When transliterating English plural terms, always use the singular form as the default. Follow the guidelines below:
      In a sentence: Use the singular transliterated form, regardless of whether the original English term is plural.
      As a stand-alone term: The plural form may be used only when the term appears independently, outside of a sentence.
      When plural is not marked in the word itself: Reflect the plural meaning through the verb or sentence structure surrounding the term.
        - *Source:* "We played 4 games" → *Target:* "आम्ही 4 गेम खेळलो"
      
      - **Gender of transliterated words**: To decide the grammatical gender of a transliterated loan word, translate the word into Marathi and give the transliteration the same gender as that Marathi word. For example, "device" translates to साधन/उपकरण (neuter), so डिव्हाइस is also neuter and takes the neuter "that" (ते): ते डिव्हाइस.
        - *Source:* "That Device" → *Target:* "ते डिव्हाइस"
      
      ## Interface Elements
      
      - **Category Labels**: All category labels, including app and feature names, must be translated or transliterated in singular form. The exception is a string marked do-not-translate, which is left as-is.
        - *Source:* "Messages" → *Target:* "संदेश"
      
      - **Button Names in Imperative with Helping Verb**: Buttons must be translated in imperative form using helping verbs like करा or द्या to prevent the translation from reading as a noun. Exception: macOS menu bar items classified as NSMenuItems (Edit, View, Format, Arrange) are translated as nouns. Callout bar items generally add करा.
        - *Source:* "Edit (button)" → *Target:* "संपादित करा"
        - *Source:* "Reply" → *Target:* "उत्तर द्या"
        - *Source:* "Edit (macOS menu bar)" → *Target:* "संपादन (noun)"
      
      ## Variables
      
      - **Number Variables When Reordering; Preserve Decimal Format Strings**: Keep all variables exactly as they appear in the source. If Marathi word order requires reordering, add positional indices (n$) immediately after the % sign in all variables of that string. Do not change a period to a comma inside numeric format strings such as %.1f — the decimal separator is handled by the software.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%3$@ खेळून %2$@ वर मिळवलेला %1$@ स्कोअर पहा."
      
      ## Diversity And Inclusion
      
      - **Adopt Gender-Inclusive Language**: Avoid using masculine forms as the default for all users wherever possible. Recommended strategies include using neuter terms, phrasing sentences valid for both genders, and using plural masculine forms only when gender-neutral phrasing sounds unnatural. Minimize use of द्वारा for gender-neutral constructions; prefer ने or च्याकडून.
        - *Source:* "Are you sure you want to turn off Zoom?" → *Target:* "तुम्हाला Zoom निश्चितपणे बंद करायचे आहे का?"
        - *Source:* "You're not connected to the internet" → *Target:* "तुम्ही इंटरनेटशी जोडलेले नाहीत."
      
      ## Spelling
      
      - **Encode ॲ as a Single Character**: Encode ॲ (U+0972) as the single precomposed character, not the sequence अ + ॅ (U+0905 + U+0945).
        - *Source:* "Actor" → *Target:* "ॲक्टर"
      
      ## Emoji
      
      - **Emoji**: Try to avoid using prepositions and helping words in Emoji translations unless necessary.
        - *Source:* "%d black cat emoji " → *Target:* "%d काळी मांजर इमोजी (not %d काळ्या रंगाच्या मांजरीची इमोजी)"
      
    • styleguide_ms.md 7.7 KB
      # Malay (ms) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Malay translations should feel smart but casual, leaning closer to formal than informal without being stiff or overly trendy. Avoid literal word-for-word rendering of English and aim for natural-sounding Malay.
        - *Source:* "When words aren't enough, you can turn an iMessage conversation into a FaceTime video call" → *Target:* "Apabila kata-kata tidak mencukupi, anda boleh menukar perbualan iMessage menjadi panggilan video FaceTime"
      
      ## Addressing Users
      
      - **Address Users as 'anda'**: All user-facing text must address the user with the formal 'anda'. Casual forms such as 'awak', 'kamu' or 'engkau' are only acceptable in advertisements with spoken dialogue and should be avoided.
        - *Source:* "you" → *Target:* "anda"
      
      ## Abbreviations
      
      - **Avoid Abbreviations**: Do not shorten words through abbreviations in software. If a string is too long due to UI constraints, work around it by restructuring the phrase rather than inventing abbreviated forms.
        - *Source:* "20 MB daripada 1 GB" → *Target:* "20 MB / 1 GB (layout fix) — not '20 MB drp 1 GB'"
      
      ## Acronyms
      
      - **Do Not Translate Industry Acronyms**: Standard technology acronyms (HD, SD, Wi-Fi, WLAN, CD, RAM) are kept as-is. When the source pairs an acronym with a spelled-out form, translate that form; don't add an expansion the source doesn't have.
        - *Source:* "Wireless Local Area Network (WLAN)" → *Target:* "Rangkaian Kawasan Setempat Wayarles (WLAN)"
      
      ## Date And Time
      
      - **Malaysian Date and Time Format**: Use the Malaysian date order (day month year) and localized day/month names. Replace AM/PM with PG (pagi) and PTG (petang).
        - *Source:* "January 20, 2016" → *Target:* "20 Januari 2016"
        - *Source:* "AM / PM" → *Target:* "PG / PTG"
      
      ## Measurements
      
      - **Use Metric Units with a Space**: Do not convert imperial measurements. Always insert a space between the numeric value and the unit. Temperature and currency symbols have no space; distance units do.
        - *Source:* "20 km" → *Target:* "20 km"
        - *Source:* "34°C" → *Target:* "34°C"
      
      ## Names And Addresses
      
      - **Malaysian Address Format**: Sample names follow the source (John Doe stays as John Doe). Addresses follow Malaysian conventions: unit number and street, then postcode and city, then state and country. The Malaysian postcode (Poskod) is a 5-digit number. Example format: `25, Jalan 12/E, Taman Ria, 47300 Petaling Jaya, Selangor Darul Ehsan, Malaysia`.
      
      ## Numerals
      
      - **Numeral Formatting**: Use a comma as the thousands separator and a full stop as the decimal separator. Always place a zero before the decimal point. Numbers below 10 may be written out in words, though digits are acceptable when the source uses them.
        - *Source:* "1,000,000 songs" → *Target:* "1,000,000 lagu"
        - *Source:* "0.09 seconds" → *Target:* "0.09 saat"
      
      ## Punctuation
      
      - **Follow Source Punctuation**: Malay punctuation generally mirrors the source. Use the single ellipsis character (…) rather than three periods. Do not add a comma before 'dan' in a list—'dan' alone replaces ', and'.
        - *Source:* "Building Services Menu…" → *Target:* "Membina Menu Perkhidmatan…"
        - *Source:* ", and" → *Target:* "dan"
      
      ## Grammar
      
      - **Correct Use of 'ialah' vs 'adalah'**: Use 'ialah' when 'is' links a subject to a noun. Use ‘adalah' when it links to an adjective. 'adalah' must never be followed by a verb.
        - *Source:* "A simple passcode is a %@ digit number." → *Target:* "Kod laluan yang ringkas ialah nombor %@ digit."
        - *Source:* "Argument %1$d of %2$@ is invalid." → *Target:* "Argumen %1$d daripada %2$@ adalah tidak sah."
      
      - **Correct Use of Prepositions: 'di', 'ke', 'dari', 'daripada'**: di' precedes place nouns and is written separately. ke' indicates movement toward a location. dari' refers to a place, direction, or time origin. 'daripada' indicates a human or abstract source, and is used when removing something from a location.
        - *Source:* "iTunes Radio is not currently available in Malaysia." → *Target:* "iTunes Radio tidak tersedia di Malaysia pada masa ini."
        - *Source:* "Message from John" → *Target:* "Mesej daripada John"
        - *Source:* "Delete the files from the folder" → *Target:* "Padamkan fail daripada folder"
      
      - **No Plural Repetition with Numerals**: When a numeral is present, do not use the Malay reduplication plural form (e.g. ‘elemen-elemen'). The numeral itself already conveys plurality.
        - *Source:* "5 elements" → *Target:* "5 elemen"
      
      - **Use 'ia' for Abstract Entities, Not 'mereka'**: 'Mereka' refers to people. For abstract or artificial entities such as files, apps, or processes, use 'ia' or rephrase using 'ini'/'itu' to avoid using any pronoun.
        - *Source:* "The files could not be moved to the trash because they were not found" → *Target:* "Fail tidak dapat dialihkan ke sampah kerana ia tidak ditemui"
      
      ## Interface Elements
      
      - **Sentence Capitalisation for Multi-Word UI Terms**: When a translated button or UI label becomes two or more words as a result of translation, use Sentence Caps (capitalise the first word only).
        - *Source:* "Update" → *Target:* "Kemas Kini"
        - *Source:* "Unavailable" → *Target:* "Tidak Tersedia"
      
      - **Use Grammatically Complete Command Names**: Command names must be grammatically complete and should include full suffixes (e.g. '-kan'). Avoid dropping suffixes for brevity unless it is a documented UI space workaround. E.g. 'Tunjukkan' is correct, 'Tunjuk' only is incorrect for UI (generally)
        - *Source:* "Show All Contacts" → *Target:* "Tunjukkan Semua Kenalan"
      
      ## Terminology
      
      - **Prefer Malay Terminology Over English Loanwords**: Use established Malay terms whenever possible, even if users in conversation might default to English. Unnecessary transliterations of terms that already have accepted Malay equivalents should be avoided. Perihalan and not Deskripsi
        - *Source:* "Group Description" → *Target:* "Perihalan Kumpulan"
      
      ## Diversity And Inclusion
      
      - **Avoid Violent or Oppressive Technical Terms**: Do not use terms like 'matikan' (kill/turn off) for abstract entities such as apps or functions—reserve it for physical devices. Use 'nyahaktifkan' for disabling abstract features, and 'senyap' or 'redam' instead of 'bisu' for muting.
        - *Source:* "Find My iPad has been turned off." → *Target:* "Cari iPad Saya telah dinyahaktifkan."
        - *Source:* "Accessory is powered off." → *Target:* "Aksesori telah dimatikan."
      
      ## Variables
      
      - **Preserve and Reorder Variables for Grammar**: Never alter variable tokens (e.g. %@, %1$@, %d). You may reorder numbered variables to match Malay word order, but the variable syntax itself must not be changed. Do not convert a decimal period inside a numeric variable format.
        - *Source:* "%@ %@ (first Monday)" → *Target:* "%2$@ %1$@ (Isnin pertama)"
      
      ## General Advice
      
      - **Contextual Translation Over Literal Translation**: Always read surrounding strings to understand context before translating. Question-word translations such as 'what', 'when', 'where', and 'how' carry different Malay equivalents depending on whether they appear in a question or in a descriptive heading. E.g. what - perihal instead of apakah, when - masa instead of bila, where - tempat instead of di mana, how - cara instead of bagaimana when it's not an interrogative sentence
        - *Source:* "What is Location Services (heading, not a question)" → *Target:* "Perihal Perkhidmatan Lokasi"
      
      - **Avoid Hanging Sentences**: Translations must be grammatically complete. Do not produce 'ayat tergantung' (hanging sentences) where a phrase is left without a proper grammatical ending. E.g.: What would you like to use? —> Apakah yang anda mahu gunakan? Instead of Yang anda mahu gunakan?
        - *Source:* "What would you like to use?" → *Target:* "Apakah yang anda mahu gunakan?"
      
    • styleguide_nb.md 4 KB
      # Norwegian Bokmål (nb) — Software String Localization Style Guide
      
      - **End-weight sentence structure**: Norwegian strongly prefers end-weight — place the main verb/action early and the longer clause at the end. E.g., "To start downloading, press OK." becomes "Trykk på OK for å starte nedlastingen." (not "Hvis du vil starte nedlastingen, trykker du på OK."). Use the formal subject "det" to shift heavy subjects to the end: "Det ble ikke funnet noen dokumenter som oppfyller søkekriteriene."
      
      - **Omit "your" and "this"**: Literal translation of "your" is rarely idiomatic in Norwegian. Use the definite form of the noun instead: "Your software has been updated." becomes "Programvaren har blitt oppdatert." (not "Programvaren din har blitt oppdatert."). Similarly, omit "denne/dette" when the referent is obvious, especially before variables where the gender is unknown.
      
      - **Double angle quotation marks**: Use Norwegian-style guillemets for quotes: «  and ». Do not use quotation marks around app names, company names, or person names. Do add them around account names and Apple IDs («appleseed@icloud.com») and song titles («Yesterday»). When in doubt, omit quotes around variables.
      
      - **Product name inflection**: Single-word device names can be inflected with definite "-en": "iPhonen", "MacBooken". Multi-word names append "-enheten" for iOS devices ("iPod touch-enheten") or "-maskinen" for Macs ("Mac mini-maskinen"). Apple TV follows acronym rules: "Apple TV-en". Avoid inflecting when possible by rewriting.
      
      - **Acronym compounding with non-breaking hyphen**: Use a non-breaking hyphen when inflecting acronyms — "ID-en", "TV-er" (not "IDen" or "ID'en"). This keeps the compound on one line. Avoid placing hyphens next to + characters: rewrite "Fitness+-økt" as "økt i Fitness+".
      
      - **"Angi" vs. "oppgi"**: Use "angi" when the user is setting something new (creating a password: "Angi et passord for kontoen.") and "oppgi" when the user is providing something already established (entering an existing password: "Oppgi passordet for kontoen.").
      
      - **"Or" often becomes "og"**: When English uses "or" after "any" (which maps to Norwegian "alle" + plural), translate "or" as "og": "Keynote accepts any QuickTime or iCloud file type." becomes "Keynote godtar alle QuickTime- og iCloud-filtyper." Use common sense to preserve correct meaning.
      
      - **"May/might" as "kanskje"**: Prefer the adverb "kanskje" over subordinate clause constructions for better flow. E.g., "You may have to restart your computer." becomes "Du må kanskje starte datamaskinen på nytt." (not "Det kan hende du må starte datamaskinen på nytt.").
      
      - **Inflected neuter plurals**: For neuter words where Bokmål allows uninflected plural, prefer the inflected form: "flere programmer" (not "flere program"), "flere kameraer" (not "flere kamera"). For foreign-origin neuter words, mark plural explicitly: "et album, flere albumer". Use Latin plural for Latin words: "et forum, flere fora". Exception: use "kontoer" (not "konti") for Account.
      
      - **Time colon, space thousands, decimal comma**: Per CLDR, the time separator is a colon ("kl. 14:00"). Norwegian uses space as the thousands separator and comma as the decimal separator ("1 000 000", "3,5 km"). Insert non-breaking spaces between numbers and units ("2 GB").
      
      - **Ellipsis always in software**: Always use the pre-composed ellipsis character instead of three periods, regardless of source. In software, skip the space before the ellipsis due to space constraints ("Arkiver som…").
      
      - **Inclusive pronoun "hen"**: For singular "they" referring to a person of unspecified gender, do not translate as "he or she". Instead, rewrite using "person" or "vedkommende", or use the gender-neutral third-person pronoun "hen". Use diverse person names from multiple cultural backgrounds common in Norway, including Sami and immigrant-community names.
      
      - **AI as "KI"**: The acronym AI is translated as "KI" (kunstig intelligens) in Norwegian — one of the few translated acronyms. Most other IT acronyms remain in English.
      
    • styleguide_nl.md 10.9 KB
      # Dutch (nl) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Dutch UI references use single straight quotes ' ' (not curly quotes), so the only curly glyph to escape inside a string value is the curly apostrophe ’ (\u2019) — which Dutch produces when pluralizing vowel-final loanwords (the example below turns "videos" into "video\u2019s"), and which also appears in English source strings via typographic tooling.
        - *Source:* "one place for your saved videos" → *Target:* "Eén plek voor je bewaarde video\u2019s."
      
      ## Tone And Voice
      
      - **Informal but Polished Tone**: Dutch translations use the informal 'je' throughout. The tone is smart and casual, never stiff or overly trendy. Prefer Dutch terminology over English equivalents even when users colloquially use English words.
        - *Source:* "just print the file" → *Target:* "even het bestand afdrukken"
      
      ## Addressing Users
      
      - **Use 'je', Not 'u'**: Always use 'je' as the second-person form of address, never 'u'. This applies uniformly across all content types. Use gender-neutral references for objects ('deze'/'die') and persons ('deze persoon' or plural forms) to be inclusive.
        - *Source:* "You" → *Target:* "je"
        - *Source:* "his/her/their account" → *Target:* "de account van deze persoon"
      
      ## Abbreviations
      
      - **Write Out Common Expressions in Full**: Do not abbreviate expressions such as 'met betrekking tot' (m.b.t.) or 'enzovoort' (enz.). Avoid all abbreviations in software unless the string truly cannot fit any other way.
        - *Source:* "Was this photo taken at a celebration (graduation, ceremony, etc.)?" → *Target:* "Is deze foto op een feest (afstuderen, ceremonie, enzovoort) gemaakt?"
      
      ## Acronyms
      
      - **Acronyms Are Written Without Periods**: Dutch 'initiaalwoorden' (e.g. pc, cd) and 'letterwoorden' (e.g. pin, RAM) are written without internal periods. Follow the capitalization of the source acronym. Do not translate acronyms unless a well-established Dutch equivalent exists.
        - *Source:* "PC" → *Target:* "pc"
        - *Source:* "RAM" → *Target:* "RAM"
      
      ## Date And Time
      
      - **Time Abbreviations Use a Full Stop**: When abbreviating time units in running text, add a full stop after 'min.' and 'sec.' In software strings with space constraints or all-caps display, the full stop may be omitted. Follow the target locale's date and time conventions.
        - *Source:* "5 s / 2 min" → *Target:* "5 sec. / 2 min." (in running text)
      
      ## Measurements
      
      - **Do Not Convert Measurements; Space Between Value and Unit**: Do not convert imperial measurements. Always insert a space between the numeric value and the unit of measurement. When the number and unit form an adjective compound, join them with a hyphen.
        - *Source:* "2 MB" → *Target:* "2 MB"
        - *Source:* "2.5 GHz 6-core processor" → *Target:* "2,5-GHz 6-core-processor" (adjective compound → hyphen)
      
      ## Addresses
      
      - **Use Dutch Address Format**: Dutch postal addresses follow the format: street + number, then postal code (4 digits, space, 2 capitalized letters) followed by two spaces and the city name in capitals (e.g. Grote Kerkplein 15, 8011 PK  ZWOLLE).
      
      ## Numerals
      
      - **Digits for References; 0,5 Takes Singular**: Use numeric form for references to chapters, rules, and similar. Follow the source when it uses digits, even for numbers below 20. After '0,5', use the singular form of the following noun where possible. Ordinal numbers are written as digit + 'e' (e.g. 4e, 15e).
        - *Source:* "chapter 3" → *Target:* "hoofdstuk 3"
        - *Source:* "0.5 hours" → *Target:* "0,5 uur"
      
      ## Punctuation
      
      - **Single Straight Quotes for UI References**: Use single straight quotes around command names, UI option names, file names, and direct UI path references in UI strings. Do not use quotes around application names or service names (except multi-word service names in running text for readability).
        - *Source:* "Go to Settings > General" → *Target:* "Ga in Instellingen naar 'Algemeen'"
        - *Source:* "Choose Print from the File menu" → *Target:* "Kies 'Druk af' uit het Archief-menu"
      
      - **Avoid Semicolons and Exclamation Marks**: Dutch style avoids semicolons—split the sentence into two instead. Exclamation marks should also be avoided. Use a full stop at the end of the last sentence in a paragraph even when the source omits it.
      
      - **Dutch Dash Is an En Dash**: The Dutch 'gedachtestreepje' is an en dash (–), not a hyphen or em dash. It can often be replaced by a comma or parentheses. Use sparingly to avoid cluttered text.
      
      ## Special Characters
      
      - **Diacritical Marks and 'één'**: Dutch uses acute, grave, and umlaut accents, including on uppercase letters. The word 'één' (one) is an exception: when it begins a sentence, the capital E does not take an accent. Do not use accents on 'een' in 'een of meer' and 'een van de'. The umlaut is replaced by a hyphen when it falls between parts that can stand as separate words.
        - *Source:* "One place for your saved videos." → *Target:* "Eén plek voor je bewaarde video\u2019s." (sentence-initial één → Eén: capital E unaccented, é keeps its accent)
        - *Source:* "zee-egel / zo-even" → *Target:* "zee-egel / zo-even" (hyphen instead of umlaut)
      
      ## Trademarks And Product Names
      
      - **Do Not Translate or Transliterate Trademarks**: Trademarks, slogans, company names, and product names must not be translated or transliterated. Use a non-breaking space between the parts of multi-word product names like 'App Store' or 'Apple Vision Pro'. Never use a hyphen in combinations with Apple, except for 'Apple-menu' and 'Apple-symbool'.
        - *Source:* "App Store" → *Target:* "App Store" (non-breaking space)
      
      ## Grammar
      
      - **Capitalization: Only First Word of Headers and Feature Names**: Dutch capitalizes far less than English. In headers, feature names, and UI labels, only the first word takes a capital. Do not capitalize every content word as English does.
        - *Source:* "System Preferences" → *Target:* "Systeemvoorkeuren"
        - *Source:* "Dark Mode" → *Target:* "Donkere modus"
      
      - **Use Present Perfect Instead of Past Tense**: Where English uses simple past tense, Dutch typically uses the present perfect (voltooid tegenwoordige tijd). When 'could not' appears in English, follow it with a past-tense equivalent in Dutch rather than the present tense.
        - *Source:* "You earned this award for your first hiking workout." → *Target:* "Je hebt deze medaille verdiend voor de eerste wandeltocht."
        - *Source:* "The message could not be retrieved." → *Target:* "Het bericht kon niet worden opgehaald."
      
      - **Avoid Future Tense; Prefer Present**: Dutch prefers the present tense where English uses future constructions. Avoid 'zullen'. Use 'voortaan', 'dan', or a form of 'gaan' to express a genuine future or 'from now on' meaning.
        - *Source:* "Your future Daily Cash earnings will be directed to your Savings account." → *Target:* "Wat je verdient aan Daily Cash gaat voortaan rechtstreeks naar je spaarrekening."
      
      - **Past Participle Follows Auxiliary Verb**: In Dutch, the past participle must come after the auxiliary verb, not before it.
        - *Source:* "Als het bestand afgedrukt wordt" → *Target:* "Als het bestand wordt afgedrukt"
        - *Source:* "Nadat je het document geopend hebt" → *Target:* "Nadat je het document hebt geopend"
      
      - **Use Compounds Not Spaces for English Loan Words**: English compounds that are two separate words are usually written as one word or hyphenated in Dutch. For combinations with 'online', 'offline', and 'live', use a space only if the compound is not established as a single word.
        - *Source:* "software update" → *Target:* "software-update"
        - *Source:* "desktop computer" → *Target:* "desktopcomputer"
        - *Source:* "live captions" → *Target:* "live bijschriften"
      
      ## Interface Elements
      
      - **Buttons and Commands Use Imperative Form**: Button names, command names, and option names are always translated in the imperative form, not the infinitive. Menu names use a mix of imperative and nouns, never the infinitive. Window titles follow the imperative convention. Undo/Redo are followed by the action in single quotes.
        - *Source:* "Print" → *Target:* "Druk af" (not 'Afdrukken')
        - *Source:* "Undo Delete Message" → *Target:* "Herstel 'Verwijder bericht'"
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral References**: Do not use 'hun' as a singular pronoun for a gender-unknown person. Restructure the sentence using singular nouns/verbs, rewrite in plural, or omit the pronoun. Use 'deze' or 'persoon' when a neutral reference is necessary. 'Zij/hun/hen' for a single person is not officially accepted in Dutch grammar.
        - *Source:* "As an essential worker, they should talk to their work about…" → *Target:* "Als deze persoon een cruciaal beroep heeft, moet er met de werkgever worden overlegd…"
      
      ## Variables
      
      - **Variables May Be Renumbered for Word Order**: Never alter variable tokens. You may reorder variables for natural Dutch word order and must renumber unnumbered variables (e.g. %@ %@) using positional syntax (%1$@, %2$@) if their order changes. Quotes around variables should be converted to single straight quotes.
        - *Source:* "Are you sure you want to remove the "%@" %@ account?" → *Target:* "Weet je zeker dat je de %2$@-account '%1$@' wilt verwijderen?"
      
      ## General Advice
      
      - **Translate 'not…until' as 'pas…nadat'**: When English uses 'not…until', Dutch naturally uses 'pas…nadat' rather than a literal rendering with 'totdat'. This produces more idiomatic Dutch.
        - *Source:* "New messages not automatically received until relaunching Mail" → *Target:* "Nieuwe berichten worden pas automatisch ontvangen nadat Mail opnieuw is opgestart"
      
      - **Avoid Repetition: Vary Word Choice**: When the same English word appears more than once in a string, find a different Dutch equivalent for one instance to improve readability. Similarly, restructure sentences that would sound unnatural when translated literally.
        - *Source:* "Add a debit or credit card to add more payment methods." → *Target:* "Voeg een betaalkaart of creditcard toe om meer betalingsmethoden te bieden." (second 'add' becomes 'bieden')
      
      ## Spaces
      
      - **Do not use double spaces between sentences**: Use one space between sentences. Use a non-breaking space to keep fixed combinations together, for example iPhone 16, Apple Vision Pro, watchOS 12.
      
      ## Diminutives
      
      - **Do not use diminutives**: Dutch uses many diminutives (the "-tje" form), but avoid them in translations — they make UI text read as overly informal. Use a diminutive only when it is the standard or only accepted form of a word, not to soften tone: for example, "apenstaartje" (the @ symbol) is the usual term, and "mondkapje" (face mask) occurs only in the diminutive form.
      
      ## Hyphens
      
      - **Do not use a hyphen after a plus sign**: Avoid a hyphen after the plus symbol (+); reword so the plus sign isn't followed by a hyphenated suffix (use a prepositional phrase instead of a compound).
        - *Source:* "Apple Fitness+ subscription" → *Target:* "Abonnement op Apple Fitness+" (not "Apple Fitness+-abonnement")
      
    • styleguide_or.md 21 KB
      # Odia (or) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Odia uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting feature or functionality names, and the curly apostrophe ’ (\u2019).
        - *Source:* "Hold select to clear" → *Target:* "କ୍ଲିଅର୍ କରିବା ପାଇଁ \u201Cଚୟନ କରନ୍ତୁ\u201Dକୁ ଦବାଇ ରଖନ୍ତୁ"
      
      ## Tone And Voice
      
      - **Smart but Casual Written Colloquial Style**: The Odia tone is professional and positive, closer to formal than informal, but never stiff. Use the written colloquial style that balances spoken and written Odia. Follow the language register of reputable Odia newspapers. Avoid Sanskritized vocabulary whenever a simpler, commonly understood word exists.
        - *Source:* "school" → *Target:* "ସ୍କୂଲ୍"
        - *Source:* "flower" → *Target:* "ଫୁଲ"
      
      ## Addressing Users
      
      - **Use Formal Second Person (ଆପଣ) for All Users**: Always address the user with the formal honorific ଆପଣ and the corresponding formal verb form (e.g. କରନ୍ତୁ). The informal ତୁ/ତୁମେ and casual verb forms like କର/କରେ must not be used, as they are not respectful. Non-human entities (apps, devices) use an informal tone.
        - *Source:* "iPad will play ringtones, alerts, and system sounds." → *Target:* "iPad ରିଂଟୋନ୍, ଆଲର୍ଟ୍ ଓ ସିଷ୍ଟମ୍ ସାଉଣ୍ଡ୍‌ଗୁଡ଼ିକୁ ଚଲାଇବ।"
      
      ## Terminology
      
      - **Transliterate Technical Terms, Translate Common Ones**: Prefer transliteration for technical jargon that has entered everyday Odia usage or has no natural Odia equivalent. Prefer a genuine Odia word when it is commonly understood and not archaic. Avoid producing text that reads like English written in Odia script. Each term should be evaluated individually based on context, audience familiarity, and frequency in media.
        - *Source:* "Domain" → *Target:* "ଡୋମେନ୍"
        - *Source:* "road" → *Target:* "ରାସ୍ତା"
        - *Source:* "Installation" → *Target:* "ଇନ୍‌ଷ୍ଟଲେଶନ୍"
      
      - **Follow British English Pronunciation for Transliteration**: When transliterating English words, use British English pronunciation as the reference, following the International Phonetic Alphabet (IPA) from the Oxford Dictionary of English.
        - *Source:* "Sync /sɪŋk/" → *Target:* "ସିଙ୍କ୍"
        - *Source:* "Sheet /ʃiːt/" → *Target:* "ଶୀଟ୍"
        - *Source:* "Zoom /zuːm/" → *Target:* "ଜୂମ୍"
      
      - **Hybrid Approach (Translation + Transliteration)**: A hybrid approach is preferred when one part of the phrase is a highly technical or branded term (best transliterated) and the other part is a common, generic word with a perfect Odia equivalent (best translated).
        - *Source:* "Network connection" → *Target:* "ନେଟ୍‌ୱର୍କ୍ ସଂଯୋଗ"
      
      - **Balance British and American English Vocabulary**: When a source term has different US and UK equivalents, generally prefer the UK/Indian English equivalent (e.g., Mobile instead of Cellular). However, do not blindly follow British usage if the American term is more established in India.
        - *Source:* "ATM" → *Target:* "ATM"
      
      ## Grammar
      
      - **Always Use Halant in Transliterated Words**: When transliterating English words, always add the halant (୍) where phonetically required to avoid ambiguity between consonant-final syllables and open syllables. For example, 'Bank' ends in a closed syllable and must be written ବ୍ୟାଙ୍କ୍, not ବ୍ୟାଙ୍କ.
        - *Source:* "Password" → *Target:* "ପାସ୍‌ୱର୍ଡ୍"
        - *Source:* "Passcode" → *Target:* "ପାସ୍‌କୋଡ୍"
        - *Source:* "Bank" → *Target:* "ବ୍ୟାଙ୍କ୍"
      
      - **Chandrabindu vs. Anuswara**: Use anuswara (ଂ) for the 'ang' sound and chandrabindu (ଁ) for the 'aum' sound. Prefer the traditional Juktakshyar spelling over the newer anuswara forms. Anuswara is used only for abargya consonants (ଯ, ର, ଳ, ହ, ଶ, ଷ, ସ, ଲ etc.) and for the 'ng' sound in transliterated English words.
        - *Source:* "Rupee" → *Target:* "ଟଙ୍କା"
        - *Source:* "Editing" → *Target:* "ଏଡିଟିଂ"
      
      - **No Literal Translation of English Articles**: Odia has no articles equivalent to 'a', 'an', or 'the'. Do not translate these as ଏକ or ଗୋଟିଏ unless the sentence genuinely requires a number for meaning. In most cases, simply omit the article in the Odia translation.
        - *Source:* "Wish you a very happy birthday." → *Target:* "ଆପଣଙ୍କ ଜନ୍ମଦିନ ଶୁଭ ହେଉ।"
        - *Source:* "I bought a sweater yesterday." → *Target:* "ମୁଁ ଗତକାଲି ଗୋଟିଏ ସ୍ବେଟର୍ କିଣିଲି।"
      
      - **Use ଓ Between Words, ଏବଂ Between Phrases**: Both ଓ and ଏବଂ mean 'and', but they are used in different contexts. ଓ connects two individual words, while ଏବଂ connects two phrases or clauses.
        - *Source:* "Laptop and keyboard" → *Target:* "ଲାପ୍‌ଟପ୍ ଓ କୀ\u2019ବୋର୍ଡ୍"
        - *Source:* "Two laptops & three keyboards" → *Target:* "ଦୁଇଟି ଲାପ୍‌ଟପ୍ ଏବଂ ତିନୋଟି କୀ\u2019ବୋର୍ଡ୍"
      
      - **Bibhakti (Case Markers) Spacing**: Bibhaktis such as ରେ, ରୁ, କୁ, ଙ୍କୁ are written without a preceding space when they follow Odia words. However, a space must appear before a bibhakti when it follows URLs, variables, numbers, or English words.
        - *Source:* "product & services from Apple" → *Target:* "Apple ର ପ୍ରଡକ୍ଟ୍ ଓ ସେବା"
        - *Source:* "features of your face" → *Target:* "ଆପଣଙ୍କ ଚେହେରାର ଫୀଚର୍"
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%2$@ ରେ %3$@ ଖେଳି %1$@ ପାଇଥିବା ସ୍କୋର୍ ଯାଞ୍ଚ କରନ୍ତୁ।"
        - *Source:* "Go to apple.com" → *Target:* "apple.com କୁ ଯାଆନ୍ତୁ"
        - *Source:* "will not open in macOS 27" → *Target:* "macOS 27 ରେ ଖୋଲିବ ନାହିଁ"
      
      - **Passive Voice for System-Initiated Actions**: Use the passive voice when the string does not specify an explicit subject — for example, progress messages, gerund-only strings, and verb + object strings. If you can ask 'Who is doing this?' and the answer is not in the string, use passive voice. When in doubt, default to passive.
        - *Source:* "updating…" → *Target:* "ଅପ୍‌ଡେଟ୍ ହେଉଛି…"
        - *Source:* "Adding %@ Videos" → *Target:* "%@ ଟି ଭିଡିଓ ଯୋଗ କରାଯାଉଛି"
      
      - **Odia Is Gender-Neutral**: Pronouns, adjectives, and verbs in Odia do not change based on the gender of the noun. Transliterated English words also remain gender-neutral. Use gender-neutral phrasing wherever possible and avoid reinforcing male or female stereotypes.
        - *Source:* "Sunita is driving a car. She is driving it slowly." → *Target:* "ସୁନୀତା ଏକ କାର୍ ଚଲାଉଛନ୍ତି। ସେ ଏହାକୁ ଧୀରେ ଚଲାଉଛନ୍ତି।"
      
      - **Canonical Unicode Forms for Vowels**: Always use pre-composed characters for independent vowels (e.g., ଆ, not ଅ+ା).
      
      - **Canonical Unicode Forms for Matras**: Always use single code points for two-part vowel signs (e.g., ୋ, ୌ, not େ+ା, ୈ+ା).
      
      - **Ya-phala Conjuncts (ୟ)**: When creating a consonant conjunct with a 'ya' sound (ya-phala), always use the character ୟ (Oriya Letter YYA, U+0B5F) as the second consonant. Do not use ଯ (Oriya Letter YA, U+0B2F).
      
      - **Ba-phala Conjuncts (ବ)**: When creating a consonant conjunct with a 'ba' sound (ba-phala), always use the character ବ (Oriya Letter BA, U+0B2C). Do not use ଵ (VA) or ୱ (WA).
      
      - **Atomic Character WA (ୱ)**: The letter ୱ (Oriya Letter WA, U+0B71) is an atomic character and must be encoded as its single, dedicated code point. It should never be constructed as a conjunct (e.g., ଓ+୍+ବ).
      
      - **Plurals in Cases of Uncertainty**: When a plural noun in the source text acts as a label for a list or group of items whose exact number is unknown or variable, prefer the singular form in Odia. Use the plural marker ଗୁଡ଼ିକ only when the context explicitly confirms more than one item.
        - *Source:* "Your iPad cannot show the schedules or send reminders for the following medications:" → *Target:* "ଆପଣଙ୍କ iPad ନିମ୍ନଲିଖିତ ଔଷଧ ପାଇଁ ଶେଡ୍ୟୂଲ୍ ଦେଖାଇପାରିବ ନାହିଁ କିମ୍ବା ରିମାଇଣ୍ଡର୍ ପଠାଇପାରିବ ନାହିଁ:"
      
      - **English Articles in Headings, Titles, and other strings**: English articles 'a', 'an', or 'the' should not always be translated literally as ଏକ or ଗୋଟିଏ and can be omitted for a more natural Odia style.
        - *Source:* "Add a personal touch" → *Target:* "ପର୍ସନଲ୍ ଟଚ୍ ଯୋଡ଼ନ୍ତୁ"
      
      - **Standalone Alternative Text**: Standalone Alternative Text strings used to describe images or UI states should be translated using the passive voice (e.g., "is selected" -> "ଚୟନ କରାଯାଇଛି") or as descriptive phrases, matching the context of the image.
        - *Source:* "The AutoFill button is selected." → *Target:* "ଅଟୋଫିଲ୍ ବଟନ୍ ଚୟନ କରାଯାଇଛି।"
      
      - **Passive Voice for strings without an Explicit Subject**: Use the passive voice when the string does not specify an explicit subject, such as when a gerund is followed by a variable or preposition.
        - *Source:* "Adding %@ Videos" → *Target:* "%@ ଟି ଭିଡିଓ ଯୋଗ କରାଯାଉଛି"
      
      - **Active Voice for strings with an Explicit Subject**: Try to follow the active voice and emphasis of the source as much as possible when the string specifies an explicit subject.
        - *Source:* "%@ will send you an email." → *Target:* "%@ ଆପଣଙ୍କୁ ଏକ ଇମେଲ୍ ପଠାଇବ।"
      
      ## Orthography
      
      - **Bindu Usage on ଡ and ଢ**: The dot (bindu) is added under ଡ and ଢ to form ଡ଼ and ଢ଼ only when these letters appear in the middle or end of native Odia words. At the beginning of a word they are written without the dot.
        - *Source:* "Left to Right" → *Target:* "ବାମରୁ ଡାହାଣ"
        - *Source:* "Add a custom message" → *Target:* "ଏକ କଷ୍ଟମ୍ ମେସେଜ୍ ଯୋଡ଼ନ୍ତୁ"
        - *Source:* "Audio" → *Target:* "ଅଡିଓ"
      
      - **Zero Width Joiner (ZWJ) Usage**: A ZWJ is present in the encoding of a conjunct formed with ୟ (YYA) as the second element. Encode such conjuncts with the ZWJ in that position; do not insert ZWJ manually elsewhere.
        - *Source:* "Match" → *Target:* "ମ‍୍ୟାଚ୍"
      
      - **Zero Width Non-Joiner (ZWNJ) Usage**: A ZWNJ is present in the encoding where a halant (Virama) is applied twice in the middle of a word to avoid unwanted formation of conjuncts. A ZWNJ should never occur at the word-ending position.
        - *Source:* "update" → *Target:* "ଅପ୍‌ଡେଟ୍"
      
      ## Interface Elements
      
      - **Buttons Use Imperative with Helping Verb**: Button labels are translated in the imperative form with a formal tone. Helping verbs like କରନ୍ତୁ or ଦିଅନ୍ତୁ must be included so the label functions as a verb rather than a noun. In callout bars, the helping verb may be dropped only when the meaning is unambiguous and the term is widely understood.
        - *Source:* "Edit" → *Target:* "ଏଡିଟ୍ କରନ୍ତୁ"
        - *Source:* "Cancel" → *Target:* "ବାତିଲ୍ କରନ୍ତୁ"
        - *Source:* "Reply" → *Target:* "ଉତ୍ତର ଦିଅନ୍ତୁ"
      
      - **App Names Use Singular Form**: When localizing app names and category labels, use the singular noun form even when the source is plural. Plural forms sound awkward as standalone labels in Odia. One exception is 'Settings', which is rendered as ସେଟିଂସ୍ (retaining the plural marker); for other words that keep their plural marker, see 'App and Feature Names Exception: Plural Retention' below.
        - *Source:* "Photos" → *Target:* "ଫଟୋ" (app name)
        - *Source:* "Settings" → *Target:* "ସେଟିଂସ୍"
      
      - **Double Curly Quotes for Grammatically Ambiguous UI Terms**: Use double curly quotes (“ (\u201C) and ” (\u201D)) around feature or functionality names in a sentence only when their use would otherwise create grammatical ambiguity (e.g. change in number, oblique case, or other grammatical issue). Minimize the use of quotes and never use straight quotes in UI strings.
        - *Source:* "Hold select to clear" → *Target:* "କ୍ଲିଅର୍ କରିବା ପାଇଁ \u201Cଚୟନ କରନ୍ତୁ\u201Dକୁ ଦବାଇ ରଖନ୍ତୁ"
      
      - **App and Feature Names: Translation vs Transliteration**: Translate app and feature names if a natural, widely recognized Odia equivalent exists (e.g., Books -> ବହି). Transliterate if it is an established global digital concept or technical jargon (e.g., Apps -> ଆପ୍). The default form should be singular.
        - *Source:* "Books" → *Target:* "ବହି"
      
      - **App and Feature Names Exception: Plural Retention**: Retain the plural marker ('s') during transliteration for words that function exclusively as plural nouns (e.g., Vitals), colloquially established plural loanwords (e.g., Tips, Credits), or discipline/system nouns ending in '-ics' (e.g., Haptics, Analytics).
        - *Source:* "Vitals" → *Target:* "ଭାଇଟଲ୍ସ୍"
      
      - **Category Labels in Sentences**: When a transliterated category label refers to the UI tab/feature or is preceded by a number/quantifier, keep it singular (e.g., 3 notifications -> 3 ଟି ନୋଟିଫିକେଶନ୍). Use the plural marker (ଗୁଡ଼ିକ) only when specifically referring to multiple distinct items in a descriptive sentence.
        - *Source:* "3 new notifications" → *Target:* "3 ଟି ନୂଆ ନୋଟିଫିକେଶନ୍"
      
      - **Button Names in Sentences**: When a button name is referenced in running text, use double curly quotes (“ (\u201C) and ” (\u201D)) if the name breaks the sentence flow or creates grammatical ambiguity. Quotes are not needed if the button or CTA is already bound by asterisk signs.
        - *Source:* "click Add button" → *Target:* "\u201Cଯୋଡ଼ନ୍ତୁ\u201D ବଟନ୍ ଉପରେ କ୍ଲିକ୍ କରନ୍ତୁ"
      
      - **Inline Alt-Text Elements**: Do not translate the structural tags placed inside angle brackets (e.g., <AltText>). However, the text inside the tags may be translated, and the order of inline elements can be changed to fit Odia sentence structure.
        - *Source:* "Tap <AltText>Settings button</AltText>" → *Target:* "<AltText>ସେଟିଂସ୍ ବଟନ୍</AltText> ରେ ଟାପ୍ କରନ୍ତୁ"
      
      ## Punctuation
      
      - **Use Odia Full Stop Where Source Has a Period as full stop.**: The Odia full stop ପୂର୍ଣ୍ଣଚ୍ଛେଦ (।) must be used wherever a sentence ends if the source contains a period. Do not add or remove periods from strings that do not have them in the source, as they may be part of string concatenation or programmatic formatting.
        - *Source:* "Sunita is driving a car." → *Target:* "ସୁନୀତା ଏକ କାର୍ ଚଲାଉଛନ୍ତି।"
      
      ## Abbreviations
      
      - **Abbreviation Formation in Odia**: Avoid abbreviations in software translations unless space constraints make them unavoidable. Odia abbreviations are formed by taking the first syllable of the word followed by a dot (.). For example, ଦ.ପୂ. for ଦକ୍ଷିଣ-ପୂର୍ବ. Technical file format abbreviations (PDF, DOC, RTF) are kept in English.
        - *Source:* "South-East" → *Target:* "ଦ.ପୂ." (abbreviated)
      
      ## Acronyms
      
      - **Keep Acronyms in English Unless a Common Odia Form Exists**: Acronyms are not translated unless a very common Odia localized equivalent exists. Popular Odia acronyms such as ୟୁନିସେଫ୍ (UNICEF) and ବିଜେପି (BJP) are used without the abbreviation sign. Technical file format codes like PDF, DOC, and RTF stay in English and are not transliterated.
        - *Source:* "HDR" → *Target:* "HDR" (High Dynamic Range)
      
      ## Date And Time
      
      - **International Numerals in Dates and Times, No AM/PM Translation**: Use international numerals (not native Odia numerals) for hardcoded dates and times. Date format is DD/MM/YYYY for long format. Time uses a colon separator (hh:mm:ss). Do not localize AM/PM — keep it in English and match the source capitalization. Do not use a comma between the month and year.
        - *Source:* "29 December 2023" → *Target:* "29 ଡିସେମ୍ବର୍ 2023"
        - *Source:* "10:18:35" → *Target:* "10:18:35"
      
      ## Numerals
      
      - **Indian Numbering System for Separators**: Group large numbers using the Indian numbering system for digit grouping (e.g. 10,00,000 for one million). Keep the source's digits as they appear and do not transform the numeral system yourself. For count of objects, use the counter ଟି (for things) or ଜଣ ବ୍ୟକ୍ତି (for people).
        - *Source:* "10,000,000 songs" → *Target:* "1,00,00,000 ଗୀତ"
        - *Source:* "1 person" → *Target:* "1 ଜଣ ବ୍ୟକ୍ତି"
        - *Source:* "5 cards found" → *Target:* "5 ଟି କାର୍ଡ୍ ମିଳିଲା"
      
      ## Measurements
      
      - **Electronic Units Stay in English**: Measurement units related to electronics or computers (GB, KB, MB, etc.) are kept in English. For other units, always use the Odia abbreviation dot (.) for short and narrow unit forms. Some units without popular Odia short forms (lb, oz, yd, db, kcal) are kept in English.
        - *Source:* "8 GB" → *Target:* "8 GB"
        - *Source:* "kg" → *Target:* "କି.ଗ୍ରା."
        - *Source:* "cm" → *Target:* "ସେ.ମୀ."
      
      - **No Conversion of Measurements**: Do not convert measurements (e.g., imperial to metric) to local measurements when given in sentences or phrases. For example, do not convert inches to cm. Keep the original measurement values.
        - *Source:* "5\u2033 display" → *Target:* "5\u2033 ଡିସ୍‌ପ୍ଲେ"
      
      - **Spacing Between Number and Unit**: Match the space between the number and the unit of measurement exactly as it appears in the source. If the source has no space, the target should have no space.
        - *Source:* "10KB" → *Target:* "10KB"
      
      - **Abbreviation Dot for Short Units**: Always use the Odia abbreviation symbol (.) for short units (e.g., kg, cm, km, mm, ml, l). Translate these as କି.ଗ୍ରା., ସେ.ମୀ., କି.ମୀ., ମି.ମୀ., ମି.ଲୀ., ଲୀ.
        - *Source:* "10 kg" → *Target:* "10 କି.ଗ୍ରା."
      
      - **Transliteration of Loan Word Units**: Transliterate loan-word unit names using Oxford dictionary pronunciation rules. For example, use ମୀଟର୍, କିଲୋଗ୍ରାମ୍, ସେଣ୍ଟିମୀଟର୍, ପାଉଣ୍ଡ୍, ଆଉନ୍ସ୍, ଫୁଟ୍, ଲୀଟର୍, etc.
        - *Source:* "centimeter" → *Target:* "ସେଣ୍ଟିମୀଟର୍"
      
      - **Units Kept in English**: Abbreviated units that lack popular short forms in Odia and do not have common transliterated full forms (such as dB, kcal) must be kept in English.
        - *Source:* "kcal" → *Target:* "kcal"
      
      ## Names And Addresses
      
      - **Use Inclusive Indian Placeholder Names**: Replace English placeholder names with Indian names that do not reveal a specific caste, religion, or community. If the source or the developer's comment indicates the name refers to a specific, real individual (rather than a generic placeholder), keep that person's actual name — transliterating it into Odia script if it appears in Latin — instead of substituting a placeholder.
      
      ## Special Characters
      
      - **No Space between Currency Symbol and Amount**: Do not insert a space between the Indian Rupee symbol (₹) and the amount. Write currency amounts directly after the symbol without any whitespace.
        - *Source:* "₹500.45" → *Target:* "₹500.45"
      
      ## Diversity And Inclusion
      
      - **Inclusive Language and Fair Representation**: Translate consciously to include everyone. Avoid terms that are violent, oppressive, or ableist (e.g. *kill*, *master*/*slave*, *sanity check*). Do not use color to convey positive or negative qualities. Avoid stereotypes based on gender, ability, or age, and represent diverse backgrounds when content depicts people. Odia is grammatically gender-neutral (see Grammar) — keep phrasing neutral. When referring to people with disabilities, use people-first language. Use inclusive placeholder names that don't reveal caste, religion, or community (see Names And Addresses).
      
      ## Variables
      
      - **Reorder Variables Using Positional Indices**: Preserve all variables exactly as they appear in the source. When Odia grammar requires a different word order, number all variables using positional arguments ('n$' after the % sign). Never change the period in numeric format strings like %.1f to a comma — the software handles decimal formatting.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%2$@ ରେ %3$@ ଖେଳି %1$@ ପାଇଥିବା ସ୍କୋର୍ ଯାଞ୍ଚ କରନ୍ତୁ।"
      
    • styleguide_pa.md 16 KB
      # Punjabi (pa) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Punjabi uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting UI feature names, and the curly apostrophe ’ (\u2019). Note that the Chhut Marodi shortened form uses a **straight apostrophe** (U+0027), not a curly one — see Punctuation.
        - *Source:* "Tap \u201CEdit\u201D to change your note." → *Target:* "ਆਪਣਾ ਨੋਟ ਬਦਲਣ ਲਈ \u201Cਸੋਧ ਕਰੋ\u201D 'ਤੇ ਟੈਪ ਕਰੋ।"
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: Use a written colloquial style that is a fine balance between spoken and written Punjabi, closer to formal than informal but never stiff or archaic. Follow the register of national newspapers. Avoid old or obscure vocabulary wherever a more current word exists.
        - *Source:* "Sign in with your account" → *Target:* "ਆਪਣੇ ਖਾਤੇ ਨਾਲ ਸਾਈਨ ਇਨ ਕਰੋ"
      
      - **Prefer Punjabi but Prioritize Clarity**: Use native Punjabi or well-integrated loan words when clearly understood by urban Punjabi speakers. When no natural equivalent exists or the Punjabi term is archaic, transliterate the English term. The guiding principle is the reader's ease of understanding, not word origin.
        - *Source:* "Installation" → *Target:* "ਇੰਸਟਾਲੇਸ਼ਨ"
      
      - **Use Gurmukhi Script**: All Punjabi text must be written in Gurmukhi. Transliterated English words must also be rendered in Gurmukhi using British/Indian English pronunciation as reference, not American English.
        - *Source:* "Default / Folder / Phone" → *Target:* "ਡਿਫ਼ੌਲਟ / ਫ਼ੋਲਡਰ / ਫ਼ੋਨ"
      
      ## Addressing Users
      
      - **Use the Honorific Second Person (ਤੁਸੀਂ)**: Always address the user with ਤੁਸੀਂ and formal verb forms (ਗਏ, ਕਰੋ). Never use informal ਤੂੰ or informal verb forms (ਗਈ). Apply this uniformly across all strings, with no exceptions.
        - *Source:* "You have not gone home." → *Target:* "ਤੁਸੀਂ ਘਰ ਨਹੀਂ ਗਏ" (not: ਤੂੰ ਘਰ ਨਹੀਂ ਗਈ)
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software Strings**: Do not abbreviate words in software translations unless all other approaches have been exhausted. Sensitive abbreviations like SOS must remain in English.
        - *Source:* "North" (abbreviated) → *Target:* "ਉ." (from ਉੱਤਰ)
      
      ## Acronyms
      
      - **Retain English Acronyms; Transliterate Well-Known Ones**: Do not translate technical acronyms unless a widely recognized Punjabi equivalent exists. Popular acronyms like UNESCO and FIFA are transliterated into Gurmukhi without the abbreviation period.
        - *Source:* "UNESCO / FIFA" → *Target:* "ਯੂਨੈਸਕੋ / ਫ਼ੀਫ਼ਾ"
      
      ## Date And Time
      
      - **Date and Time Format**: Use international numerals in hardcoded dates and times. Preferred date format: 17 ਮਾਰਚ 2022 (correspondence) and DD/MM/YYYY (long). Use colon as time separator with no surrounding spaces. Do not localize AM/PM.
        - *Source:* "March 17, 2022 / 7:15 AM" → *Target:* "17 ਮਾਰਚ 2022 / 7:15 AM"
      
      ## Measurements
      
      - **Do Not Convert Measurement Units**: Retain the measurement system from the source. Electronics and computing units (GB, MB, KB, Hz, dB) must remain in English. Keep numeric values as the source's digits. Use international numerals for all numeric values.
        - *Source:* "8 GB / 1080p" → *Target:* "8 GB / 1080p"
      
      - **Localize Common Physical Units with Abbreviation Sign**: Common metric units km and kg are rendered as Punjabi abbreviations: ਕਿ.ਮੀ. for km and ਕਿ.ਗ੍ਰਾ. for kg. Always place a space between the number and the unit.
        - *Source:* "5 km / 10 kg" → *Target:* "5 ਕਿ.ਮੀ. / 10 ਕਿ.ਗ੍ਰਾ."
      
      ## Addresses
      
      - **Use Generic Punjabi Sample Names**: Replace English placeholder names with generic Punjabi names that do not reveal caste or sect. Use diverse names. If the source or the developer's comment indicates the name refers to a specific, real individual (rather than a generic placeholder), keep that person's actual name — transliterating it into Gurmukhi script if it appears in Latin — instead of substituting a placeholder.
      
      - **Indian Address Format and PIN Code**: Format addresses using Indian structure: Name, Building/Plot, Street, Locality, City, State-PIN Code (e.g. ਅਮਨਦੀਪ ਸਿੰਘ / ਮਕਾਨ ਨੰ. 1234 / ਮੋਹਾਲੀ, ਪੰਜਾਬ-140055). PIN codes are 6 digits with no spaces in international numerals. Non-Indian addresses remain in English.
      
      ## Numerals
      
      - **Use Indian Numbering System for Digit Grouping**: Apply the Indian numbering system for grouping large numbers (10,00,000 not 1,000,000). Keep the source's digits as they are — do not convert them to native Gurmukhi numerals yourself, as whether digits ultimately display as international or native is a user setting the translation can't see.
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 ਗਾਣੇ"
      
      - **Ordinal Numbers**: Spell out the first four ordinals: ਪਹਿਲਾ, ਦੂਜਾ, ਤੀਜਾ, ਚੌਥਾ. From 5th onward, append ਵਾਂ to the numeral (5ਵਾਂ, 6ਵਾਂ, etc.).
        - *Source:* "1st / 5th" → *Target:* "ਪਹਿਲਾ / 5ਵਾਂ"
      
      ## Special Characters
      
      - **Use Dandi as the Punjabi Full Stop**: Sentences end with Dandi (।) not a Latin full stop. Do not add Dandi if the source string does not end with a period, as the string may be concatenated programmatically.
        - *Source:* "Please try again later." → *Target:* "ਕਿਰਪਾ ਕਰਕੇ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"
      
      - **Always Use Nuqta for Correct Pronunciation**: Use nuqta for all six Punjabi consonants that carry it: ਸ਼, ਖ਼, ਗ਼, ਜ਼, ਫ਼, ਲ਼. Use ਫ਼ for English f sound and ਜ਼ for z sound.
        - *Source:* "File / Default / Folder / Zone" → *Target:* "ਫ਼ਾਈਲ / ਡਿਫ਼ੌਲਟ / ਫ਼ੋਲਡਰ / ਜ਼ੋਨ"
      
      - **Currency Symbol: No Space After Rupee Sign**: Do not place a space between the Indian Rupee symbol and the numeral (₹500.45, not ₹ 500.45). When writing in full, use ਰੁਪਏ as a standalone word after the numeral, e.g. ਪੰਜਾਹ ਰੁਪਏ.
        - *Source:* "500.45 rs./500.45 rupees" → *Target:* "₹500.45/ ਪੰਜਾਹ ਰੁਪਏ"
      
      ## Orthography
      
      - **Correct Unicode Sequences for Nuqta Consonants**: For ਸ਼ encode the precomposed character U+0A36. For ਖ਼, ਗ਼, ਜ਼, ਫ਼ encode base consonant + combining Nuqta (U+0A3C) — these are Composition Exclusions and have no single precomposed form.
        - *Source:* "File / Zone / Evening" → *Target:* "ਫ਼ਾਈਲ / ਜ਼ੋਨ / ਸ਼ਾਮ"
      
      - **Correct Encoding of Independent Vowels and Dependent Vowel Signs**: Encode each independent vowel as its single Unicode codepoint, never constructed from two characters (encode ਆ as U+0A06, not ਅ+ਾ; encode ਇ as U+0A07, not ੲ+ਿ). Dependent vowel signs must always follow the consonant, never precede it (ਕਿ = ਕ+ਿ, not ਿ+ਕ). Do not use ZWJ or ZWNJ to construct vowel characters.
      
      - **Conjuncts: Only Three Used in Modern Gurmukhi**: In modern Punjabi only three subjoined pairin forms are used: ਸ੍ਵ, ਸ੍ਰ, ਸ੍ਹ. Additional conjuncts appear only in traditional Gurbani texts. All conjuncts must be formed using Consonant + Halant + Consonant (e.g. ਕ੍ਰ = ਕ+੍+ਰ and ੜ੍ਹ = ੜ+੍+ਹ).
      
      ## Punctuation
      
      - **Comma and Colon Usage**: Do not place a comma before ਅਤੇ (and) or ਜਾਂ (or) in a list. Use colons to introduce lists or explanations. No spaces before or after a slash in ratios or paths.
        - *Source:* "Do task one, two, and three." → *Target:* "ਕੰਮ ਇੱਕ, ਦੋ ਅਤੇ ਤਿੰਨ ਕਰੋ।" (no comma before ਅਤੇ)
      
      - **Chhut Marodi: Apostrophe for Shortened Words**: Chhut Marodi shortens words: ਇਸ ਵਿੱਚ becomes ਇਸ 'ਚ and ਇਸ ਉੱਤੇ becomes ਇਸ 'ਤੇ. Always use a straight apostrophe (U+0027) for the shortened form, not the right single quotation mark ’ (\u2019).
        - *Source:* "ਇਸ ਵਿੱਚ / ਇਸ ਉੱਤੇ" → *Target:* "ਇਸ 'ਚ / ਇਸ 'ਤੇ"
      
      ## Grammar
      
      - **Passive Voice and Gender Neutrality: When and How**: Use passive voice in only two cases: (1) when the string has no explicit subject, e.g. system status messages like updating or adding; (2) when an intransitive verb would directly reveal the user's gender (e.g. ਗਿਆ vs ਗਈ) — in this case either use passive voice or rephrase to avoid the gendered form altogether. Do not use passive voice as a general gender-neutrality strategy. Past transitive constructions (ਨੇ + verb) are already gender-neutral because the verb agrees with the object, not the subject. Prefer natural active voice wherever possible.
        - *Source:* "updating / %@ did this / %@ went home" → *Target:* "ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ (passive, no subject) / %@ ਨੇ ਇਹ ਕੀਤਾ (active, gender not visible) / %@ ਵੱਲੋਂ ਇਹ ਕੀਤਾ ਗਿਆ (passive, gender hidden)"
      
      - **Apply Oblique Case Before Postpositions**: Punjabi nouns and pronouns change to oblique case when followed by a postposition. Every noun before ਵਿੱਚ, ਨੂੰ, ਤੋਂ etc. must be in the correct oblique form.
        - *Source:* "Your account includes subscriber podcasts." → *Target:* "ਤੁਹਾਡੇ ਖਾਤੇ ਵਿੱਚ ਸਬਸਕ੍ਰਾਈਬਰ ਪੌਡਕਾਸਟ ਸ਼ਾਮਲ ਹਨ।" (ਖਾਤੇ not ਖਾਤਾ)
      
      - **Vowel Mapping and Vowel Drop Rule**: Map English vowels as follows: short 'i' → ਿ◌ (ਡਿਵਾਈਸ), long 'i' → ◌ੀ (ਸ਼ੀਟ), short 'u' → ◌ੁ (ਅਕਾਊਂਟ), long 'u' → ◌ੂ (ਟੂਲ), long 'O' → ◌ੋ (ਨੋਟ), 'aw/ou' → ◌ੌ (ਮੌਮ), 'ay' → ◌ੇ (ਡੇਟ), 'ae/a' → ◌ੈ (ਐਪ). Vowel Drop Rule: When English words enter Punjabi through everyday use, unstressed vowels are dropped or shifted to match Punjabi phonology. Always follow how the word is actually spoken in Punjabi, not how it is spelled in English.
        - *Source:* "Content / Comment / Call / America" → *Target:* "ਕੰਟੈਂਟ (not ਕੌਂਟੈਂਟ) / ਕਮੈਂਟ (not ਕੌਮੈਂਟ) / ਕਾਲ (not ਕੌਲ) / ਅਮਰੀਕਾ (not ਅਮੈਰਿਕਾ)"
      
      - **Mapping S/Sh, J/Z and F Sounds**: For 'S' sound use ਸ (ਸੋਰਸ). For 'Sh' sound use ਸ਼ with Nuqta (ਸ਼ੀਟ). For 'J' sound use ਜ. For 'Z' sound use ਜ਼ with Nuqta (ਜ਼ਿਊਰਿਖ). For 'F' sound use ਫ਼ with Nuqta (ਫ਼ਾਈਲ). Nuqta is mandatory for all three — ਜ਼, ਫ਼, ਸ਼ must never be written without it.
        - *Source:* "Source / Sheet / Zone / File / Zurich" → *Target:* "ਸੋਰਸ / ਸ਼ੀਟ / ਜ਼ੋਨ / ਫ਼ਾਈਲ / ਜ਼ਿਊਰਿਖ"
      
      - **English Plural Sounds and Nasal Sounds (Bindi and Tippi)**: For English plurals, transcribe the final sound phonetically only: if it ends in /s/ sound use ਸ (ਨੋਟਸ); if it ends in /z/ sound use ਜ਼ (ਵਿੰਗਜ਼). For nasal sounds: use Tippi (ੰ) when the nasal sound is followed by a consonant within the same word (ਵਾਸ਼ਿੰਗਟਨ, ਲੰਡਨ); use Bindi (ਂ) when the nasal sound nasalizes a vowel (ਫ਼ਰਾਂਸ, ਸੈਨ ਫ਼ਰਾਂਸਿਸਕੋ).
        - *Source:* "Notes / Wings / Washington / France" → *Target:* "ਨੋਟਸ / ਵਿੰਗਜ਼ / ਵਾਸ਼ਿੰਗਟਨ / ਫ਼ਰਾਂਸ"
      
      - **Consonant Clusters and Halant Rules**: For English transliteration, only two subjoined forms are used: ੍ਰ (half Ra) and ੍ਹ (half Ha). Do not apply Halant to any other consonant. Rule 1: 'r' cluster + short vowel → use Halant ੍ਰ (ਸਟ੍ਰਿੰਗ, ਸਟ੍ਰੈਂਥ). Rule 2: 'r' cluster + long vowel → use full ਰ (ਸਕਰੀਨ, ਗਰਾਊਂਡ). Exception to Rule 2: if the word has an established standardized Punjabi spelling, always prefer that over the rule (ਗ੍ਰੀਨ not ਗਰੀਨ). Rule 3: Punjabi proper nouns never use Halant regardless of cluster (ਗਰੇਵਾਲ, ਸ਼ਰਮਾ)
        - *Source:* "String / Screen / Green / Grewal" → *Target:* "ਸਟ੍ਰਿੰਗ (Rule 1) / ਸਕਰੀਨ (Rule 2) / ਗ੍ਰੀਨ (Exception) / ਗਰੇਵਾਲ (Rule 3)"
      
      - **Transliteration Pronunciation Standard**: Use ODE (Oxford Dictionary of English) as the reference for standard pronunciation when mapping English sounds to Gurmukhi. Always base transliteration on how the word is actually pronounced, not how it is spelled in English.
        - *Source:* "File / Zone / America" → *Target:* "ਫ਼ਾਈਲ / ਜ਼ੋਨ / ਅਮਰੀਕਾ"
      
      - **Headings: Noun Form by Default, Imperative for Creative Pages**: Headings default to noun/infinitive form (ਬਦਲਣਾ, ਬਣਾਉਣਾ) for standard instructional strings. For creative or promotional strings such as welcome screens and feature highlights, imperative verb form (ਖਿੱਚੋ, ਬਣਾਓ) is acceptable and often preferred. Use judgment based on tone and purpose.
        - *Source:* "Change iPhone Sounds (instructional) / Take your best shot (creative)" → *Target:* "iPhone ਦੀਆਂ ਧੁਨੀਆਂ ਬਦਲਣਾ / ਬਿਹਤਰੀਨ ਤਸਵੀਰਾਂ ਖਿੱਚੋ"
      
      ## Interface Elements
      
      - **Buttons Use Imperative Form with Helping Verb**: Translate button labels in imperative form and always include a helping verb (ਕਰੋ, ਦਿਓ) so the label reads as a verb phrase not a bare noun.
        - *Source:* "Edit / Cancel / Cut / Paste" → *Target:* "ਸੋਧ ਕਰੋ / ਰੱਦ ਕਰੋ / ਕੱਟ ਕਰੋ / ਪੇਸਟ ਕਰੋ"
      
      - **Use Curly Quotes Around UI Feature Names When Grammatically Necessary**: Wrap UI feature or app names in double curly quotes only when leaving them unquoted would create grammatical ambiguity. Minimize use of quotes and prefer rephrasing.
        - *Source:* "To add files into the folder, click Add button." → *Target:* "ਫ਼ੋਲਡਰ ਵਿੱਚ ਫ਼ਾਈਲਾਂ ਜੋੜਨ ਲਈ ਜੋੜੋ ਬਟਨ ਤੇ ਕਲਿੱਕ ਕਰੋ।"
      
      - **App Name and Category Label Pluralization Rules**: Plural marking in Punjabi is gender-dependent and governs all app name and category label translations. Three rules apply: (1) Feminine nouns always take the -ਆਂ (aan) suffix: ਫ਼ਾਈਲ → ਫ਼ਾਈਲਾਂ (2) Masculine nouns ending in vowel -ਾ (aa) change to -ੇ (e) in the plural: ਨਕਸ਼ਾ → ਨਕਸ਼ੇ (3) Masculine nouns ending in a consonant have identical Direct Singular and Direct Plural forms and take no plural suffix: ਸੰਪਰਕ, ਕਲਾਕਾਰ
        - *Source:* "Files / Maps / Contacts / Reminders" → *Target:* "ਫ਼ਾਈਲਾਂ (feminine -ਆਂ) / ਨਕਸ਼ੇ (masculine -ਾ → -ੇ) / ਸੰਪਰਕ (masculine consonant, no change) / ਰਿਮਾਈਂਡਰ (masculine consonant, no change)"
      
      ## Key Labels
      
      - **Transliterate Physical Keyboard Key Names**: Keyboard shortcuts (cmd+N etc.) are copied as-is. Physical keyboard key names (esc, command, option) are transliterated into Gurmukhi.
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Variables must be kept exactly as in source. When Punjabi word order requires reordering, number all variables using n$ index format (%1$@, %2$@). Never change variable type or remove a variable. Do not change a period to comma inside numeric format specifiers.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%3$@ ਖੇਡਦੇ ਹੋਏ %2$@ ਤੇ ਹਾਸਲ ਕੀਤੇ ਸਕੋਰ %1$@ ਨੂੰ ਦੇਖੋ।"
      
      ## Diversity And Inclusion
      
      - **Inclusive Language and Fair Representation**: Translate consciously to include all users. Prefer neuter or plural phrasing over masculine defaults. Do not use color metaphors for positive or negative qualities.
        - *Source:* "You're becoming a world-building master!" → *Target:* "ਤੁਸੀਂ ਇੱਕ ਵਿਸ਼ਵ-ਨਿਰਮਾਣ ਮਾਹਰ ਬਣ ਰਹੇ ਹੋ!"
      
    • styleguide_pl.md 14.9 KB
      # Polish (pl) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Polish uses curly lower-upper quotation marks „ (\u201E) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "The concept of \u201Cprivacy\u201D" → *Target:* "Pojęcie \u201Eprywatności\u201D"
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: The overall tone should lean formal rather than informal, but must never feel stiff or pedantic. Use neutral, descriptive language and avoid trendy or hip expressions. Prefer Polish terminology over English borrowings whenever a natural Polish equivalent is broadly understood.
        - *Source:* "Sign in with your account." → *Target:* "Zaloguj się na swoje konto."
      
      - **Avoid Diminutives Except Established Ones**: Avoid diminutive forms unless their use is well established (e.g., 'obrazek', 'miniaturka'). Default to the neutral non-diminutive form.
        - *Source:* "small picture / thumbnail" → *Target:* "obrazek / miniaturka" (established diminutives; do not coin arbitrary ones)
      
      ## Addressing Users
      
      - **Direct Second-Person Address; Capitalize Pronouns; Avoid Gender-Specific Forms**: Address the user directly in the second person — not via formal titles like Pani or Państwo. Capitalize all personal and possessive pronouns (Ty, Ciebie, Ci, Twój, Twoje) and use implied-subject constructions wherever possible. Never reveal the user's gender through past-tense or conditional-mood verb forms; rephrase to nominalized or impersonal structures instead.
        - *Source:* "Shut down your computer." → *Target:* "Wyłącz komputer." (implied subject)
        - *Source:* "You won." → *Target:* "Wygrana." (noun form, not Wygrałeś/Wygrałaś)
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software Strings**: Do not abbreviate words in software translations unless all other approaches (such as rewording) have been exhausted. Common accepted abbreviations include m.in., wg, zob. Translated equivalents for 'e.g.' and 'etc.' are np. and itd./itp. respectively.
        - *Source:* "e.g. / etc." → *Target:* "np. / itd."
      
      ## Acronyms
      
      - **Retain English Acronyms Unless a Standard Polish Equivalent Exists**: Do not translate acronyms unless a very common localized equivalent exists in standard technical dictionaries. If the source already provides a spelled-out expansion, translate it; do not add one the source lacks. De-facto industry-standard acronyms (ISO, ASCII, ANSI) are left unchanged.
        - *Source:* "RAM (random access memory)" → *Target:* "RAM (pamięć o dostępie swobodnym)"
      
      ## Date And Time
      
      - **Follow Polish Time Format**: Use the system standard for date and time in software strings. When displaying actual time (not format labels), convert 12-hour (AM/PM) notation to the 24-hour Polish format. Keep 'AM' and 'PM' in English only when the string is itself a 12-hour time-format label (the actual text being displayed).
        - *Source:* "4 PM" → *Target:* "16:00"
      
      ## Measurements
      
      - **Do Not Convert Measurement Units; Follow Polish Notation**: Do not convert imperial units to metric in general contexts. In combined units, replace the English 'per' indicator with a slash: kbps becomes kb/s and FPS becomes kl./s. Separate the value from the unit with a non-breaking space. The correct abbreviation for minutes is 'min' (no full stop); use 'godz.' for hours unless space is very limited.
        - *Source:* "kbps / FPS" → *Target:* "kb/s / kl./s"
        - *Source:* "1024 KB / 100 m" → *Target:* "1024 KB / 100 m"
      
      - **Bytes vs Bits Casing; No Space Before Percent or Degree**: Use uppercase B for bytes (KB, MB, GB) and lowercase b for bits (Kb, Mb, Gb). Lowercase k stands for 1000 units; uppercase K stands for 1024 units. Do NOT insert a non-breaking space before the percent sign or the degree symbol (write '15%' and '20°', not '15 %' or '20 °').
        - *Source:* "15 % / 20 ° / 5 Mb" → *Target:* "15% / 20° / 5 Mb" (5 Mb = bits; 5 MB = bytes)
      
      ## Numerals
      
      - **Polish Number Notation**: In Polish, thousands are separated by spaces and the decimal separator is a comma. Do not use periods as thousands separators.
        - *Source:* "1,000,000 songs / 1,000,000.00 currency" → *Target:* "1 000 000 piosenek / 1 000 000,00"
      
      ## Addresses
      
      - **Use Locally-Appropriate Placeholder Names and Polish Address Format**: Replace English placeholder names with locally-appropriate Polish names. Format addresses in Polish order: Full Name, Street Address, Postal-Code City, COUNTRY. The Polish postal code format is XX-XXX (two digits, dash, three digits). Example format: `ul. Cicha 132/16, 62-200 Gniezno`.
      
      ## Special Characters
      
      - **Always Use Polish Diacritics**: Polish diacritic characters (ą, ć, ę, ł, ń, ó, ś, ź, ż) must always be used in text. Exceptions are only functional or technical contexts where diacritics are not supported, such as URLs or email addresses. Never localize the domain 'example.com' as 'przyklad.com'.
        - *Source:* "firstname.lastname@example.com" → *Target:* "imie.nazwisko@example.com" (no diacritics in email addresses)
      
      - **Non-Breaking Hyphens and Spaces in Product Names**: Use non-breaking hyphens in hyphenated product names (Wi-Fi, MultiTouch) to prevent incorrect line breaks. Use non-breaking spaces within multi-word product names (iPod touch, MacBook Pro, iPhone X, Apple Watch) to keep them together.
        - *Source:* "Wi-Fi / iPod touch" → *Target:* "Wi‑Fi / iPod touch"
      
      ## Punctuation
      
      - **Polish Comma Rules — Do Not Follow English Conventions**: Do not copy English comma rules into Polish. In particular, do not add a comma after an opening adverbial phrase, and do not place a comma before the conjunctions i or lub. Polish uses a comma before a following clause only when required by Polish syntax.
        - *Source:* "After loading the data, press Return." → *Target:* "Po wczytaniu danych naciśnij klawisz Return." (no comma after adverbial)
        - *Source:* "Do task one, two, and three." → *Target:* "Wykonaj czynność pierwszą, drugą i trzecią." (no comma before i)
      
      - **Quotation Marks — Use Polish Lower-Upper Style**: Where technically possible, use Polish curly lower-upper quotation marks („” — opener \u201E, closer \u201D). Use quotation marks for concepts and terms, not for UI labels.
        - *Source:* "The concept of \u201Cprivacy\u201D" → *Target:* "Pojęcie \u201Eprywatności\u201D"
      
      - **Colon — Lowercase Word Follows**: The word following a colon is written in lowercase (e.g., 'Test „ślepy”: naciśnij każdy klawisz 1 raz').
      
      - **Dash Usage — Hyphen, En-Dash, and Em-Dash**: Polish uses three distinct dash characters. Use a hyphen (-) to join words (biało-czerwony) or numbers with words (32-bitowy). Use an en-dash (–) for value ranges (lata 2012–2013) and as a minus sign. Use an em-dash (—) for pauses or separated phrases; never begin a line with an em-dash — always precede it with a non-breaking space.
        - *Source:* "years 2012–2013 / black-and-white / 32-bit" → *Target:* "lata 2012–2013 / czarno-biały / 32-bitowy"
      
      - **Use the Single Ellipsis Character**: Always use the single ellipsis character (…, Unicode U+2026) rather than three separate full stops. In software strings this distinction affects functionality.
        - *Source:* "Loading..." → *Target:* "Wczytywanie…" (single character, not three dots)
      
      ## Grammar
      
      - **Adjective Order Conveys Fixed vs. Temporary Qualities**: In Polish, an adjective placed before a noun usually indicates a temporary or non-fixed feature (e.g., pusty ekran), while an adjective placed after the noun indicates a permanent or fixed one (e.g., dysk twardy). Follow this convention consistently rather than mirroring English adjective placement.
        - *Source:* "empty screen / hard disk / drop-down list" → *Target:* "pusty ekran / dysk twardy / lista rozwijana"
      
      - **Prepositions: Do Not Automatically Translate 'for' as 'dla'**: Pay special attention when translating 'for' — do not automatically render it as 'dla'. Consider other options depending on context. Do not use 'dla' before gerunds. Follow established conventions for prepositions with device names: use 'do' for adding content, 'na' for copying and location, 'na' for installing.
        - *Source:* "Default app for sending messages" → *Target:* "Domyślna aplikacja do wysyłania wiadomości" ('for' → 'do', not 'dla'; no 'dla' before a gerund)
        - *Source:* "add photos to iPhone / files on iPhone" → *Target:* "dodawać zdjęcia do iPhone'a / pliki na iPhonie"
      
      ## Syntax
      
      - **Imperative Without „Proszę”**: Translate imperative source strings using the bare Polish imperative; do not insert 'proszę' even if the source contains 'please'.
        - *Source:* "Please click Continue." → *Target:* "Kliknij w Dalej." (not: Proszę kliknąć w Dalej.)
      
      ## Interface Elements
      
      - **Buttons: Imperative Form**: Button labels that are verbs use the imperative mood. Aspect is not a single default — most one-shot actions are perfective (Otwórz, Anuluj), but several common buttons are conventionally imperfective (Instaluj, Importuj, Przeglądaj — not Przejrzyj). Reuse the established Polish form for a given button as it appears in previously-translated strings. Other established forms include Edit → Edycja and Continue → Dalej.
        - *Source:* "Open / Install / Cancel / Browse / Import" → *Target:* "Otwórz / Instaluj / Anuluj / Przeglądaj / Importuj"
      
      - **Tooltips: Use Imperative, No Trailing Full Stop**: Translate tooltips using the imperative mood (do not switch from the imperative in the source to the indicative in the target). Do not end tooltips with a full stop. Use the patterns: 'Utwórz nowy plik', 'Zaznacz tę opcję, aby…', 'Kliknij, aby <action>…'.
        - *Source:* "Create a new file." → *Target:* "Utwórz nowy plik" (no full stop)
        - *Source:* "Click to close…" → *Target:* "Kliknij, aby zamknąć…"
      
      - **Window Titles: Use Noun/Gerund Phrases**: Window titles should use noun-based or gerund-based phrases rather than imperative verbs, to convey a state or ongoing process rather than a command.
        - *Source:* "Add Account" → *Target:* "Dodawanie konta" (gerund, not Dodaj konto)
      
      - **Progress Messages — First-Person Singular Present**: System messages that communicate an ongoing action (Searching…, Loading…, Waiting…) should be translated in the first-person singular present tense. This is the only permitted case where software status messages use a grammatical first person.
        - *Source:* "Searching… / Loading… / Waiting…" → *Target:* "Szukam… / Wczytuję… / Czekam…"
      
      - **Search Placeholders Are Always „Szukaj”**: Due to space restrictions, all search-field placeholders are uniformly translated as 'Szukaj', regardless of the variation in the source ('Search library', 'Search videos', 'Search files', etc.).
        - *Source:* "Search library / Search videos / Search files" → *Target:* "Szukaj"
      
      - **Application Names: Do Not Translate Trademarked Names**: Apple software uses a mix of translated and untranslated application names. Leave trademarked product names untranslated.
        - *Source:* "QuickTime Player" → *Target:* "QuickTime Player" (trademarked name, left untranslated)
      
      - **Callouts: Remove Final Full Stop**: Callouts may be descriptive, instructional, or informative — style varies by context. Regardless of source style, drop the trailing full stop (only on the last sentence in multi-sentence callouts). Other final punctuation, such as ellipses or question marks, is kept.
        - *Source:* "Tap to begin." → *Target:* "Stuknij, aby rozpocząć"
      
      - **Submenu, Radio, and Dropdown Grammatical Continuation**: When a submenu item, radio button, or dropdown option is a grammatical and semantic continuation of its parent label, render it lowercase and matching the parent's grammar. Treat 'standalone' items (typically separated by a horizontal line in the UI) as nominative-case, capitalized phrases.
        - *Source:* "Show: [All / Recent / None]" → *Target:* "Pokazuj: wszystko / ostatnie / brak" (lowercase continuation)
      
      ## Key Labels
      
      - **Keep Modifier and Action Key Names in English**: Key names such as Command, Control, Option, Return, Delete, Escape, and Shift are always left in English. Exceptions: 'tabulator', 'spacja', and arrow keys (described as 'klawisze ze strzałkami').
        - *Source:* "Press Command-S to save." → *Target:* "Naciśnij Command-S, aby zachować."
      
      ## Trademarks And Product Names
      
      - **Decline Apple Product Names Correctly in Polish**: Trademarks must not be translated or transliterated unless instructed. When Apple product names are used in Polish sentences, they must be declined following approved patterns. iPhone and Mac are masculine-animate nouns. Apple Watch and Apple Vision Pro are masculine-inanimate. AirPods is treated as a brand noun requiring the 'słuchawki' descriptor. AirTags follow the animate declension pattern (GEN AirTaga).
        - *Source:* "Reset this Mac / Reset this Apple Watch" → *Target:* "Wyzeruj tego Maca / Wyzeruj ten Apple Watch"
      
      - **Use „aplikacja” and „system” Descriptors**: Use the descriptor 'aplikacja' before app names (except for Wallet, which is declined as 'Portfel'). Use the descriptor 'system' before all OS names (system macOS, system iOS, system iPadOS, etc.).
        - *Source:* "Open Notes / macOS Sequoia" → *Target:* "Otwórz aplikację Notatki / system macOS Sequoia"
      
      - **Do Not Capitalize the Initial „i” in iPhone, iPad, iTunes**: Never capitalize the first 'i' in product names like iPhone, iPad, iTunes, even when they appear at the start of a sentence.
        - *Source:* "iPhone is required." → *Target:* "iPhone jest wymagany." (not: IPhone)
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Variables must be kept exactly as they appear in the source. When Polish word order requires reordering, number all variables using n$ index syntax (%1$@, %2$@) before rearranging. Do not change a period to a comma inside a numeric format specifier (e.g., %.1f GB) — decimal point changes are handled by the software.
        - *Source:* "Text %@ text %@ text %@." → *Target:* "Tekst %1$@ tekst %3$@ tekst %2$@." (when 2nd and 3rd variables must be swapped)
      
      ## Diversity And Inclusion
      
      - **Inclusive Language and Fair Representation**: Translate consciously to include all users. Avoid referring to the user in the masculine gender unless absolutely necessary — prefer plural or impersonal constructions. Avoid terms that are violent, oppressive, or carry harmful historical connotations. Do not use color metaphors to convey positive or negative qualities. Use people-first language when referring to disability.
        - *Source:* "Blind users" → *Target:* "osoby niewidzące lub niedowidzące" (people-first)
      
      ## General Advice
      
      - **Use Context to Resolve Ambiguous Strings**: Before translating a short or isolated string, check its surrounding strings, UI context, and comments to understand its role. Polish word order is flexible — use that flexibility to produce natural-sounding text rather than mirroring the English structure word for word.
        - *Source:* "View options" → *Target:* "Opcje wyświetlania" (noun phrase) vs. "Wyświetl opcje" (verb phrase) — context decides
      
    • styleguide_pt-BR.md 10 KB
      # Brazilian Portuguese (pt-BR) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Brazilian Portuguese uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Tap \u201CDelete\u201D." → *Target:* "Toque em \u201CApagar\u201D."
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Write in a neutral, descriptive style that is closer to formal than informal without being stiff or trendy. The translation succeeds when the reader does not feel they are reading a translation — avoid pedantic word-for-word rendering and any cryptic phrasing.
      
      ## Addressing Users
      
      - **Use 'você' to Address the User**: Always use the second-person pronoun 'você' when addressing the user directly. Do not use third-person forms. This applies consistently across all Apple software, help, and documentation in Brazilian Portuguese.
        - *Source:* "Any information sent to Apple does not identify you." → *Target:* "As informações enviadas à Apple não identificam você."
      
      - **Reduce Redundant Possessive Pronouns**: English uses possessive pronouns far more than Brazilian Portuguese. When ownership is obvious from context, omit the possessive pronoun. Keep it only where removal creates genuine ambiguity.
        - *Source:* "Turn on your device and connect your device to your computer." → *Target:* "Ligue o dispositivo e conecte-o ao computador."
      
      - **Do Not Translate 'Please'**: 'Por favor' disrupts sentence flow because it requires surrounding commas, and culturally in Brazil its use is reserved for genuine personal favors. Convey politeness through appropriate verb choice rather than adding 'por favor'.
        - *Source:* "Please make more room on this disk." → *Target:* "Libere mais espaço no disco."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software Strings**: Do not shorten words to make a string fit in the UI. When abbreviation is truly unavoidable, use the first few letters and place a dot after the second or third consonant.
      
      ## Acronyms
      
      - **Keep Industry-Standard Acronyms Untranslated**: Do not translate acronyms unless a widely recognized Brazilian Portuguese equivalent exists. Acronyms such as ISO, ANSI, ASCII, and HTML are de facto industry standards and must remain in their English form.
        - *Source:* "RAM" → *Target:* "RAM"
      
      ## Grammar
      
      - **Title Case for Software Interface Elements**: Use Title Case for menus, toggles, features, and options. Short prepositions of four letters or fewer (com, de, em, para) are lowercased unless they open the string. Longer prepositions of five or more letters (contra, desde, entre, sobre) remain uppercased.
        - *Source:* "Sensitive Content Warning" → *Target:* "Aviso de Conteúdo Sensível"
      
      - **Infinitive form for Software Interface Elements**: Use Infinitive verb tense for menus, toggles, features, and options.
        - *Source:* "Open File" → *Target:* "Abrir Arquivo"
      
      - **Sentence Case for Software Interface Titles**: For UI titles use Sentence case, but always capitalize UI element and feature names within them.
        - *Source:* "Turn On Dark Mode" → *Target:* "Ative o Modo Escuro"
      
      - **Imperative form for UI titles**: Use Imperative verb tense for UI titles, subtitles, headers, subheaders. Boundary vs. the infinitive rule above: if the string is a label the user acts on (menu item, button, toggle, option), use the infinitive; if it's a prompt telling the user what to do, use the imperative
        - *Source:* "Back Up Your Data" → *Target:* "Faça backup dos dados"
      
      - **Avoid Passive Voice and Gerunds**: Prefer active voice over passive constructions wherever possible. Gerund forms common in English should be rephrased in Brazilian Portuguese by restructuring the sentence or converting the verb to a noun.
        - *Source:* "The requested operation could not be completed." → *Target:* "Não foi possível concluir a operação solicitada."
      
      ## Punctuation
      
      - **Use Curly Quotation Marks in Software Strings**: In software strings, curly quotation marks are mandatory. Straight quotes are reserved for code contexts only. Use quotation marks sparingly — add them only where they improve clarity.
      
      - **No Comma Before 'e', 'ou', or 'nem'**: Unlike English, Brazilian Portuguese usually does not place a comma before the copulative conjunctions 'e', 'ou', and 'nem'. Remove any such comma that appears in the source.
        - *Source:* "%@, and %@" → *Target:* "%@ e %@"
      
      - **Lowercase After Colons in Running Text**: Unlike English, Brazilian Portuguese does not capitalize the word following a colon in running text. Use lowercase after colons in warnings, notes, and similar constructions unless the surrounding context uses Title Case for a separate UI reason.
        - *Source:* "Warning: This action cannot be undone." → *Target:* "Aviso: esta ação não poderá ser desfeita."
      
      - **Use the Ellipsis Character — Never Three Separate Dots**: Always insert the single ellipsis character (…) rather than using three consecutive periods. The single character provides correct spacing and proper rendering by accessibility tools.
      
      - **Bullet Points: Full Stop for Sentences, None for Enumerations**: Add a full stop to bullet-point items that are grammatically complete sentences, even if the source omits it. Items that are enumerations (noun phrases or fragments) require no punctuation.
        - *Source:* "• Music and podcasts you enjoy" → *Target:* "• Músicas e podcasts que você curte" (no full stop — enumeration)
        - *Source:* "• O app Mensagens podia ser encerrado inesperadamente" → *Target:* "• O app Mensagens podia ser encerrado inesperadamente."
      
      ## Measurements
      
      - **Do Not Convert Measurements; Always Space Before Unit Symbols**: Do not convert imperial units to metric or vice versa. Never use a double quote as an abbreviation for inch. Always insert a space between a number and its unit symbol; unit abbreviations never take a trailing period.
        - *Source:* "2GB" → *Target:* "2 GB"
      
      ## Numerals
      
      - **Comma as Decimal Separator; Period as Thousands Separator**: Brazilian Portuguese uses a comma for decimals and a period for thousands — the reverse of English. Apply this in all content. Do not manually change the period inside printf-style format specifiers such as %.1f; the software handles decimal conversion internally.
        - *Source:* "45.5" → *Target:* "45,5"
        - *Source:* "1,000,000 songs" → *Target:* "1.000.000 músicas"
      
      ## Special Characters
      
      - **Replace Ampersand with 'e' in Regular Text**: Do not use the ampersand (&) in Brazilian Portuguese text. Replace it with the conjunction 'e'. The ampersand is acceptable only in established industry-standard expressions such as 'Plug&Play'.
        - *Source:* "Mac & PC" → *Target:* "Mac e PC"
      
      ## Interface Elements
      
      - **Prefix App Names with 'o app' to Resolve Gender Agreement**: Because 'app' is masculine in Portuguese while some app names are feminine (e.g. Casa, Notas, Música), use the prefix 'o app' when needed to avoid gender agreement errors. Exceptions include iWork apps (Pages, Numbers, Keynote), Ajustes, and apps with already-masculine names (Mail, FaceTime, Diário).
        - *Source:* "Click here to open in Bolsa." → *Target:* "Clique aqui para abrir no app Bolsa."
        - *Source:* "Click here to open in Maps." → *Target:* "Clique aqui para abrir no app Mapas."
      
      - **Keyboard Shortcuts: Use Space + Plus Sign Between Keys**: Separate modifier keys with a space, a plus sign, and another space rather than a hyphen.
        - *Source:* "Command-Q" → *Target:* "Command + Q"
      
      - **Do Not Translate Physical Keyboard Key Names**: All key names printed on a physical Apple keyboard must remain untranslated and should be in uppercase. The only exceptions are iOS/iPadOS software keyboard keys: 'Retorno', 'Espaço', and 'Ir'.
        - *Source:* "Caps Lock, Shift, Control, Option, Command" → *Target:* "Caps Lock, Shift, Control, Option, Command"
        - *Source:* "Return (iOS software keyboard)" → *Target:* "Retorno"
      
      ## Trademarks And Product Names
      
      - **Never Translate Trademarks or Marketing Slogans**: Keep trademarks, product names, and marketing slogans in their original form — do not translate or transliterate them.
        - *Source:* "Designed by Apple in California" → *Target:* "Designed by Apple in California"
      
      ## Variables
      
      - **Preserve Variables Exactly; Add Positional Indices When Reordering**: Never alter or omit variable format specifiers. If Brazilian Portuguese word order requires a different variable sequence, add positional indices (%1$@, %2$@, etc.) to every variable in the string — including variables whose position does not change. Do not change the period inside numeric format specifiers such as %.1f.
        - *Source:* "Meeting scheduled for %1$@ %2$@." → *Target:* "Reunião agendada para %2$@ de %1$@."
      
      ## Diversity And Inclusion
      
      - **Avoid Gendered Assumptions; Prefer Gender-Neutral Rephrasing**: Avoid assuming the user's gender and do not use the 'o(a)' workaround. Where a gendered form would otherwise be needed, reword to a gender-neutral construction.
        - *Source:* "You will be notified." → *Target:* "Você receberá uma notificação." (instead of "Você será notificado.")
      - **Put People First When Referring to Disability**: Use people-first language — refer to individuals as people before mentioning any disability, and focus on what people can do, not on what they can't.
        - *Source:* "a wheelchair-bound person" → *Target:* "uma pessoa em cadeira de rodas"
      
      ## Terminology
      
      - **Use Apple-Specific Terminology Over Generic PC Translations**: Many common terms have an Apple-specific Brazilian Portuguese translation that differs from the generic PC industry term. Reuse the established Apple form as it appears in previously-translated strings.
        - *Source:* "Settings" → *Target:* "Ajustes" (not Configurações)
        - *Source:* "Delete" → *Target:* "Apagar" (not Excluir)
        - *Source:* "Full screen" → *Target:* "Tela cheia" (not Tela inteira)
        - *Source:* "Enable/Disable" → *Target:* "Ativar/Desativar" (not Habilitar/Desabilitar)
        - *Source:* "Tab" → *Target:* "Aba" (not Guia)
      
    • styleguide_pt-PT.md 12.7 KB
      # European Portuguese (pt-PT) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: European Portuguese uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Tap \u201CDelete\u201D." → *Target:* "Toque em \u201CApagar\u201D."
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: The overall tone should lean towards formal rather than informal, but must never feel stiff or stilted. Use neutral, descriptive language and avoid trendy or colloquial expressions. Prefer Portuguese terminology over English borrowings whenever a natural, widely understood equivalent exists.
        - *Source:* "Sign in with your account." → *Target:* "Inicie sessão com a sua conta."
      
      ## Addressing Users
      
      - **Formal Third-Person Address — Avoid Explicit 'você'**: Use the formal third-person singular verb form to address the user. Never write the explicit pronoun 'você' — it is implied by the verb form. Avoid exclusive masculine pronouns and overuse of 'seu/sua'; restructure sentences to use gender-neutral or impersonal constructions instead. Use an informal register only when the source string's tone is distinctly casual, or when the developer's instructions call for an informal voice (e.g. a social or youth-oriented app).
        - *Source:* "To help us serve you better, …" → *Target:* "Para ajudar a melhorar a qualidade do serviço, …" (not 'servi-lo')
      
      - **Avoid Overuse of Possessive Pronouns**: English uses possessive pronouns far more frequently than Portuguese. Replace 'your X' with the definite article whenever the owner is obvious or irrelevant to the meaning.
        - *Source:* "Shut down your computer." → *Target:* "Desligue o computador."
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software; Non-Breaking Space in Two-Word Abbreviations**: Do not use abbreviations in software strings unless a string is too long and no other solution exists. When a common two-word Portuguese abbreviation is used, separate its parts with a non-breaking space. Common mappings: 'e.g.' → 'por ex.', 'etc.' → 'etc.', 'page' → 'pág.'.
        - *Source:* "e.g. / etc." → *Target:* "por ex. / etc."
      
      ## Acronyms
      
      - **Retain English Acronyms; No Plural Form in Portuguese**: Do not translate acronyms unless a standard industrial Portuguese equivalent exists. Acronyms in Portuguese do not take a plural form — never add 's' to make one plural. If the source already provides a spelled-out expansion, translate it; do not add one the source lacks.
        - *Source:* "Multiple CDs" → *Target:* "Vários CD" (no plural 's' on acronym)
      
      ## Date And Time
      
      - **Follow European Portuguese Date and Time Format**: Use the system locale standard for date and time in software strings. When displaying actual time, use the 24-hour format. Write dates with the weekday spelled out in full. Keep 'AM' and 'PM' in English only when the string is itself a 12-hour time-format label (the actual text being displayed).
        - *Source:* "Monday, September 6, 2013 / 4 PM" → *Target:* "Segunda‑feira, 6 de setembro de 2013 / 16:00"
      
      ## Measurements
      
      - **Do Not Convert Units; Add Non-Breaking Space Before Unit Symbol**: Do not convert measurement units. In instructional text where localization is meaningful (e.g., distance to a device), convert to metric. Always add a non-breaking space between a numeric value and its unit symbol when space is available. Exception: no space before the percent sign.
        - *Source:* "2 GB / 34 km / 50%" → *Target:* "2 GB / 34 km / 50%"
        - *Source:* "Your modem should be no further than 35 feet from your computer." → *Target:* "O modem não deve estar a mais de 10 m do computador."
      
      ## Numerals
      
      - **European Portuguese Number Format**: Use a comma as the decimal separator and a space as the thousands separator for numbers with five or more digits. Numbers with exactly four digits need no separator. Ordinal numbers follow a period with a superscripted 'º' or 'ª' matching the gender of the noun. Version numbers retain a period.
        - *Source:* "3.5 kg / 25,000 songs / 2,350 files / 1st / 2nd (feminine) / Version 2.0" → *Target:* "3,5 kg / 25 000 músicas / 2350 ficheiros / 1.º / 2.ª / Versão 2.0"
      
      ## Addresses
      
      - **Use Locally-Appropriate Placeholder Names and Portuguese Address Format**: Replace English placeholder names with locally-appropriate Portuguese names. For sample addresses, use the European Portuguese format with postcode (NNNN-NNN) preceding the city name. Example format: `Rua da Ponte Direita, n.º 3, r/c esq., 1600-123 Cidade`.
      
      ## Special Characters
      
      - **Use the Single Ellipsis Character**: Always use the single ellipsis character (…) instead of three individual dots. The single character counts as one character for space calculations and is interpreted correctly by assistive technologies.
        - *Source:* "Loading..." → *Target:* "A carregar…" (single ellipsis character)
      
      - **Non-Breaking Hyphen and Non-Breaking Space in Product Names**: Use non-breaking hyphens in hyphenated words such as 'palavra‑passe' and clitic pronoun forms to prevent translineation errors. Use non-breaking spaces within multi-word product or service names (Apple TV, iPod touch, or the app's own multi-word names) and before UI path arrows (>).
        - *Source:* "password / Apple TV / Settings > General" → *Target:* "palavra‑passe / Apple TV / Definições > Geral"
      
      - **Keyboard Keys — Capitalized; Plus Sign for Shortcuts**: Translate keyboard key names using the established Portuguese forms, capitalizing each key name regardless of source capitalization. In shortcut lists, join keys with a plus sign (+). In running prose, use 'mantenha premida a tecla X' constructions.
        - *Source:* "Command-Option-click" → *Target:* "Comando + Opção + clique"
        - *Source:* "Hold the Option key while dragging…" → *Target:* "Mantenha premida a tecla Opção enquanto arrasta…"
      
      ## Grammar
      
      - **Avoid Incorrect Use of 'seu/sua' for Non-Possessive Reference**: 'Seu' and 'sua' indicate possession and should only be used when something genuinely belongs to a grammatical person. When referring back to a previously mentioned noun without implying ownership, use 'respetivo/respetiva' instead.
        - *Source:* "The XYZ Update fixes issues. Its installation is recommended." → *Target:* "A Atualização do XYZ corrige problemas. A respetiva instalação é recomendada." (not: a sua instalação)
      
      - **Prepositions Are Idiomatic — Do Not Translate Literally**: Prepositions must follow Portuguese grammar rules rather than mirror the source. In particular, 'for' often maps to 'a' rather than 'para', and 'to' in directive contexts depends on the governing verb. Restructuring the target sentence significantly is often necessary and correct.
        - *Source:* "recommended for all users / restore iPod to factory settings" → *Target:* "recomendado a todos os utilizadores / restaurar o iPod com as definições de fábrica"
      
      - **Capitalization: Sentence Case Only**: In Portuguese, only the initial letter of a sentence is capitalized as a general rule. Exceptions are app and utility names (Utilitário de Discos, Definições do Sistema) and names of legal documents (Política de Privacidade, Termos e Condições). Section headings and common nouns are not capitalized.
        - *Source:* "Read Before You Install " → *Target:* "Ler antes de instalar"
      
      ## Punctuation
      
      - **Use Curly Quotation Marks; Period Outside Closing Quote**: Use curly (typographic) quotation marks, as in the source. The period always goes outside the closing quotation mark. Do not use double periods when an abbreviation ends a sentence.
        - *Source:* "The field includes the word \u201Cbundle.\u201D" → *Target:* "O campo inclui a palavra \u201Cpacote\u201D." (period outside closing quote)
      
      - **Em-Dash Replaced by En-Dash**: The em-dash (—) is used only in Portuguese literature to introduce dialogue. Replace it with an en-dash (–) preceded by a non-breaking space and followed by a regular space. Never substitute a plain hyphen where a non-breaking hyphen should be used.
        - *Source:* "Settings — Overview" → *Target:* "Definições – Visão geral"
      
      - **UI References — Quotation Marks**: Use quotation marks around a UI item name only where intelligibility could otherwise be compromised. App and utility names are always capitalized and do not require quotation marks. Quotation marks are also not needed when specifying a UI path.
        - *Source:* "Tap Delete." → *Target:* "Toque em \u201CApagar\u201D."
        - *Source:* "Settings > General > Accessibility" → *Target:* "Definições > Geral > Acessibilidade" (no quotes in UI path)
      
      ## Interface Elements
      
      - **Button Labels and Command Names — Infinitive Form**: Translate button labels and menu command names using the infinitive form of the verb. Option names (checkboxes, radio buttons) also use the infinitive, begin with an uppercase letter, and never end with a full stop. Menu names that are nouns should remain as nouns.
        - *Source:* "Open Recent / Print / Cancel / File" → *Target:* "Abrir documento recente / Imprimir / Cancelar / Ficheiro"
      
      - **Tooltips — Sentence Style, Infinitive, Closing Full Stop**: Tooltips should be well-formed Portuguese sentences beginning with an uppercase letter and ending with a full stop, regardless of whether the source has one. Use the infinitive form. Purely descriptive single-word or phrase tooltips do not require a full stop.
        - *Source:* "Create a new file." → *Target:* "Criar um novo ficheiro."
        - *Source:* "Color picker" → *Target:* "Seletor de cores" (no full stop — descriptive)
      
      - **Undo/Redo strings**: Strings that appear under Edit (menu bar) and refer to actions that can be undone (or redone). When translating these strings, the infinitive is used and the first letter of the action to undo/redo should be capitalized.
        - *Source:* "Undo Hide Location / Redo Hide Location" → *Target:* "Desfazer Ocultar localização / Refazer Ocultar localização"
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Variables must be kept exactly as in the source. Never add a new variable to a translation. When reordering is required, use positional notation (%2$@ %1$@). Do not change a period to a comma inside a numeric format specifier (e.g., %.1f GB) — the decimal separator is handled by the software. In plural-variant strings, variables may be added or removed for grammatical reasons.
        - *Source:* "%.1f GB" → *Target:* "%.1f GB" (do not change period to comma)
      
      ## Diversity And Inclusion
      
      - **Prefer Gender-Neutral Phrasing**: Prefer gender-neutral phrasing wherever possible; when a gendered form would otherwise be needed, reword to avoid it.
        - *Source:* "Welcome" → *Target:* "Boas-vindas" (gender-neutral, instead of "Bem-vindo/Bem-vinda")
      - **Put People First When Referring to Disability**: Use people-first language — refer to individuals as people before mentioning any disability, and focus on what people can do, not on what they can't.
        - *Source:* "person in a wheelchair" → *Target:* "pessoa que usa cadeira de rodas"
      
      ## Style
      
      - **Standardized translations**: Standardized translations are somewhat similar to established terminology. Certain sentences will always be translated consistently the same way. The usage of consistent translations for repetitive text phrases is recommended.
        - *Source:* "More Info / Learn More / Make sure that … " → *Target:* "Informação adicional / Saiba mais / Certifique‑se de que…"
      
      - **What’s New, Welcome and Store texts**: These texts should be clear and concise. Addressing the user directly should be avoided. In these types of files, bulleted lists are normally used to list items (e.g. new features, bug fixes) without a specific order. In this case, bullet point items should be treated as “standalone” items and begin with an uppercase letter and end with a full stop, regardless of whether they are preceded by an introductory sentence ending or not in a colon “:”. When an introductory sentence ending in a colon and each subsequent bullet point item form a grammatical unit, each item should begin with a lowercase letter and end with a semi-colon “;”. A full stop is used only on the last item of the list.
        - *Source:* "This update adds the following features:
      • Introduces support for AirPods Pro" → *Target:* "Esta atualização inclui as seguintes melhorias:
      • Suporte para AirPods Pro."
        - *Source:* "This update:
      • Addresses an issue that could prevent a device from ringing or vibrating for an incoming call
      • Resolves an issue where notifications may not be received on Apple Watch" → *Target:* "Esta atualização:
      • resolve um problema que podia impedir um dispositivo de tocar ou vibrar ao receber uma chamada;
      • resolve um problema que podia fazer com que não fossem recebidas notificações no Apple Watch."
      
      
    • styleguide_ro.md 12.5 KB
      # Romanian (ro) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Romanian uses curly double quotation marks „ (\u201E) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Tap \u201CMake Into Smart List.\u201D" → *Target:* "Apăsați pe \u201ETransformați în listă inteligentă\u201D."
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Write in a neutral, descriptive style that is closer to formal than informal without being stiff or trendy. Prefer Romanian terminology over English borrowings even when users commonly use the English word.
      
      ## Addressing Users
      
      - **Use Formal Polite Form (dvs./doriți) for System-to-User Interactions**: When the computer asks the user to make a decision or reports information, use the polite second-person plural form (dvs.) rather than the informal second-person singular (tu).
        - *Source:* "Touch ID does not recognize your fingerprint. Enable %@." → *Target:* "Touch ID nu recunoaște amprenta dvs. Activați %@."
      
      - **Avoid Overusing 'dvs.'**: Do not repeat “dvs.” in the same sentence; drop the possessive where the meaning stays clear.
        - *Source:* "Open this request on your iPhone to select your items." → *Target:* "Deschideți această solicitare pe iPhone pentru a selecta articolele."
      
      - **Use Informal Imperative for App Intents and User-to-Device Commands**: When the user is issuing a command to the device — as in App Intents parameter summaries and Shortcuts phrases — use the informal second-person singular imperative. Commands directed at the computer do not require the formal address style. Rely on the source string's own phrasing (a user-issued command) or a developer comment marking the string as an App Intent or Shortcuts phrase.
        - *Source:* "Go to the ${target} in ${applicationName}" → *Target:* "Accesează ${target} în ${applicationName}"
      
      - **Do Not Translate 'Please' Literally**: Expressions beginning with 'Please' should not be translated as 'Vă rugăm să…'. Convey politeness through the formal second-person verb form instead.
        - *Source:* "Please choose another name." → *Target:* "Alegeți alt nume."
      
      - **Use Passive Voice or Long Infinitives for Computer-Initiated Actions**: When the computer reports a state or performs an action without the user's intervention, use passive voice or long infinitive (noun) forms. A first-person construction such as 'Nu mă pot conecta la server' is never appropriate for system messages.
        - *Source:* "Could not connect to the server. Receiving file \u201C%@\u201D from \u201C%@\u201D…" → *Target:* "Conectarea la server nu a reușit. Primire fișier \u201E%@\u201D de la \u201E%@\u201D…"
      
      ## Abbreviations
      
      - **Avoid Abbreviations; Accepted Exceptions Are 'dvs.', Address Fields, Editorial references**: Do not shorten words to make a string fit. The polite pronoun 'dumneavoastră' is always abbreviated as 'dvs.' with a period, even when followed by other punctuation. If the “dvs.” appears at the end of the sentence and a full stop is also required, only use 1 period, not 2. Standard address abbreviations (jud., sect., nr.) and editorial references (vol., pag.) are also acceptable.
        - *Source:* "Enter your password." → *Target:* "Introduceți parola dvs." (one period, not "…dvs..")
      
      ## Special Characters
      
      - **Use Correct Unicode Romanian Diacritics — Comma Below, Not Cedilla**: Always use the comma-below variants: ș (U+0219), ț (U+021B), Ș (U+0218), Ț (U+021A). The Windows cedilla variants (ş, ţ) are incorrect and must never be used in software or documentation.
        - *Source:* "Delete items" → *Target:* "Ștergeți articolele" (not "Ştergeţi articolele")
      
      - **Translate Ampersand as 'și'**: The ampersand (&) is uncommon in Romanian and must be translated as the conjunction 'și'.
        - *Source:* "Mac & PC" → *Target:* "Mac și PC"
      
      - **Place Currency Symbols After the Amount**: Currency symbols are placed after the numeric amount and separated from it by a non-breaking space.
        - *Source:* "120€" → *Target:* "120 €"
      
      ## Grammar
      
      - **Loan Words: No Hyphen If Final Letter Is Pronounced as in Romanian**: Do not use a hyphen before a Romanian article or suffix when the borrowed word's final letter is pronounced the same as in Romanian. Use a hyphen only when the final letter's spelling differs from its pronunciation.
        - *Source:* "blogs" → *Target:* "bloguri" (no hyphen — final letter pronounced as in Romanian)
        - *Source:* "cookies" → *Target:* "cookie-uri" (hyphen — spelling differs from pronunciation)
      
      - **Use Correct Prepositions: 'în' for Folders/Apps/Accounts, 'pe' for Disks/Devices**: The correct preposition depends on the destination. Use 'în' for folders, apps, accounts, and services; use 'pe' for disks, devices, servers, websites, and cloud-storage platforms (e.g. iCloud). The generic common noun 'cloud' takes 'în' (stocat în cloud). When signing in with an account, use 'în contul' to avoid the awkward 'cu contul'.
        - *Source:* "Sign in to this application" → *Target:* "Autentificați-vă în această aplicație"
        - *Source:* "Sign in to other device" → *Target:* "Autentificați-vă pe un alt dispozitiv"
        - *Source:* "Stored in iCloud" → *Target:* "stocat pe iCloud" (not "în iCloud")
      
      - **Agreement with Disjunctive Subjects: Singular with the Nearest Noun**: When a nominal predicate has multiple subjects separated by a disjunctive conjunction (sau, ori), the verb agrees in singular with the nearest noun, not plural with all subjects. Alternatively, rephrase to avoid ambiguity.
        - *Source:* "The user name or password is incorrect." → *Target:* "Numele de utilizator sau parola este greșită."
      
      - **Sentence Case Only — No Title Case in Romanian**: Romanian does not use Title Case. Only the first letter of the first word is capitalized in menu items, titles, and other UI strings.
        - *Source:* "Show Related Messages" → *Target:* "Afișați mesajele asociate"
      
      - **Capitalization — Only When the Feature Name Is Directly Referenced**: Feature names are capitalized only when the actual UI element is directly referenced; use lowercase when treating them as common nouns in a sentence.
        - *Source:* "Notification Center" → *Target:* "centrul de notificări" (lowercase — treated as a common noun)
      
      ## Punctuation
      
      - **No Comma Before Copulative Conjunctions**: Romanian does not use a comma before copulative conjunctions. Remove any serial comma, and any comma immediately before 'și' or 'sau'.
        - *Source:* "%1$@, %2$@, or %3$@" → *Target:* "%1$@, %2$@ sau %3$@"
      
      - **No Comma before “etc.”**: Romanian does not use a comma before etc.
        - *Source:* "%1$@, %2$@, %3$@, etc." → *Target:* "%1$@, %2$@, %3$@ etc."
      
      - **Period After the Closing Quotation Mark**: In Romanian, when a sentence ends immediately after a closing quotation mark, the period is placed after the closing mark, not inside it as in English.
        - *Source:* "Tap \u201CMake Into Smart List.\u201D" → *Target:* "Apăsați pe \u201ETransformați în listă inteligentă\u201D."
      
      - **Use En Dash (–) Instead of Em Dash (—)**: When the source uses em dashes as substitutes for commas, parentheses, or colons, replace them with en dashes (–) in Romanian.
        - *Source:* "that's about %@ a day — to get this award." → *Target:* "asta înseamnă aproximativ %@ pe zi – pentru a primi acest premiu."
      
      - **Use Romanian Curly Quotes**: Romanian uses low-9 opening „ (\u201E) and high-9 closing ” (\u201D) curly double quotes. Single straight quotes are replaced with curly double quotes. Use guillemets « (\u00AB) » (\u00BB) for nested quotations. Multi-word UI element names appearing in a sentence must be enclosed in quotation marks for readability, unless already set apart by bold or italics.
        - *Source:* "a button \u201CAttach Files\u201D in Mail" → *Target:* "un buton \u201EIncludeți fișiere atașate\u201D în Mail"
      
      - **Use the Single Ellipsis Character — Not Three Dots**: Always use the single ellipsis character … (U+2026), not three separate periods.
        - *Source:* "Rename..." → *Target:* "Redenumire…"
      
      ## Interface Elements
      
      - **Buttons Use Formal Imperative**: Button labels in dialog boxes use the polite second-person plural imperative form.
        - *Source:* "Add" (button) → *Target:* "Adăugați"
      
      - **Toggles Use Long Infinitives**: Toggle option names (checkboxes, radio buttons), and window titles use long infinitive (noun) forms.
        - *Source:* "Allow notifications" (toggle) → *Target:* "Permitere notificări"
      
      - **Menus Use Long Infinitives.**: Menu names, toggle option names (checkboxes, radio buttons), and window titles use long infinitive (noun) forms.
        - *Source:* "Edit" (menu name) → *Target:* "Editare"
      
      - **Menu items with ellipsis require long infinitives**: Menu items ending in ellipsis (…) that require further input also use long infinitives.
        - *Source:* "Rename…" (menu item with ellipsis) → *Target:* "Redenumire…"
      
      - **Inflect Translated App Names via the Common Noun, Not the App Name Itself**: Translated app names (e.g. Contacte, Poze) are not inflected directly. When grammatical agreement is required, use the common noun (aplicația, utilitarul) followed by the app name, and inflect the common noun.
        - *Source:* "AirPort Utility could not be found." → *Target:* "Aplicația Utilitar AirPort nu a putut fi găsită."
      
      ## Trademarks And Product Names
      
      - **Inflect Hardware Product Names via Hyphen**: When a hardware product name kept in English needs Romanian declension, either append the article/ending with a non-breaking hyphen (Mac-ul, iPad-urile) or use the corresponding common noun (computerul Mac, dispozitivele iPad).
        - *Source:* "the Mac" → *Target:* "Mac-ul" (or, as a common noun, "computerul Mac")
      
      ## Measurements
      
      - **Do Not Convert Measurements**: Do not convert measurements (e.g. inches to centimeters) — keep the source unit and match the source's level of precision. A unit symbol is not followed by a period and is separated from the number by a non-breaking space (also for % and °C/°F).
        - *Source:* "2 GB / 30 min / 25 °C" → *Target:* "2 GB / 30 min / 25 °C" (non-breaking space between each value and its unit)
      
      ## Numerals
      
      - **Insert 'de' Between Numbers of 20 or More and the Modified Noun**: When a cardinal number of 20 or more determines a noun, insert the preposition 'de' between the number and the noun. For values 0–19, 'de' is not used. The preposition is omitted before unit abbreviations and symbols regardless of value. In full sentences, use a plural-aware format to handle the 'few' (no 'de') and 'other' (with 'de') forms correctly.
        - *Source:* "1,000,000 songs" → *Target:* "1.000.000 de melodii"
        - *Source:* "16 minutes" → *Target:* "16 minute" (no 'de')
        - *Source:* "20 mins" (abbreviated) → *Target:* "20 min." (no 'de' before an abbreviation)
      
      ## Variables
      
      - **Preserve Variables Exactly; Reorder with Positional Indices When Needed**: Never alter or omit variable format specifiers. If Romanian word order requires a different variable sequence, add positional indices (%1$@, %2$@, etc.) to every variable in the string. Do not change the period inside numeric format specifiers such as %.1f.
        - *Source:* "%@ Settings" → *Target:* "Configurări %@" (where %@ is an app name)
        - *Source:* "%1$@\u2019s %2$@" → *Target:* "%2$@ (%1$@)"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language — Prefer Reflexive Forms and Rephrasing**: Avoid binary he/she expressions for persons of unspecified gender. First try to rewrite the sentence to eliminate the need for a gendered pronoun; use reflexive forms where they sound natural. The slash '/' or parenthesis '()' workaround is acceptable sparingly but is not preferred because it excludes non-binary individuals.
        - *Source:* "You will be signed into" → *Target:* "Vă veți autentifica în" (not "Veți fi autentificat(ă) în")
        - *Source:* "Are you sure…?" → *Target:* "Sigur doriți să…?"
      
      ## Terminology
      
      - **Use Standardized Romanian Terminology Consistently**: Repetitive phrases and standard UI labels must always be translated the same way. Key standardized translations include 'Configurări' for Settings, 'Dosar' for Folder (macOS), 'Autentificare' for Sign in, 'Anulați' for Cancel, and 'Toate drepturile rezervate.' for 'All Rights Reserved.'
        - *Source:* "Settings" → *Target:* "Configurări"
        - *Source:* "Folder" → *Target:* "Dosar" (macOS) / "Folder" (Windows)
        - *Source:* "Cancel" → *Target:* "Anulați"
        - *Source:* "All Rights Reserved." → *Target:* "Toate drepturile rezervate."
        - *Source:* "Please try again later" → *Target:* "Reîncercați mai târziu"
      
    • styleguide_ru.md 15.2 KB
      # Russian (ru) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Russian uses guillemets « (\u00AB) and » (\u00BB) as the primary quotation marks, curly double quotes „ (\u201E) opening and “ (\u201C) closing for a nested quotation inside guillemets, and the curly apostrophe ’ (\u2019).
        - *Source:* "Click the \u201CHome\u201D button" → *Target:* "Нажмите кнопку \u00ABДомой\u00BB"
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The overall tone should feel intelligent yet approachable — closer to formal than informal, but never stiff or bureaucratic. Avoid trendy slang and keep a neutral, descriptive style. Some English terms that do not translate well may be left in English rather than forced into Russian.
        - *Source:* "HTTPS, True Tone, iTunes Match" → *Target:* "HTTPS, True Tone, iTunes Match" (technical names — do not localize)
      
      ## Addressing Users
      
      - **Formal Address with Capitalized Вы**: Address a single user with the capitalized pronoun «Вы» and its forms (Вам, Вас, Ваш) in the machine-to-human dialog. This capitalization was specifically approved by the Russian Academy of Sciences.
        - *Source:* "Your changes will be lost." → *Target:* "Ваши изменения будут потеряны."
      
      - **Minimize Use of Вы and Ваш**: Do not carry over English possessive pronouns mechanically. Omit «Вы» where it adds nothing, prefer «свой» over «Ваш» when the reflexive form is grammatically valid, and try to avoid repeating «Вы» multiple times in the same sentence.
        - *Source:* "You can manipulate clips using various tapping gestures." → *Target:* "Для работы с клипами можно использовать различные жесты касания."
      
      - **Omit "Please" in Instructions**: English commands routinely include "please", but the Russian formal imperative already conveys sufficient politeness. Drop «пожалуйста» from instructional strings unless context strongly requires it.
        - *Source:* "Please restart your computer." → *Target:* "Перезагрузите компьютер."
      
      - **Informal Address for Casual or Youth-Oriented Strings**: Use the informal singular «ты» and its forms instead of «Вы» only when the source string's tone is distinctly casual, or when the developer's instructions call for an informal, youth-oriented voice (e.g. a kids' or fitness app).
        - *Source:* "You did it!" → *Target:* "У тебя получилось!"
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software Strings**: Do not shorten words through abbreviations when a string is too long; instead, rephrase it. Where commonly accepted Russian abbreviations exist for English ones (e.g. США for USA), use them. Specific approved short forms include Кол-во, Вкл., and Выкл.
        - *Source:* "Qty: %d" → *Target:* "Кол-во: %d"
      
      - **Days of the Week Abbreviations**: Use single capitalized letters (П, В, С, Ч, П, С, В) only when space is extremely tight. Use the two-letter forms (Пн, Вт, Ср, Чт, Пт, Сб, Вс) whenever space permits.
      
      ## Acronyms
      
      - **Do Not Translate Acronyms Without Cause**: Leave technical acronyms in English unless a standard Russian industry equivalent exists. If the source provides an expansion, translate it; do not add one the source lacks. Never use periods inside Russian acronyms (e.g. США, not С.Ш.А.).
        - *Source:* "CD-ROM (compact disc read-only memory)" → *Target:* "CD-ROM (компакт-диск с памятью только для чтения)"
      
      ## Date And Time
      
      - **Use 24-Hour Time Format**: Convert AM/PM times to 24-hour format (e.g. 16:00). Keep AM/PM in English only when the string itself is the 12-hour time-format label being displayed.
        - *Source:* "4 PM" → *Target:* "16:00"
      
      ## Numerals
      
      - **Number Formatting: Space as Thousands Separator, Comma as Decimal**: Use a non-breaking space as the thousands separator and a comma as the decimal separator. Version numbers keep a period and do not take a trailing period. Remove the leading «v» from version strings. Four-digit numbers in running text may use a non-breaking space in numeric tables, except for years and list numbering.
        - *Source:* "11,234.50 kg / OS X v10.8.2" → *Target:* "11 234,50 кг / OS X 10.8.2"
      
      ## Measurements
      
      - **Use Russian Unit Symbols per GOST Standards**: Use a non-breaking space between the numeric value and the unit symbol. Percentage and degree signs take a narrow (two-point) space. Symbols raised above the baseline (°, ′, ″) are written without any space. Do not convert imperial measures.
        - *Source:* "2 GB / 30 min / 100 % / 25 °C" → *Target:* "2 ГБ / 30 мин / 100 % / 25 °C" (non-breaking space before ГБ and мин; narrow no-break space before % and °C)
      
      ## Names And Addresses
      
      - **Use Locally-Appropriate Names and the Russian Address Format**: Replace English placeholder names with locally-appropriate Russian equivalents. Address lines follow the Russian postal convention: name/company, then street and number, then locality, then region, then «Россия», then the 6-digit postal code. Omit «дом» and «город» for style consistency.
      
      ## Special Characters
      
      - **Use # as № and & as и**: Replace the English ordinal symbol # with the Russian № followed by a non-breaking space when it denotes an order number. The ampersand & is not used in Russian text; translate it as «и». The & may remain only when it is part of a trademark or product name with no spaces around it (e.g. Plug&Play).
        - *Source:* "Track #5 / Music & Movies" → *Target:* "Трек № 5 / Музыка и фильмы"
      
      ## Punctuation
      
      - **Guillemet Quotation Marks**: Use «guillemets» (double chevrons) as the primary quotation marks. Curly double quotes „ (\u201E) opening and “ (\u201C) closing are reserved for a second level of quotation nested inside guillemets. Use quotation marks with function and button names when the generic (descriptor) word (кнопка, функция) is present, and in UI navigation paths. Do not quote standalone app names or foreign words such as FaceTime.
        - *Source:* "Click the \u201CHome\u201D button / Go to Messages > Settings" → *Target:* "Нажмите кнопку \u00ABДомой\u00BB / Перейдите в \u00ABСообщения\u00BB > \u00ABНастройки\u00BB"
      
      - **Em Dash with Non-Breaking Space**: Use the em dash (—) for parenthetical constructions. Always place a non-breaking space before the spaced em dash to prevent it from wrapping to the next line. Do not use spaces in numeric ranges; use the em dash directly between values.
        - *Source:* "Lightning to USB Cable" → *Target:* "Кабель Lightning — USB"
        - *Source:* "10–100 m" → *Target:* "10—100 м" (no spaces in a numeric range)
      
      - **Full Stops: Follow the Source**: Add or omit a period at the end of a string to match the source.
      
      ## Grammar
      
      - **Buttons as Perfective Verbs**: Translate button labels as verbs in the perfective aspect. If space is too tight for the full infinitive form, use the noun form as a fallback. Command names in menus also use the perfective infinitive. Menu bar names use nouns. Window titles and UI alert titles must be nouns in the nominative case.
        - *Source:* "Cancel" (button) / "Copy" (menu command) / "View" (menu name) → *Target:* "Отменить / Скопировать / Вид"
      
      - **Gender Assignment for Foreign Product Names**: Add a Russian descriptor word to clarify grammatical gender when product names are used with verbs or adjectives. Always add «часы» before «Apple Watch» when declension is required. Use «приложение» before an app name when declension is required.
        - *Source:* "Apple TV is on / Apple Watch is on" → *Target:* "Apple TV включен" (short) / "Устройство Apple TV включено" (long) / "Часы Apple Watch включены"
      
      - **Capitalization: Russian Rules Override English Title Case**: Russian capitalizes only proper nouns, the first word of a sentence, and standalone table entries. Do not replicate English title case in translated UI item names. Capitalize concrete UI element names and feature names that are referenced directly; use lowercase for the same terms used in a generic sense.
        - *Source:* "System Preferences / Show All / Location Services" (UI label) vs. "location services" (generic) → *Target:* "Системные настройки / Показать все / Службы геолокации" (UI) / "службы геолокации" (generic)
      
      - **Plural Forms: Four Categories**: Russian requires four plural categories: «one» (numbers ending in 1, e.g. 1, 21), «few» (2–4, 22–24), «many» (5–20, 25+), and «other» (decimal fractions). Always include the variable in the «one» category string even if the source omits it, consistent with the other categories. Parent and child plural strings must agree grammatically.
        - *Source:* "%d icon / %d icons" → *Target:* "one: %d значок / few: %d значка / many: %d значков / other: %d значка"
      
      - **Use Descriptor words in front of Peoples' Names**: When the source clearly marks a variable as a person's name, prepend the generic descriptor "Пользователь" (User): a name inserted at runtime can't be declined for case or gender, so the fixed masculine descriptor noun carries the agreement and the sentence stays grammatical for any name. In messaging or participant contexts, use the descriptor "Участник" (Participant) instead; reuse whichever descriptor already appears in previously-translated strings for consistency.
        - *Source:* "%@ hasn\u2019t started their account recovery yet. / %1$@ and %2$lld others liked %3$@\u2019s location" → *Target:* "Пользователь %@ еще не начал восстановление аккаунта. / Участнику %1$@ и еще %2$lld людям нравится геопозиция участника %3$@"
      
      - **Use Descriptor words in front of Features and Services**: Russian has three genders, but a foreign product name carries none reliably. For clear agreement in descriptive text, prepend a Russian descriptor noun to the product name so verbs and adjectives can inflect — e.g. «Приложение %@ запущено», «Сервис %@ выключен». Under space constraints, drop the descriptor and treat the bare foreign name as masculine, deriving that gender from its zero ending — e.g. «%@ запущен».
        - *Source:* "%@ Disabled / AutoMix is On" → *Target:* "Сервис %@ выключен / Функция AutoMix включена"
      
      - **Use ″ for Inches and “ми” for Miles**: Use the double prime ″ (\u2033) as the abbreviation for inches — there is no universally accepted verbal abbreviation in Russian ("дм" can be confused with decimeters). Inside a delivered string value, write it as its escape \u2033 (and the single prime ′ for feet/minutes as \u2032), like curly quotes. Use “ми” for miles, not "мл”, to avoid confusion with milliliters.
      
      - **Differentiate Translation of "Service"**: Differentiate translations of "Service(s)" by meaning. For a subscription or online service (streaming, cloud, media), translate as "Сервис". For a system or background service, translate as "Служба".
        - *Source:* "Accessory Information Service / This service is not available in your region." → *Target:* "Служба информации об аксессуарах / Этот сервис недоступен в Вашем регионе."
      
      - **Try to Use Gender-Neutral Language**: Prefer a construction that avoids gendered past-tense endings rather than providing multiple gender endings in brackets or with slashes.
        - *Source:* "%@ created a note" → *Target:* "Новая заметка от %@" (noun phrase — avoids the gendered "создал(-а)")
      
      ## Interface Elements
      
      - **Tooltips: Infinitive for Hints, Imperative for Prompts**: Distinguish two tooltip types. Static hints describing what a control does should use the infinitive. Instructional prompts that guide the user through an action (typically containing a purpose clause) should use the imperative.
        - *Source:* "Delete the selected item" (hint) / "Touch and hold to add a widget" (prompt) → *Target:* "Удалить выбранный объект" (hint) / "Нажмите и удерживайте, чтобы добавить виджет" (prompt)
      
      - **Undo/Redo Strings Use Lowercase Noun**: In the Edit menu, «Отменить» and «Повторить» are followed by a lowercase noun describing the action, unlike the action command itself which starts with a capital. When «Cancel» and «Undo» both appear in the same UI, translate «Undo» as «Не применять» to avoid duplicate «Отменить» labels.
        - *Source:* "Undo Keyboard Typing / Redo Edit photo" → *Target:* "Отменить ввод с клавиатуры / Повторить редактирование фото"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks and Product Names**: Trademarks, branded slogans, and product names kept in English must not be translated or transliterated. Within a multi-word product name, join the words with a non-breaking space (U+00A0) — e.g. Apple Watch, iPod touch. For a long name like Apple Pro Display XDR, apply non-breaking spaces only within «Pro Display XDR», not after the company name.
        - *Source:* "Designed by Apple in California" → *Target:* "Designed by Apple in California" (do not translate)
      
      ## Variables
      
      - **Preserve Variables Exactly; Reorder with Positional Indices When Needed**: Never alter or omit variable format specifiers (%@, %d, %lld, %1$@). If Russian word order requires a different variable sequence, add positional indices (%1$@, %2$@) to every variable in the string. Do not change the period inside numeric format specifiers such as %.1f.
        - *Source:* "%1$@\u2019s %2$@" → *Target:* "%2$@ (%1$@)"
      
      ## Diversity And Inclusion
      
      - **Avoid Harmful, Oppressive, or Ableist Terms**: Do not use terms that are inherently violent (e.g. kill, hang), oppressive (e.g. master/slave), or that equate a disability with a defect. Do not use color to convey positive or negative qualities. When translating about people with disabilities, use people-first language.
        - *Source:* "The blind" → *Target:* "Люди с нарушениями зрения"
      - **Represent People Inclusively**: Where Russian grammar allows, avoid binary he/she constructions by rewriting the sentence, using the plural, or omitting the pronoun; where the source uses a singular gender-neutral reference, follow suit (e.g. этот человек). Use gender-agnostic placeholder names (e.g. Саша, Женя).
      
      ## General Advice
      
      - **Prefer Natural Russian Over Literal Translation**: The translation succeeds when the reader does not feel like they are reading a translation. Avoid word-for-word renderings of English gerunds and participial phrases; use Russian adverbial participles with clear temporal and logical anchoring. Simplify error messages that contain developer-facing language into clear, user-friendly sentences.
        - *Source:* "The operation couldn\u2019t be completed. (error -50)" → *Target:* "Не удалось выполнить операцию."
      
    • styleguide_sk.md 11.3 KB
      # Slovak (sk) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Slovak uses curly double quotation marks „ (\u201E) and “ (\u201C) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "\u201CFile\u201D menu" → *Target:* "ponuka \u201ESúbor\u201C"
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The overall tone should be intelligent and approachable — closer to formal than informal, but never stiff or overly academic. Avoid trendy or hip expressions and keep a neutral, descriptive style. Use Slovak terminology as much as possible, even though users in everyday speech may default to English words.
      
      ## Addressing Users
      
      - **Formal Plural Address (T-V Distinction)**: Slovak requires formal T-V distinction. Always address the user with polite plural pronouns. The formal style is the default for all standard software strings.
        - *Source:* "Your changes will be lost if you don\u2019t save them." → *Target:* "Ak ich neuložíte, všetky zmeny budú stratené."
      
      - **Omit "Please" and "Now" from Instructions**: Unlike English, Slovak does not routinely use "please" in instructions; the imperative form already conveys sufficient politeness, so omit it. Similarly, the word "now" is usually implied by context and should be left out unless grammatically necessary.
        - *Source:* "Restart now / Apply Now to Entire Document" → *Target:* "Reštartovať / Aplikovať na celý dokument"
      
      - **Reduce Redundant Possessive Pronouns**: English uses possessive pronouns ("your") more freely than Slovak; do not mirror that. Translate «váš/vaše» only when it adds marketing value or is grammatically required; otherwise drop it.
        - *Source:* "Your changes will be lost." → *Target:* "Zmeny budú stratené." (omit "vaše")
      
      - **Informal Gender-Neutral Style for Casual or Youth-Oriented Strings**: Use informal, gender-neutral language instead of the formal plural style only when the source string's tone is distinctly casual, or when the developer's instructions call for an informal, youth-oriented voice (e.g. a kids' or fitness app).
      
      ## Grammar
      
      - **Default to Neuter Gender**: When grammatical gender cannot be determined with certainty, always use the neuter form. Switch to masculine or feminine only when the source string or a developer note makes the intended gender unambiguous.
        - *Source:* "None" → *Target:* "Žiadne" (neuter default)
      
      - **Status Messages Use First Person**: Short progress strings ending with an ellipsis (…) should use first-person singular rather than the reflexive «sa» construction. This gives the system a more direct, active voice.
        - *Source:* "Copying messages… / Deleting…" → *Target:* "Kopírujem správy… / Vymazávam…"
      
      - **Verb-Only Strings Use the Infinitive**: Single-word button labels, menu items, and other standalone verb strings should almost always be translated in the infinitive. Exceptions apply when the string is a runtime-composed fragment (see Variables section).
        - *Source:* "Open / Close / Play / Never use font sizes smaller than…" → *Target:* "Otvoriť / Zatvoriť / Prehrať / Nepoužívať písmo menšie ako…"
      
      - **Plural Agreement in Software Strings**: Slovak has more plural forms than English. When the count feeds a numerical format specifier (%lld, %d), translate each plural case directly — the String Catalog's plural variation supplies the correct form; do not work around it. A workaround is needed only when the count arrives as a **pre-formatted number interpolated as a non-numerical %@** (so plural categories can't apply): place the variable after a colon (preferred, shorter) or inside brackets, keep the item name in the plural nominative, and report back that the string needs a numerical placeholder for correct plural agreement (a code fix in the source).
        - *Source:* "%@ items" (where %@ is a pre-formatted count) → *Target:* "Položky: %@"
      
      ## Abbreviations
      
      - **Avoid Abbreviations in UI Strings**: Do not shorten words through abbreviations when a software string is too long. Rephrase the string instead. Never use more than one abbreviation per string. The abbreviation «Autom.» is the only accepted short form for "Automatic" (do not use "Automat.").
        - *Source:* "Automatic" → *Target:* "Autom."
      
      ## Acronyms
      
      - **Keep Acronyms Before the Noun**: Do not translate acronyms unless a widely accepted localized equivalent exists. When used with a noun, place the acronym before the noun following Slovak word order.
        - *Source:* "USB cable" → *Target:* "USB kábel"
      
      ## Formatting
      
      - **Non-Breaking Spaces to Prevent Bad Wrapping**: Insert non-breaking spaces (U+00A0) so that single-character words (o, u, k, s, v, z, a) do not fall at the end or beginning of a line, and so that fixed terms such as OS X and Wi-Fi stay together.
        - *Source:* "OS X / Wi-Fi" → *Target:* "OS X / Wi‑Fi" (non-breaking space in "OS X"; non-breaking hyphen in "Wi-Fi")
      
      ## Date And Time
      
      - **24-Hour Notation and Slovak Date Order**: Slovak does not use AM/PM; always apply 24-hour notation (HH:mm). Use the day/month/year date order (year/month/day is also acceptable). Standalone month names use the nominative case; month names within sentences use the genitive. Use the official abbreviations h, min, s, d for time units (written without a full stop).
        - *Source:* "1 hour / %@ minutes / 08/05/1999" → *Target:* "1 h / %@ min / 08. 05. 1999"
      
      ## Measurements
      
      - **Do Not Convert Imperial Measurements**: Do not convert units (e.g. inches to centimeters). Units in Slovak are written without a full stop and are separated from the number by a space. The only exceptions are degrees Celsius/Fahrenheit and angles.
        - *Source:* "2 GB / 30 min / 25 %" → *Target:* "2 GB / 30 min / 25 %"
      
      ## Names And Addresses
      
      - **Locally-Appropriate Names and the Slovak Address Format**: Replace English placeholder names with locally-appropriate Slovak equivalents. Addresses follow Slovak postal conventions: name, street and number, postcode and city, country. The postal code (PSČ) consists of 5 digits written with a space after the third digit.
      
      ## Numerals
      
      - **Space as Thousands Separator, Comma as Decimal**: Group digits in threes using a space as the thousands separator. Use a comma as the decimal separator. Ordinal numbers are written with a full stop followed by a space (e.g. 1. miesto). Replace the English ordinal symbol # with the Slovak ordinal form (e.g. #1 → 1.).
        - *Source:* "5,600,258 / 0.75 / #1" → *Target:* "5 600 258 / 0,75 / 1."
      
      ## Special Characters
      
      - **Use Slovak Special Characters and Ellipsis**: Always use the proper Slovak diacritical characters (á, ä, č, ď, é, í, ľ, ĺ, ň, ó, ô, ŕ, š, ť, ú, ý, ž). Use the single ellipsis character (…) rather than three separate dots (...). Characters used as words in English (# for "number", & for "and") must be replaced with their Slovak word equivalents in translated text.
        - *Source:* "Music & Movies" → *Target:* "Hudba a filmy" (& → a)
      
      ## Punctuation
      
      - **Slovak Curly Quotation Marks**: Use Slovak curly quotation marks („“ \u201E \u201C) instead of straight or English-style quotes. When a quoted phrase ends a sentence, place the final punctuation (full stop, etc.) after the closing quotation mark. In software translations, quotation marks around menu items or commands are generally not needed.
        - *Source:* "\u201CFile\u201D menu" → *Target:* "ponuka \u201ESúbor\u201C" (or omit the quotes in a software context)
      
      - **Capitalization After Colons**: When the text after a colon expands or elaborates on what precedes it, use a lowercase letter. When the colon introduces a quotation or an independent block of text, start with a capital letter.
      
      ## Interface Elements
      
      - **UI Elements Use Infinitive or Nominative, Neuter Gender**: Buttons, checkboxes, command names, menu bar items, and toolbar buttons should be translated using the infinitive (for verbs) or nominative (for nouns), always in neuter gender. For ambiguous strings with no context, use the descriptive (informative) form rather than the imperative.
        - *Source:* "Open / Save file / Double tap to pay" (no context hint) → *Target:* "Otvoriť / Uložiť súbor / Dvojitým klepnutím zaplatíte"
      
      - **Tooltips Use Descriptive Style**: Tooltip titles and hints should be written in a descriptive style rather than the infinitive or imperative. They describe what the UI element does, not what the user should do.
        - *Source:* "Screenshot" → *Target:* "Odfotí obrazovku"
      
      - **Undo/Redo Use Colon Separator**: Because actions and buttons are translated in the infinitive, Undo/Redo menu items use a colon between «Odvolať»/«Obnoviť» and the action name in the infinitive.
        - *Source:* "Undo Copy text / Redo Paste" → *Target:* "Odvolať: Kopírovať text / Obnoviť: Vložiť"
      
      - **Capitalize Official UI Element Names**: Avoid mid-sentence capitalization unless referring to proper nouns or official UI element names (menus, buttons, preference panes, applications, features, services, and tools).
        - *Source:* "Mouse pane / in System Settings" → *Target:* "panel Myš / v Systémových nastaveniach"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks; Allow Inflections**: Trademarks, product names, and other names kept in English must not be translated or transliterated. However, grammatical inflections of product names are permitted and expected in natural Slovak sentences. The copyright symbol © and the word "Copyright" are not translated.
        - *Source:* "Go to the App Store / with Apple Pencil" → *Target:* "Prejdite do Apple Storu / s Apple Pencilom"
      
      ## Terminology
      
      - **Established Slovak Terminology**: Use the established Slovak forms: app/apps → apka/apky; chat → čet; end-to-end encryption → E2EE (or "šifrovanie medzi koncovými bodmi"); plugin (not doplnok/modul); hotspot is not localized (use inflected hotspot); subscription/subscribe/subscriber → odber/odoberať/odberateľ; enable/disable (non-security) → zapnúť/vypnúť; get (for downloading content) → stiahnuť (not získať); webpage → webstránka; website → web.
        - *Source:* "Subscribe / Download the app / Webpage" → *Target:* "Odoberať / Stiahnuť apku / Webstránka"
      
      ## Variables
      
      - **Preserve Variables and Handle Gender with Brackets**: Keep all variable placeholders (e.g. %@, %d, %1$@) exactly as in the source. If Slovak word order requires a different sequence, add positional indices (%1$@, %2$@) to every variable in the string. When a variable is replaced by a noun at runtime that would require declension, place the variable inside brackets or after a colon to avoid grammar errors. Use «používateľ» before a name variable to resolve gender ambiguity.
        - *Source:* "Are you sure you want to start an audio chat with %@?" → *Target:* "Naozaj chcete spustiť hlasovú konverzáciu s používateľom %@?"
        - *Source:* "%1$@\u2019s %2$@" → *Target:* "%2$@ (%1$@)"
      
      ## Diversity And Inclusion
      
      - **Inclusive Language: Avoid Harmful or Ableist Terms**: Do not use terms that are inherently violent (e.g. kill, hang), oppressive (master/slave), or that link mental health with functionality (sanity check). Avoid color-based connotations for security or quality levels. Use people-first language when translating about people with disabilities.
        - *Source:* "The blind / A wheelchair-bound person" → *Target:* "Ľudia so zrakovým postihnutím / Osoba na invalidnom vozíku"
      
    • styleguide_sl.md 12.3 KB
      # Slovenian (sl) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Slovenian uses reversed guillemets — » (\u00BB) to open a quotation and « (\u00AB) to close it — with single quotation marks ‘ (\u2018) to open and ’ (\u2019) to close a nested quotation. The curly apostrophe is the same character as that closing single quotation mark, ’ (\u2019).
        - *Source:* "Tap \u201CSay \u2018Hello\u2019\u201D." → *Target:* "Tapnite \u00BBRecite \u2018Živijo\u2019\u00AB."
      
      ## Tone And Voice
      
      - **Smart but Casual Register**: Translations should be clear, concise, and closer to formal than informal, but never stiff or overly rigid. Avoid jargon, slang, colloquialisms, and regional expressions. Prefer stylistically neutral Slovenian terms over borrowed English ones.
        - *Source:* "server" → *Target:* "strežnik"
        - *Source:* "problem" / "issue" → *Target:* "težava"
      
      ## Addressing Users
      
      - **Use Second-Person Plural (Vikanje)**: Address users with the formal second-person plural (vikanje) throughout. Use the informal second-person singular (tikanje) only when the source string's tone is distinctly casual, or when the developer's instructions call for an informal voice (e.g. a social or youth-oriented app). Active voice should be used whenever possible.
        - *Source:* "Install and set up your software." → *Target:* "Namestite in nastavite programsko opremo."
      
      ## Grammar
      
      - **Animacy Subgender for Software Assistants**: The words 'pomočnik' (assistant), 'asistent', and 'krmar' (navigator) refer to software objects but are declined like animate nouns (Slovenian's animacy subgender). Apply this declension consistently even though these are inanimate digital entities.
        - *Source:* "Close Migration Assistant" → *Target:* "Zapri Pomočnika za migracijo"
      
      - **Slovenian Capitalization Rules**: Names of days, months, and most holidays are not capitalized in Slovenian. English-style title case must not be carried over into the translation.
        - *Source:* "Christmas" → *Target:* "božič"
        - *Source:* "February" → *Target:* "februar" (month names are not capitalized)
      
      ## Abbreviations
      
      - **Avoid Abbreviations; Use Slovenian Forms When Necessary**: Abbreviations harm readability and should be avoided whenever possible — prefer a shorter word or reword the sentence instead. Only when an abbreviation is genuinely unavoidable: never start a sentence with one, use well-established forms, and prefer the Slovenian abbreviation over an English one. The hash '#' must not be used for 'število'.
        - *Source:* "e.g." → *Target:* "na primer" (spell out in full; use "npr." only where space is too tight)
        - *Source:* "#" → *Target:* "št." (never use the "#" symbol for "število")
      
      ## Acronyms
      
      - **Decline Acronyms with a Hyphen**: Do not translate acronyms unless a common Slovenian equivalent exists. When an acronym must fit Slovenian grammar, either place a descriptor noun in front of it (so the descriptor takes the inflection and the acronym stays unchanged) or attach the case ending directly with a hyphen. Base the hyphenated ending on how the acronym's final letter is pronounced when spelled aloud (e.g., SMS-jem, not SMS-om).
        - *Source:* "PIN" → *Target:* "koda PIN" (with descriptor) / "PIN-a" (declined with a hyphen)
        - *Source:* "RAM" → *Target:* "pomnilnik RAM" (with descriptor) / "RAM-a" (declined with a hyphen)
      
      ## Date And Time
      
      - **Date and Time Format**: Prefer the long date format (e.g., '8. februar 2023'). In short format, use non-breaking spaces after each period. Leading zeros are not allowed in general text. Format elapsed time (timers, stopwatches) as m:ss with a comma for decimal fractions (e.g. 2:03,12).
        - *Source:* "08/02/1849" → *Target:* "8. 2. 1849"
        - *Source:* "8:00 AM" → *Target:* "8.00" (not 08.00)
        - *Source:* "8:00 PM" → *Target:* "20.00"
        - *Source:* "2m 3.12s" → *Target:* "2:03,12"
      
      ## Numerals
      
      - **Spell Out Numbers Zero to Ten; Use Thousands Period**: Spell out numbers from zero to ten; use numerals for 11 and above. Always spell out numbers at the start of a sentence. Use a period as the thousands separator from five digits up (e.g. 10.000); four-digit numbers take no separator (e.g. 9999).
        - *Source:* "2 Macs are needed…" → *Target:* "Dva Maca sta potrebna …"
        - *Source:* "The result is 0.3 in 9,999 out of 10,000 cases." → *Target:* "Rezultat je 0,3 v 9999 od 10.000 primerov."
        - *Source:* "iOS 12.5.7" → *Target:* "različica iOS 12.5.7"
      
      ## Currency
      
      - **Do Not Convert Currencies; Place Code After Value with NBSP**: Do not convert currencies unless instructed to do so. Translate the € currency symbol to "EUR" and $ to "USD", and in each case place the code after the numerical value with a non-breaking space in between.
        - *Source:* "The package costs $100." → *Target:* "Paket stane 100 USD."
      
      ## Style Conventions
      
      - **Avoid Using "nahajati se" Verb**: Do not translate "there is"/"there are" with "se nahaja"/"se nahajajo"; this is poor style. Instead use the verb "biti" ("je"/"so").
        - *Source:* "If you are located in this region…" → *Target:* "Če ste v tej regiji …" (not "Če se nahajate v tej regiji …")
      
      ## Measurements
      
      - **Do Not Convert Measurements; Use Non-Breaking Space**: Do not convert imperial or other measurements to Slovenian equivalents. Always insert a non-breaking space between a numeral and its unit. Spell out the percent word ("odstotkov") in full sentences; use the % symbol only in short labels or space-restricted places like tables, with a non-breaking space before it. Exception: when the degree symbol is used without C or F following it, omit the space.
        - *Source:* "Battery 100%" → *Target:* "Baterija 100 %"
        - *Source:* "The screen dims to 25%." → *Target:* "Osvetlitev zaslona se zmanjša na 25 odstotkov."
        - *Source:* "20°C" → *Target:* "20 °C" (non-breaking space before the unit; "20°" takes no space when the C or F is omitted)
      
      ## Names And Addresses
      
      - **Slovenian Address Format and Personal Names**: For sample personal names, use common Slovenian placeholder names; keep foreign personal names in their original form, applying Slovenian grammatical declension. Leave US or international addresses in their source notation — do not reformat them. Use the Slovenian format only for Slovenian addresses: street name and house number, then the four-digit postal code and city (e.g. Sosedova ulica 1, 1000 Ljubljana), with the postal code written without spaces or separators.
      
      ## Punctuation
      
      - **Use Double-Angle Quotation Marks**: Always use the Slovenian reversed guillemets, opening » and closing «. Do not substitute English-style curly quotes or other quotation forms; use single upper marks only for nested quotations.
        - *Source:* "Found in \u201C%@\u201D" → *Target:* "Najdeno v \u00BB%@\u00AB"
      
      - **No Em-Dashes**: Em dashes must not be used; use an en dash instead.
        - *Source:* "—" → *Target:* "–"
      
      - **Ellipsis Usage**: Always use the single ellipsis character preceded by a non-breaking space in Slovenian. An ellipsis on a command the user triggers signals an action to start — translate with the imperative; an ellipsis on a status message describing an ongoing process takes the noun/gerund form.
        - *Source:* "Add Printer..." → *Target:* "Dodaj tiskalnik …"
        - *Source:* "Adding user..." → *Target:* "Dodajanje uporabnika …"
      
      - **Formatting of Lists**: In a list, items usually end with a comma, with the last item ending in a period. As an exception, longer list items may end with a semicolon — the last item still ending in a period. Some lists may instead have every item end with a period, particularly when the items are long, compound, and not tightly related to the introductory phrase. In all cases, keep list punctuation consistent within a list.
      
      ## Special Characters
      
      - **Ampersand Conventions**: The ampersand is not standard Slovenian and should be translated as 'in', except in company or product names.
        - *Source:* "drag & drop; AT&T" → *Target:* "povleci in spusti; AT&T"
      
      - **Slash Conventions**: Slashes should have no spaces around them. Use 'oziroma' instead of 'in/ali' where more appropriate.
        - *Source:* "and / or" → *Target:* "in/ali" or "oziroma"
      
      ## Trademarks And Product Names
      
      - **Do Not Inflect Most Product Names; Use Descriptors**: Product names are generally not declined. Use a Slovenian descriptor (e.g., 'naprava', 'računalnik') in front of the product name when inflection is grammatically needed. A small set of names (Mac, iPhone, iPad, Apple TV, Safari) may be inflected naturally.
        - *Source:* "On your Mac" → *Target:* "V vašem Macu" (exception; inflection allowed, no descriptor required)
        - *Source:* "with AirDrop" → *Target:* "S funkcijo AirDrop" (descriptor required)
      
      - **Keep Product, Feature, and Brand Names in Their Original Form**: Product, feature, and brand names — the app's own or a third party's — must not be translated or transliterated. Keep the original notation, and use a descriptor when the name needs to be declined in a sentence.
        - *Source:* "Time Machine" → *Target:* "Time Machine"
      
      ## Interface Elements
      
      - **Interface Element Grammar Forms**: Buttons, commands, and menu items take the imperative singular form; menu titles take the gerund (noun) form; tooltips and placeholders address the user with the formal plural (vikanje).
        - *Source:* "Save" (button) → *Target:* "Shrani" (imperative)
        - *Source:* "Edit" (menu title) → *Target:* "Urejanje" (gerund)
        - *Source:* "Edit" (menu item) → *Target:* "Uredi" (imperative)
        - *Source:* "Save document" (tooltip) → *Target:* "Shranite dokument" (formal plural, vikanje)
        - *Source:* "Enter new password" (placeholder) → *Target:* "Vnesite novo geslo" (formal plural, vikanje)
      
      - **App Intent Translation Forms**: Intent titles and parameter summaries use the imperative; intent descriptions use the third-person indicative.
        - *Source:* "Add new reminder" (intent title) → *Target:* "Dodaj nov opomnik"
        - *Source:* "Adds a new reminder" (intent description) → *Target:* "Doda nov opomnik."
        - *Source:* "Close ${application}" (intent parameter summary) → *Target:* "Zapri aplikacijo ${application}"
      
      ## Terminology
      
      - **Standardized UI Term Translations**: Use the standard, established Slovenian translations for common UI actions and gestures. Do not invent alternatives or use English terms where a Slovenian equivalent is established.
        - *Source:* "tap" (verb) → *Target:* "tapniti"
        - *Source:* "swipe" → *Target:* "podrsniti"
        - *Source:* "OK / Cancel" → *Target:* "V redu / Prekliči"
        - *Source:* "turn on / turn off" → *Target:* "vklopiti / izklopiti"
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral and Inclusive Language**: Use formal plural address (vikanje) to avoid most gendered constructions. When a specific gender reference is unavoidable, use round-bracket notation (e.g., zaključil(-a)), or rephrase using 'oseba'. Avoid binary gender assumptions and stereotypes in all content.
        - *Source:* "finished" (gender unknown) → *Target:* "zaključil(-a)"
      
      ## Variables
      
      - **Preserve Variables; Handle Plural Categories Correctly**: Never alter variable syntax. Slovenian has four plural categories (one, two, few, other) that must each be translated correctly. When a source string in the 'one' category lacks a variable that Slovenian grammar requires, insert it. Check all variants of a string together to ensure consistency across plural forms.
        - *Source:* "%d videos will be removed" (plural: two) → *Target:* "Odstranjena bosta %d videa."
      
      ## General Advice
      
      - **Translate for the Reader, Not Word-for-Word**: The translation is successful when the reader does not feel they are reading a translation. Promotional and onboarding strings in particular should read as if originally written in Slovenian. Rephrase awkward structures, split overly long sentences, and omit words that add no meaning — but never lose key information.
      
      - **Prefer Slovenian Terms Over English Borrowings**: Even when English terms have entered everyday spoken Slovenian, the written language should use established Slovenian equivalents. Only use English terms if they convey the meaning more precisely, are commonly kept in original form, or no adequate Slovenian term exists.
        - *Source:* "automatic" → *Target:* "samodejno" (not avtomatsko)
        - *Source:* "e-mail" → *Target:* "e-pošta" (not email)
      
    • styleguide_sv.md 14.4 KB
      # Swedish (sv) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The overall tone should be friendly, approachable, and closer to formal than informal, but never stiff. Avoid hip or trendy vocabulary and maintain a neutral, descriptive style. Use Swedish terminology as much as possible even when English terms are common in everyday speech.
        - *Source:* "Your time of arrival is 7 PM" → *Target:* "Du kommer fram 19:00"
      
      ## Names And Addresses
      
      - **Swedish Address Format and Approved Example Names**: Use the Swedish address format (name, street address and number, postal code and city, country). The approved name set includes 'Mats Utberg' (John Appleseed), 'Bjorn Olsberg' (John Doe), and 'Sara Engberg' (Jane Doe). 'Johnny Appleseed' is kept as-is.
        - *Source:* "John Doe" → *Target:* "Mats Utberg / Bjorn Olsberg"
        - *Source:* "Jane Doe" → *Target:* "Sara Engberg"
      
      ## Trademarks And Product Names
      
      - **Hyphens for Inflecting Product Names**: Use a hyphen to create Swedish compound words from trademarked names for inflection or to form nouns. Where possible, avoid inflecting product names altogether by using a descriptor like 'Mac-dator' or rephrasing the sentence.
        - *Source:* "iPod settings" → *Target:* "iPod-inställningar"
        - *Source:* "the new Mac" → *Target:* "den nya Mac-datorn"
      
      ## Diversity And Inclusion
      
      - **Inclusive Example Names Reflecting Swedish Diversity**: When example names are needed, use names that reflect Swedish society's diversity—including traditional Sami names and names common among immigrant communities (e.g., from Syria, Somalia, or Finland), not only mainstream Swedish names.
        - *Source:* "Laura opens a document" → *Target:* "Fatima öppnar ett dokument"
      
      ## Variables
      
      - **Preserve Variables; Number Them When Reordering**: Variables must not be altered arbitrarily. When Swedish grammar requires reordering, add positional numbering to all variables. In plural strings, variables may be removed for grammatical reasons only if the remaining variables are numbered.
        - *Source:* "Your meeting is %@ the %d." → *Target:* "Mötet är den %2$d %1$@."
      
      ## General
      
      - **Sentence length**: Avoid making sentences overly complicated and long. Long sentences in English are often better split up into at least two in Swedish.
        - *Source:* "This is the control on the Screen Time settings pane that lets you enable the screen distance setting, which reports when you do not hold your device at a safe distance." → *Target:* "Det här är reglaget på inställningspanelen för Skärmtid som gör att du kan aktivera inställningen Skärmavstånd. Den varnar dig när du inte håller enheten på ett tryggt avstånd."
      
      - **Units**: Convert all measurement units to the metric system (kilograms, Celsius, liters, kilometers, etc.). Remove original values and units. Use contextually appropriate conversions and round down to one decimal if needed. 
        - *Source:* "Hold iPad 10 to 20 inches from your face." → *Target:* "Håll iPad mellan 25 och 50 cm från ansiktet."
      
      - **Currency**: Convert currency values to SEK using the rates $1 USD=10 SEK and 1€=10 SEK. Use "kr" as the Swedish currency symbol. Remove the original values and units.
        - *Source:* "Subject to a service fee of $99 for screen damage or external enclosure damage." → *Target:* "En självrisk på 990 kr för skada på skärm eller yttre hölje tillkommer."
      
      - **Forms of address**: Omit translation or transcreation of the English word "Dear" at the start of letters or messages. In very formal texts, "Bäste" may be used if the addressee is male or "Bästa" if they are female.
        - *Source:* "Dear Lisa," → *Target:* "Hej Lisa!"
      
      - **Apps**: Software applications are called "app/appar" in Swedish, not "program" or "applikation".
        - *Source:* "All third-party apps must explain why they are requesting access to your Health app data." → *Target:* "Alla tredjepartsappar måste förklara varför de begär åtkomst till data i appen Hälsa."
      
      - **Use of your**: For devices, do not translate the word "your".
        - *Source:* "Turn off your iPhone" → *Target:* "Stäng av iPhone"
      
      - **List format**: In a list of items, if one or more of the items contains the word "och" or "eller", the last item in the list should be preceded by "samt" instead of "och" for clarity.
        - *Source:* "Location Data, Security and Privacy, and Settings" → *Target:* "Platsinformation, Säkerhet och integritet samt Inställningar"
      
      - **Abbreviations**: Only use the following abbreviations: bl.a., m.m., d.v.s., o.s.v., etc., s.k., fr.o.m., t.ex., m.fl., and t.o.m. Only use the abbreviation if the Swedish phrase is a good translation of the English phrase or abbreviation.
        - *Source:* "%3$S audiobooks, including "%2$S", have been removed from the iPad "%1$S"." → *Target:* "%3$S ljudböcker, bl.a. "%2$S", har tagits bort från iPad-enheten "%1$S"."
        - *Source:* "Games, Apps, Stories, and More" → *Target:* "Spel, appar, artiklar m.m."
        - *Source:* "While not yet hypertension (i.e. high blood pressure), this range is a warning sign that blood pressure is starting to rise" → *Target:* "Även om det här intervallet ännu inte är hypertoni (d.v.s. högt blodtryck) är det en varningssignal om att blodtrycket börjar stiga"
        - *Source:* "Apple Music uses Gracenote data to display a CD's name, song titles, and so on." → *Target:* "Musik använder Gracenote-data till att visa namnet på en CD, låttitlar, o.s.v."
        - *Source:* "Example: Safari, Notes, Finder, etc…" → *Target:* "Exempel: Safari, Anteckningar, Finder etc…"
        - *Source:* "This manual is protected under the copyright law about literary and artistic creations." → *Target:* "Den här handboken är skyddad enligt lagen om upphovsrätt till litterära och konstnärliga verk, s.k. copyright."
        - *Source:* "Your order with %1$@ is arriving from %2$@." → *Target:* "Din beställning från %1$@ kommer fram fr.o.m. %2$@."
        - *Source:* "For example, you can use a text style to set the appearance of text in a `Label`:" → *Target:* "Du kan t.ex. använda en textstil som ställer in utseendet på text i `Label`:"
        - *Source:* "%@, and others." → *Target:* "%@, m.fl."
        - *Source:* "Illustrate entries with drawings or even your own handwriting." → *Target:* "Illustrera inlägg med teckningar eller t.o.m. din egen handskrift"
      
      - **Time**: Use the 24 hour clock for time format. Use a colon as a separator. If a 12 hour clock must be used, use "fm" for "AM" and "em" for "PM". Use a leading 0 for times between 00:00 and 09:59.
        - *Source:* "7.30 PM" → *Target:* "07:30"
      
      - **Use of Mac**: "Mac", "your Mac" and "the Mac" should be translated as "datorn".
        - *Source:* "Teach your Mac to recognize your name" → *Target:* "Lär datorn att känna igen ditt namn"
      
      ## Cultural Adaptation
      
      - **Loan words**: Prioritize using Swedish words and expressions, however in very informal language or texts containing slang, English loan words are permitted.
        - *Source:* "Download the file" → *Target:* "Hämta filen"
      
      - **Politeness**: Avoid translating and including "Please" or similar polite imperatives from the source text. It is rarely used or needed in Swedish.
        - *Source:* "Please activate the account in Settings" → *Target:* "Aktivera kontot i Inställningar"
      
      - **Formality**: Always address the user with "du", "dig" or "din", never use "Ni/ni" or "Er/er" when addressing a single person. Always use lowercase for "du", "dig", "din", "ni" and "er".
        - *Source:* "Adding this accessory to Find My requires you to be signed in to your Apple Account." → *Target:* "Om du vill lägga till det här tillbehöret i Hitta måste du vara inloggad på ditt Apple‑konto."
      
      - **Use of constructions with man**: Do not use constructions with "man".
        - *Source:* "If you want to change settings…" → *Target:* "Om du vill ändra inställningar…"
      
      - **Gender neutrality**: Use gender-neutral language and constructs. Generally, the best practice is to try to rewrite any sentence to exclude pronouns or binary representations of gender.
        - *Source:* "Once you approve, they can add, remove, and reorder music in this playlist." → *Target:* "Efter ditt godkännande kan personen lägga till, ta bort och ändra ordningen på musiken i den här spellistan"
        - *Source:* "If %@ do not answer their phone, you can send them a message instead." → *Target:* "Om %@ inte svarar på telefon kan du istället skicka ett meddelande."
      
      - **Use of hen**: If gender-neutral rewriting is not possible or creates constructs that deviate from the expected tone of voice, use "hen". Hen can be used both as a subject and an object. Do not use "henom" or other object forms. Never use "han/henne, han eller henne" or similar constructs.
        - *Source:* "If you remove %@ from the list of approved people, they will no longer be able to access the app." → *Target:* "Om du tar bort %@ från listan med tillåtna personer kommer hen inte längre att ha tillgång till appen."
        - *Source:* "You can send a message so the person know they have been invited." → *Target:* "Du kan skicka ett meddelande så att personen får veta att hen har bjudits in."
      
      - **Brand names and product names**: Leave names of brands and products untranslated.
        - *Source:* "Return items to Costco" → *Target:* "Lämna tillbaka varor till Costco"
      
      ## Punctuation
      
      - **Whitespace**: No whitespace before punctuation, but always after.
        - *Source:* "Go for it!" → *Target:* "Kör hårt!"
      
      - **Ellipsis**: Use single character ellipsis, not three periods.
        - *Source:* "..." → *Target:* "…"
      
      - **Hyphens**: Use hyphens (-) for hyphenation or compounding words or parts of words, e.g. when compounding foreign words.
        - *Source:* "Ethernet Cable" → *Target:* "Ethernet-kabel"
      
      - **En-dash**: Use en-dash (–) to indicate a range of values.
        - *Source:* "The meeting time is 6-8 pm." → *Target:* "Mötet pågår 18:00–20:00."
      
      - **Punctuation within quotes**: If a punctuation character is a part of a quote, it should be put inside the quotation mark, even if the source text places it after the quotation mark.
        - *Source:* ""This is a quote"." → *Target:* "\u201CDet här är ett citat.\u201D"
      
      - **Punctuation within parenthesis**: A full sentence within a parenthesis should have the full stop before the right parenthesis.
        - *Source:* "(This is a complete sentence)." → *Target:* "(Det här är en fullständig mening.)"
      
      - **Translation of acronyms**: Acronyms are usually not translated unless there is an official Swedish acronym, e.g. FN for UN. Acronyms are written without periods in Swedish.
        - *Source:* "Download today\u2019s astronomy image from NASA and save it in Camera Roll or share it." → *Target:* "Hämta dagens astronomibild från NASA och spara den i kamerarullen eller dela den."
        - *Source:* "AQI" → *Target:* "AQI"
      
      - **Acronyms in compound words**: If an acronym is a part of a whole expression, a hyphen is used.
        - *Source:* "USB printer" → *Target:* "USB-skrivare"
      
      - **Genitive form of acronyms**: For the genitive form of acronyms a colon is used.
        - *Source:* "EU rules" → *Target:* "EU:s regler"
      
      - **Plural form of acronyms**: Plural of acronyms are constructed with a colon.
        - *Source:* "MP3s" → *Target:* "MP3:or"
      
      - **Form of abbreviations**: Use periods for abbreviations, without whitespace.
        - *Source:* "Enter the router address of your network, for example, 192.128.0.0" → *Target:* "Ange nätverkets routeradress, t.ex. 192.128.0.0"
      
      - **List format**: In a list of three or more items, do not use a comma before the final "och" or "eller".
        - *Source:* "%1$@, %2$@, and %3$ld others" → *Target:* "%1$@, %2$@ och %3$ld andra"
      
      - **Hyphen in multipart words**: When there are more than two parts, use a hyphen in front of the last part only.
        - *Source:* "Apple HDMI to DVI Adapter" → *Target:* "Apple HDMI till DVI-adapter"
        - *Source:* "Lightning to SD Camera Card Reader" → *Target:* "Lightning till SD-kamerakortläsare"
        - *Source:* "Apple Thunderbolt to FireWire Adapter" → *Target:* "Apple Thunderbolt till FireWire-adapter"
      
      ## Orthography
      
      - **Capitalization in headings**: Use capital letter in beginning of sentences and in proper names such as places, names, titles, etc. Do not capitalize every word in headings, even if the source text does.
        - *Source:* "Setting Up Your New Computer" → *Target:* "Ställa in den nya datorn"
      
      - **Capitalization of common nouns**: Do not use capital letter for: days of the week, months, currencies, nationalities, languages, professions, holidays.
        - *Source:* "Create a meeting on Monday" → *Target:* "Skapa ett möte på måndag"
      
      - **Lowercase product names**: Some product names always start with a lowercase letter. In that case, do not capitalise them even if they start a sentence.
        - *Source:* "iPhone can help during an Emergency" → *Target:* "iPhone kan hjälpa dig i en nödsituation"
      
      - **Numbers**: Follow the source text if numerals should be written out as words or as digits. Use hard whitespace as thousand separator.
        - *Source:* "2000 Fitness+ Meditations" → *Target:* "2 000 meditationer i Fitness+"
      
      - **Decimal separator**: Use comma as a separator for decimal numbers.
        - *Source:* "2.5 cm" → *Target:* "2,5 cm"
      
      - **Software version numbers**: Although commas normally should be used as the separator for decimals, periods are instead used for software versions.
        - *Source:* "version 2.5" → *Target:* "version 2.5"
      
      - **Unit symbols**: All symbols are considered a word and should be preceded by a hard whitespace.
        - *Source:* "50%" → *Target:* "50 %"
      
      - **Time format**: Use the 24 hour clock for time format. Use a colon as a separator. If a 12 hour clock must be used, use "fm" for "AM" and "em" for "PM". Use an initial 0 for single digits.
        - *Source:* "4:00 am" → *Target:* "04:00"
      
      - **Date format**: Use the Swedish standard date format, YYYY-MM-DD.
        - *Source:* "7/13/2025" → *Target:* "2025-07-13"
      
      - **Quotation marks**: Use double curly quote marks “ (\u201C) and ” (\u201D) on both sides of a quoted word or sentence.
        - *Source:* "%#@count@ matching \u2019${account}\u2019." → *Target:* "%#@count@ matchar \u201C${account}\u201D."
      
      - **Ampersand character**: Use the word "och" instead of the character &.
        - *Source:* "Privacy & Security" → *Target:* "Integritet och säkerhet"
      
      - **Multiplication sign**: For sizes, the × character should be used between two numbers even if the source text writes an x. There should be a space before and after the × character.
        - *Source:* "38x45 cm" → *Target:* "38 × 45 cm"
      
    • styleguide_ta.md 15.1 KB
      # Tamil (ta) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Tamil uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Hold \u201CSelect\u201D to clear" → *Target:* "அழிக்க \u201Cதேர்ந்தெடு\u201D என்பதை அழுத்திப் பிடிக்கவும்"
      
      ## Tone And Voice
      
      - **Modern Written Colloquial Style**: Use the modern written colloquial style (koṭuntamiḻ) for choosing vocabulary and modern literary and formal style (centamiḻ) for sentence composition. Translations should be formal, easy to understand and readable. Avoid Sanskritized vocabulary whenever possible.
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software**: Do not use abbreviations in software translations unless it is really necessary and other workarounds fail. Country abbreviations use Tamil abbreviation sign (e.g., யூ.எஸ். for US).
      
      ## Acronyms
      
      - **Keep Acronyms Unless Common Tamil Equivalent Exists**: Do not translate acronyms unless there is a very common localized equivalent. Popular Tamil acronyms like யுனெஸ்கோ (UNESCO), இஸ்ரோ (ISRO), நாஸா (NASA) are used like common Tamil terms. The expansion provided in brackets can be translated if the expansion is very popular in Tamil.
        - *Source:* "UNESCO" → *Target:* "யுனெஸ்கோ"
      
      ## Date And Time
      
      - **Date Format**: Use international numbers in hardcoded dates. Comma should not be used to separate the month from the year. In the correspondence (spelled-out) format, transliterate the month name (e.g. 17 மார்ச் 2022). The numeric long format is DD/MM/YYYY and the numeric short format is DD/MM/YY.
        - *Source:* "March 17, 2022" → *Target:* "17 மார்ச் 2022" (correspondence format, spelled month)
        - *Source:* "03/17/2022" → *Target:* "17/03/2022" (numeric long format, DD/MM/YYYY)
      
      - **Time Format HH:mm:ss with Colon Separator**: Use international numbers in hardcoded time. Use a colon (:) as the time separator, with no space before or after it. Translate 'o'clock' as 'மணி'. Do not localize AM/PM; keep it in English following the source capitalization.
        - *Source:* "13:18:35" → *Target:* "13:18:35" (24-hour; colon separator, no surrounding space)
        - *Source:* "08:30 AM, 12:30 PM" → *Target:* "08:30 AM, 12:30 PM" (12-hour; AM/PM kept in English)
        - *Source:* "9 o'clock" → *Target:* "9 மணி"
      
      ## Measurements
      
      - **Do Not Convert Measurements**: Do not convert the measurements (e.g., imperial to metric).
        - *Source:* "km²" → *Target:* "km²"
      
      ## Names And Addresses
      
      - **Tamil Sample Names**: Use generic Tamil names that are inclusive and diverse, avoiding surnames that reveal a particular sect or caste. When a name is a generic placeholder, replace it with a locally-appropriate Tamil name. When the name refers to a specific, real individual named in the source or developer comment (of any nationality), keep that person's actual name, transliterating it into Tamil script if it is in Latin letters.
      
      - **Follow Indian Address Conventions**: Address formatting follows the conventions set forth by the Department of Post, Government of India; the general structure is name, house/door number, street/road, locality/area, city/town, district, state, and PIN code. PIN codes are 6 digits in international numerals with no space between the digits. Addresses outside India are kept in English.
      
      ## Currency
      
      - **Indian Currency Format**: Do not use a blank space after the Indian currency symbol (₹). Rupees can be translated as ரூபாய்.
        - *Source:* "₹ 500.45" → *Target:* "₹500.45" (no space after the ₹ symbol)
        - *Source:* "500 Rupees" → *Target:* "500 ரூபாய்"
      
      ## Numerals
      
      - **International Numerals with Indian Grouping**: Keep numerals as international digits (0–9); do not change the numeral system yourself. Group large numbers using the Indian separator system (e.g., 10,00,000).
        - *Source:* "500000" → *Target:* "5,00,000"
      
      ## Grammar
      
      - **Do Not Translate Articles as ஒரு**: There are no articles in Tamil. Do not literally translate 'a' or 'an' to 'ஒரு' (one). Most Tamil sentences do not need an article. Consider using ஒரு only if it is not possible to render a sentence without it.
        - *Source:* "You liked an image" → *Target:* "படத்திற்கு விருப்பம் தெரிவித்துள்ளீர்கள்"
      
      - **Tamil vs. Transliteration**: Use transliteration only for complex technical terms that would be difficult to understand if translated, or when the non-technical Tamil term is archaic. Follow British English pronunciation for transliteration spellings.
        - *Source:* "Computer" → *Target:* "கம்ப்யூட்டர்"
      
      - **Handling Transliteration Words**: The Aytam character (ஃ) must be used before the consonant to create “F” or “Ph” sound.
        - *Source:* "Phone, Fitness" → *Target:* "ஃபோன், ஃபிட்னஸ்"
      
      - **Transliteration: Usage of ண் (ṇ) before ட**: In transliterated terms, use ண் (ṇ) before ட (ṭa) when pronounced as a soft syllable (like the "nd" in "cylinder").
        - *Source:* "Brand, Conductor, Cylinder" → *Target:* "பிராண்டு, கண்டக்டர், சிலிண்டர்"
      
      - **Transliteration: Usage of ன் (ṉ) before ட**: In transliterated terms, use ன் (ṉ) before ட (ṭa) when pronounced as a hard syllable (like the "nt" in "container"). Note: Exceptions exist for highly established common spellings (e.g., “payment - பேமெண்ட்“ uses ண்).
        - *Source:* "Container" → *Target:* "கன்டெய்னர்"
      
      - **Compounds and Hyphens in Transliteration**: When transliterating, it is not necessary to use a hyphen even though it is present in the source. The transliteration can be with or without space depending on pronunciation. Some words use hyphens as in source like பிளக்-இன், செக்-இன், பாப்-அப்.
      
      - **Prefer Passive Voice for System Messages**: The passive style is preferred when the string involves a message directed to a user without specifying an explicit subject. If the answer to 'What' or 'Who' cannot be found in the string and the source is active voice, Tamil must use passive voice.
        - *Source:* "updating…" → *Target:* "புதுப்பிக்கப்படுகிறது…"
        - *Source:* "Adding %@ Videos" → *Target:* "%@ வீடியோக்கள் சேர்க்கப்படுகின்றன"
      
      - **Sandhi (Consonant Mutation) Rules**: Follow standard Tamil Sandhi rules for consonant mutation. வல்லினம் must be applied correctly when composing compound words and phrases.
      
      - **Case Markers for Terms Kept in Original Form**: Use the standalone case marker forms (ஐ, இல், இன், க்கு etc.) when inflecting terms that are kept in their original form (e.g. product or brand names).
        - *Source:* "Some of your contacts are on Apple Music." → *Target:* "உங்கள் தொடர்புகளில் சிலர் Apple Musicஇல் உள்ளனர்."
      
      ## Variables
      
      - **Hyphenating Variables and Case Markers**: A hyphen (-) must be inserted between the variable and its case marker whenever the variable's replacement text is not a term kept in its original form. Without this hyphen, these variable-case marker combinations appear visually incorrect at runtime.
        - *Source:* "You're now blocking %s." → *Target:* "%s-ஐ இப்போது தடுக்கிறீர்கள்."
      
      - **Preserve Variables; Reorder with Numbering**: If there is no need to change the order of variables, leave them unchanged. If the order needs to change for Tamil sentence structure, number the variables so they are replaced correctly at runtime. Do not change the period to a comma in number variables like '%.1f GB'.
        - *Source:* "Move the USB cable plugged into your %1$@ named \u201C%2$@\u201D to your %3$@." → *Target:* "\u201C%2$@\u201D என்ற உங்கள் %1$@ சாதனத்தில் பிளக்-இன் செய்யப்பட்டுள்ள USB கேபிளை %3$@ சாதனத்திற்கு மாற்றவும்."
      
      ## Punctuation
      
      - **Reduce Comma and Semicolon Usage**: Reduce comma and semicolon usage as much as possible as it breaks the natural flow of the sentence. Instead, use a fullstop (.) to separate the sentence and convey the meaning clearly.
      
      - **Curly Double Quotes for UI Strings**: When highlighting a feature or button name, wrap it in the curly double quotes shown in the escaping section above, not straight quotes — except in HTML or code, where straight quotes are kept as-is. Minimize the use of curly quotes overall.
      
      - **Full Stop**: Use the period (.) as the sentence-ending full stop. For question marks, follow the source's punctuation.
      
      ## Interface Elements
      
      - **Button Names Use Imperative Form**: For buttons and commands where the system performs an action proposed to the user, use Second Person Singular form. Do not use the academic -க suffix.
        - *Source:* "Cancel" → *Target:* "ரத்துசெய்"
        - *Source:* "Save" → *Target:* "சேமி"
      
      - **Descriptions Use Declarative Style with -லாம்**: Footer and description texts that explain the purpose and functionality of a feature should use the declarative -லாம் form rather than the instructional -வும் form.
        - *Source:* "Turn on extra light when you need it." → *Target:* "தேவையானபோது கூடுதல் லைட்டை ஆன் செய்யலாம்."
      
      - **Headings and Titles Use Gerund Form with தல்**: Verbs in headings and title text should be translated in the gerund form rather than using an instructional tone.
        - *Source:* "Setup basics" → *Target:* "அடிப்படைச் செயல்களை அமைத்தல்"
      
      - **Instruction Text Uses Polite Imperative with -வும்**: Instructional text directing the user to perform a specific action (like entering data or making a selection) should be translated using instructional tone with the -வும் suffix.
        - *Source:* "Enter Setup Key" → *Target:* "செட்-அப் கீயை உள்ளிடவும்"
      
      - **App Names: Translation vs Transliteration**: Use translation when a direct, simple native equivalent exists (e.g., Contacts).
        - *Source:* "Contacts" → *Target:* "தொடர்புகள்"
        - *Source:* "Fitness" → *Target:* "ஃபிட்னஸ்"
      
      - **App Names: Pluralization for Translated Terms**: Tamil strictly follows the pluralization of the source text. Apply the Tamil plural suffix (-கள்) when the English source term is plural and the native Tamil word naturally takes a plural form.
        - *Source:* "Books" → *Target:* "புத்தகங்கள்"
      
      - **App Names: Pluralization for Transliterated Proper Nouns**: When a plural term is a proper name (a brand, app, or feature identifier), transliterate it and retain the English plural marker to preserve the identifier — even when the same word can be a common noun in other contexts.
        - *Source:* "Photos, Maps, Messages" → *Target:* "ஃபோட்டோஸ், மேப்ஸ், மெசேஜஸ்"
      
      - **App Names: Transliteration Hybrid Approach**: If retaining the English plural creates difficult consonant clusters (e.g., words ending in -sts, -rds, -gets, -ms) or breaks case marker compatibility, use the transliterated root + Tamil suffix (-கள்).
        - *Source:* "Podcasts, Passwords" → *Target:* "பாட்காஸ்ட்கள், பாஸ்வேர்டுகள்"
      
      - **Category Labels: Generic Terms (Common Nouns)**: When a term is used as a generic category (a common noun) rather than as a proper name, translate it. Choose per term: use a pure Tamil translation with the plural suffix when the Tamil word is commonly understood, otherwise apply the native Tamil plural suffix (-கள்) to the transliterated root.
        - *Source:* "photos, messages" → *Target:* "புகைப்படங்கள், மெசேஜ்கள்"
      
      - **Category Labels: Inline UI Paths**: When directing the user to a label or tab via a path, the term retains its exact localized plural form. Use helper words (like என்பதற்குச்) to attach case markers.
        - *Source:* "Go to Settings > Notifications." → *Target:* "அமைப்புகள் > அறிவிப்புகள் என்பதற்குச் செல்லவும்."
      
      - **Category Labels: Inline Features**: If a feature name appears inline and could cause grammatical ambiguity, wrap the feature name in double curly quotes (“ (\u201C) and ” (\u201D)) and attach the case marker to a helper word (என்பதை).
        - *Source:* "Tap \u201CNotifications\u201D to view alerts." → *Target:* "விழிப்பூட்டல்களைப் பார்க்க \u201Cஅறிவிப்புகள்\u201D என்பதைத் தட்டவும்."
      
      - **Inline Alt-Text Elements**: Do not translate the structural tags placed inside angle brackets (e.g., <AltText>). Also, as per Tamil style the text order can change, which can result in a change in the order of inline Alt-text elements as per the sentence requirements.
        - *Source:* "Tap <AltText>Settings button</AltText> and choose your file." → *Target:* "<AltText>Settings button</AltText>-ஐத் தட்டி உங்கள் கோப்பைத் தேர்வுசெய்யவும்."
      
      ## Trademarks And Product Names
      
      - **Do Not Translate or Transliterate Trademarks**: Do not translate or transliterate trademarks, trademarked slogans, or product names.
      
      ## Diversity And Inclusion
      
      - **Gender-Neutral Language**: Tamil is a gender-neutral language but gendered bias can still occur. When referring to a person, use the neutral word அவர் instead of the gendered அவன்/அவள்.
        - *Source:* "A message on your child\u2019s device will ask them to confirm if they attempted this payment" → *Target:* "இந்த பேமெண்ட்டை உங்கள் சிறார் தான் மேற்கொண்டாரா என்பதை உறுதிசெய்ய, அவரின் சாதனத்தில் ஒரு மெசேஜ் காட்டப்படும்"
      
      - **People-First Language for Disabilities**: Use people-first translation when referring to people with disabilities. Describe individuals as people before mentioning their disability. Avoid defining or derogatory terms like கண் இல்லாதவர், செவிடு, or ஊனமுற்றோர். Instead, use respectful terms like பார்வைத் திறன் குறைபாடு உடையவர், செவித்திறன் குறைபாடு உடையவர், or மாற்றுத்திறனாளி.
        - *Source:* "A person who uses a wheelchair" → *Target:* "மாற்றுத்திறனாளி"
      
    • styleguide_te.md 21 KB
      # Telugu (te) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Telugu uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting UI strings, single curly quotation marks ‘ (\u2018) and ’ (\u2019) for UI-element references in running text, and the curly apostrophe ’ (\u2019).
        - *Source:* "Please see the \u201CFAQ\u201D section." → *Target:* "\u201CFAQ\u201D విభాగాన్ని చూడండి."
      
      ## Abbreviations
      
      - **Avoid Abbreviations — Use Full Forms**: Do not shorten translated words to fit space-constrained UI strings — keep the full Telugu or transliterated form even when it makes the string longer. When abbreviation is absolutely unavoidable, denote it with a period and ensure the shortened term is unambiguous.
        - *Source:* "Number" → *Target:* "సంఖ్య" (abbreviate as "సం." with a period only when forced by a character limit)
      
      ## Acronyms
      
      - **Keep Technical Acronyms in English; Do Not Add Full Stops Between Letters**: Standard technical acronyms such as HTML, XML, CSS, RAM, and ROM must stay in their English form without periods between letters. Expand or transliterate the full form only when it is widely recognized in Telugu. File formats (DOC, PDF, RTF) are always kept unlocalized.
        - *Source:* "RAM" → *Target:* "RAM"
      
      ## Addressing Users
      
      - **Always Use Formal Plural Address (మీరు / మీ)**: Address the user exclusively with the second-person plural forms మీరు and మీ in all content types. Never use the informal singular నువ్వు, నీ, నిన్ను or the condescending forms వాడిని or అతడిని. The tone must always be polite even when direct.
        - *Source:* "We use your location to show you delivery options faster." → *Target:* "మేము మీకు డెలివరీ ఎంపికలను వేగంగా చూపడానికి మీ లొకేషన్‌ను ఉపయోగిస్తాము."
      
      - **Use Honorific Imperative Verb Forms for Buttons and Commands**: Button labels, command names, and dialog actions must use the honorific imperative ending in ‑ండి.
        - *Source:* "Create" → *Target:* "సృష్టించండి"
      
      ## Alt-Text Elements
      
      - **Inline Alt-Text Elements**: Do not change the markup inside the angle brackets — tags, attribute names, and file names stay as-is; translate only the human-readable text, such as the value of the alt attribute. This alt text may be shown when images do not load, or read aloud to people who have difficulty seeing.
        - *Source:* "<img src="settings_gear.jpg" alt="Gear icon for Settings" width="25" height="25">" → *Target:* "<img src="settings_gear.jpg" alt="సెట్టింగ్స్ కోసం గేర్ ఐకాన్" width="25" height="25">"
      
      ## Color Names
      
      - **Translate Standard Color Names Into Direct Telugu Equivalents**: Translate universally recognized basic colors into their direct Telugu equivalents without adding రంగు. These are standard colors with established Telugu terms that are widely understood.
        - *Source:* "Red" → *Target:* "ఎరుపు"
      
      - **Transliterate Non-Standard Color Shades and Color Variations**: Transliterate color variations, non-standard shades, and coined/branded color names to maintain clarity and brand identity — even when a native Telugu word exists.
        - *Source:* "Gray" → *Target:* "గ్రే" (transliterated, not the native బూడిద)
      
      ## Currency
      
      - **Do Not Add Space After Indian Currency Symbol**: Do not place a blank space after the Indian currency symbol ₹. Indian Rupees can be written as రూపాయలు or రూ. in sentences based on context. Always use international numerals with currency.
        - *Source:* "₹ 100.11" → *Target:* "₹100.11" (no space after ₹)
        - *Source:* "100 Rupees" → *Target:* "100 రూపాయలు"
      
      ## Date And Time
      
      - **Transliterate Month Names; Numeric Dates Use DD/MM/YYYY**: For a spelled-out date, transliterate the month name and place the day first, with no comma between the month and the year. For an abbreviated/numeric date, use DD/MM/YYYY. Always use international numerals.
        - *Source:* "20th December 2023" → *Target:* "20 డిసెంబర్ 2023" (spelled month, no comma)
        - *Source:* "12/20/2023" → *Target:* "20/12/2023" (numeric date, DD/MM/YYYY order)
      
      - **Keep AM/PM Untranslated in Time Strings**: Do not translate AM/PM - keep them as-is in all time strings. Use a colon (:) as the time separator, with no surrounding spaces (e.g. 12:11:15). Use నుండి to translate "to" when indicating a time range. Always use international numerals for hardcoded time values.
        - *Source:* "7 PM to 11 PM" → *Target:* "7 PM నుండి 11 PM"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language; Default to Masculine Only as Last Resort**: Prefer neuter or gender-neutral constructions whenever possible. Phrase sentences so they are valid for both male and female readers by using the plural or impersonal form. Do not use slash-separated gender variants (e.g. చేసాడు/చేసింది). Use the masculine form only in plural contexts where Telugu grammar provides no neutral alternative.
        - *Source:* "You were able to solve this problem without using %@" → *Target:* "మీరు %@ని ఉపయోగించకుండానే ఈ సమస్యను పరిష్కరించగలిగారు"
      
      - **Use Passive Voice for Gender Neutrality**: When translating any string where active voice would result in a gendered construction, use passive voice to maintain gender neutrality. This ensures the translation is valid for both male and female readers without specifying gender. Passive voice is especially recommended when the sentence has no explicit subject.
        - *Source:* "The app can recognize your voice" → *Target:* "యాప్ ద్వారా మీ వాయిస్ గుర్తించబడుతుంది"
      
      ## General Advice
      
      - **Use Single Curly Quotes When Referencing UI Elements**: When citing a UI element such as a feature name, button, or page title in running text, wrap it in single curly quotes. This helps differentiate UI references from surrounding text.
        - *Source:* "To edit a query, click \u201CEdit\u201D." → *Target:* "క్వెరీని ఎడిట్ చేయడానికి \u2018ఎడిట్\u2019పై క్లిక్ చేయండి." (UI reference wrapped in single curly quotes)
      
      - **Translate Feature Descriptions and Explanations in a Descriptive Tone**: When descriptions or explanations for features, options, etc. are complete sentences with indicative verbs, translate them in a descriptive (declarative) tone in Telugu, matching the context. Do not use imperative forms for descriptive strings that explain what a feature does.
        - *Source:* "Play music based on mood." → *Target:* "మూడ్‌కు తగినట్లు సంగీతం ప్లే చేయబడుతుంది."
      
      ## Grammar
      
      - **Pluralize Transliterated Common Nouns With Telugu Suffix -లు; Not English -స్**: Transliterated English common nouns that are not app names must take the Telugu plural suffix -లు attached directly without a hyphen or space. Do not add the English -స్ suffix to common nouns. This rule applies to general UI terms, category labels and section headers that are not app names. App names functioning as proper noun identifiers are explicitly excluded from this rule and must retain the English plural marker -స్.
        - *Source:* "Apps, Downloads, Albums, Playlists, Updates" → *Target:* "యాప్‌లు, డౌన్‌లోడ్‌లు, ఆల్బమ్‌లు, ప్లేలిస్ట్‌లు, అప్‌డేట్‌లు"
      
      - **Add Telugu Plural Suffix ‑లు Directly to English Proper Nouns**: English proper nouns and retained product names that stay in their original English form must take the Telugu plural suffix ‑లు attached directly to the English word without a hyphen or space, replacing the English ‑s suffix.
        - *Source:* "iPhones" → *Target:* "iPhoneలు"
      
      - **Telugu Uses Postpositions, Not Prepositions**: Unlike English, Telugu places its relational particles after the noun. Be careful when translating English prepositions such as in, on, at, with, and for — find the correct Telugu postposition and place it after the noun phrase rather than before it.
        - *Source:* "Update iOS on your device" → *Target:* "మీ డివైజ్‌లో iOSను అప్‌డేట్ చేయండి"
      
      - **Avoid Literal Translation of "and" as మరియు Everywhere**: The conjunction మరియు is a valid translation of "and" but can feel stiff when overused. Prefer alternatives like అలాగే or ఇంకా or ఆ తర్వాత, or restructure the sentence to avoid the conjunction entirely, where it improves flow. Do not add a comma before మరియు or లేదా.
        - *Source:* "How do I change my Apple ID and not lose all of my contacts?" → *Target:* "నేను నా కాంటాక్ట్‌లను కోల్పోకుండా నా Apple IDని ఎలా మార్చాలి?"
      
      - **Prefer Passive Voice; Use Active Only for Readability Exceptions**: Telugu translation should generally follow a passive or neutral voice to maintain gender neutrality and natural flow. Use active voice only when the passive form is awkward, causes truncation, or when running sentences clearly benefit from it.
        - *Source:* "WLAN Calling Enabling" → *Target:* "WLAN కాలింగ్ ఎనేబల్ చేయబడుతోంది"
      
      - **No Articles in Telugu — Do Not Translate "a", "an", or "the"**: Telugu has no grammatical articles. Simply drop English articles in translation. Do not render "a" as ఒక unless the numerical sense of "one" is genuinely intended by the source.
        - *Source:* "Enjoy easy pickup from an Apple Store" → *Target:* "Apple Store నుండి సులభ పికప్ సదుపాయం పొందండి"
      
      - **Do Not Add Space Before Telugu Postposition Suffixes**: Never add a space before Telugu postposition case-suffixes such as కి, కు, ని, ను, లో etc., when they are attached to a word. The suffix must be attached directly to the word, with a ZWNJ inserted between them only when the word ends with a halant (్).
        - *Source:* "Lower Case" → *Target:* "లోయర్ కేస్‌కు" (postposition ‑కు attached directly, with no space before it)
      
      ## Interface Elements
      
      - **Translate App Names That Have a Clear Colloquial Telugu Equivalent and Apply Native Plural Suffix**: When an app name has a well-known colloquial Telugu equivalent, translate it and apply the native Telugu plural suffix -లు following standard Telugu morphology. Vowel-ending stems take -లు directly. Nouns ending in -అం drop -అం and take -ఆలు. Never split or partially translate an app name. Add the word యాప్ only when the app name clashes with a common Telugu word in running text and disambiguation is necessary.
        - *Source:* "Messages, Books, Tips" → *Target:* "సందేశాలు, పుస్తకాలు, చిట్కాలు"
      
      - **Retain English Plural Marker -స్ for Transliterated App Names; Never Add -లు**: When no suitable colloquial Telugu equivalent exists, transliterate the app name and retain the English plural marker -స్ as an integral part of the proper noun identifier. Never add Telugu plural suffix -లు to a transliterated app name that already carries -స్ as this produces unnatural double pluralization. Forms like కాంటాక్ట్స్‌లు and సెట్టింగ్స్‌లు must be strictly avoided. When these app names appear in a sentence followed by a postposition, insert a ZWNJ between the word and the postposition.
        - *Source:* "Settings, Contacts, Notes, Maps, Stocks" → *Target:* "సెట్టింగ్స్, కాంటాక్ట్స్, నోట్స్, మ్యాప్స్, స్టాక్స్"
        - *Source:* "Contacts" → *Target:* "కాంటాక్ట్స్", not "కాంటాక్ట్స్‌లు" (do not add -లు to a name already ending in -స్)
      
      - **Use Helping Verb for Standalone Action Buttons With Telugu Verbs**: When a button uses a Telugu verb as a standalone label, add a helping verb such as చేయండి or ఇవ్వండి so it reads as a command rather than a noun. (Established standalone command terms are the exception — see the next rule.)
        - *Source:* "Answer" → *Target:* "సమాధానమివ్వండి"
      
      - **Do Not Add Helping Verb to Standalone Command Terms**: Certain standalone command terms do not require a helping verb. These include: Save, Cut, Duplicate, Cancel, Redeem, Share, Insert, Copy, Paste, Delete. Translate or transliterate them as-is without appending చేయండి.
        - *Source:* "Cancel" → *Target:* "రద్దు"
      
      ## Measurements
      
      - **Translate or Transliterate Measurement Units in Full Written Form; Retain Abbreviations in English**: When a measurement unit appears in its full written form, translate or transliterate it into Telugu (e.g. కిలోమీటర్, సెంటీమీటర్, అడుగులు). When it appears in abbreviated form, keep the English abbreviation unchanged. Always use international numerals with measurement units.
        - *Source:* "Kilometer (km)" → *Target:* "కిలోమీటర్ (km)"
      
      - **Always Retain Electronic and Computing Units in English**: Electronic or computing units such as MB, GB, TB, KB, 1080p, 720p must always be left in English regardless of whether they appear in full or abbreviated form. Always leave a space between the number and the unit.
        - *Source:* "2 GB" → *Target:* "2 GB"
      
      - **Do Not Convert Measurement Units**: Do not convert measurements (e.g. imperial to metric) to local measurements. For example, do not convert inches to cm. Keep the source units as given.
      
      ## Names And Addresses
      
      - **Use Locally-Appropriate Names for Placeholders; Keep a Specific Real Individual's Name**: When the source uses a generic placeholder name, replace it with a generic, locally-appropriate Telugu name so the UI reads naturally. When the name refers to a specific, real individual (rather than a generic placeholder), keep that person's actual name, transliterating it into Telugu script if it is written in Latin letters. Tools, software/application, third-party brand, company, and product names must not be translated.
      
      - **Follow Indian Address Conventions**: Address formatting follows the Telugu conventions used by the Department of Post, Government of India. There is no single defined format for Indian addresses; the general structure is name, block/building/house number, street/road/village, locality/colony/post office, suburb/district, city/town, state, and PIN code. PIN codes consist of 6 digits with no space between digits, written in international numerals, generally placed after the city or district name. Addresses outside India are recommended to be kept in English.
      
      ## Numerals
      
      - **Use Correct Ordinal Number Format in Telugu**: Hard-coded numbers must be in international numeral form (0–9). Ordinals follow the pattern మొదటి/1వ, రెండవ/2వ, మూడవ/3వ and so on. Always leave a space between a number and the following word or unit.
        - *Source:* "First / 1st" → *Target:* "మొదటి / 1వ"
      
      - **Apply Indian Comma Grouping System for Large Numbers**: The Indian comma system must be used for large numbers - commas are placed after thousands, then lakhs and crores (e.g. 10,00,000 not 1,000,000). Hard-coded numbers must always be in international numeral form (0-9). Always leave a space between a number and the following word or unit.
        - *Source:* "10,00,000 songs" → *Target:* "10,00,000 పాటలు"
      
      ## Punctuation
      
      - **Use Curly Double Quotes in UI Strings**: Wrap quoted UI strings in the curly double quotes shown in the escaping section above, not straight quotes — except inside HTML or code, where straight quotes are kept as-is. Use the single ellipsis character (…), not three separate dots. Do not use a comma before the conjunctions మరియు or లేదా.
      
      - **Retain & Symbol Between Product Names, Feature Names or Mixed-Language Items**: Retain the & symbol when it appears between product names, feature names, or mixed-language items where one or both sides of the symbol remain in English or are transliterated. Do not replace & with a comma in such cases.
        - *Source:* "Display & Brightness" → *Target:* "డిస్‌ప్లే & బ్రైట్‌నెస్"
      
      - **Replace & with Comma When Both Sides Are Fully Translated Telugu Words**: Replace the & symbol with a comma only when both sides of the symbol are fully translated Telugu words. This clause does not apply anywhere else - only when both sides have Telugu word translations, not transliterations.
        - *Source:* "Privacy & Security" → *Target:* "గోప్యత, భద్రత"
      
      - **Do Not Use Space Before or After a Slash**: Do not use a space before or after a slash (/) in Telugu UI strings, unless the source string itself has spaces around the slash.
        - *Source:* "On/Off" → *Target:* "ఆన్/ఆఫ్"
      
      ## Region Names
      
      - **Transliterate Location and Country Names; Do Not Translate Into Telugu**: Location, Region, State and Country names except India should be transliterated. Do not translate country names into their Telugu equivalents. This applies to all countries, states and regions outside India.
        - *Source:* "United States" → *Target:* "యునైటెడ్ స్టేట్స్"
      
      ## Terminology
      
      - **Prefer Transliteration Over Archaic Telugu for Technical Terms**: When no natural, widely-understood Telugu equivalent exists, transliterate the English term using its Indian/British English pronunciation as the reference. Do not coin archaic Sanskritized translations that the target audience will not recognize.
        - *Source:* "Photo library" → *Target:* "ఫోటో లైబ్రరీ"
      
      - **Use Standardized Telugu Terminology Consistently**: Repetitive phrases and standard UI labels must be translated the same way every time — use the established Telugu term consistently rather than introducing a variant.
        - *Source:* "Settings" → *Target:* "సెట్టింగ్స్"
      
      ## Tone And Voice
      
      - **Smart but Casual — Written Colloquial Telugu**: Use a tone that is neither stiff nor excessively informal. Follow the written colloquial style used by major Telugu publications, which blend formal and everyday Telugu. Ensure grammatical correctness including proper use of object markers such as ను, కు etc. where required. The reader should not feel they are reading a translation.
        - *Source:* "Enter your password." → *Target:* "మీ పాస్‌వర్డ్‌ను నమోదు చేయండి."
      
      ## Transliteration
      
      - **Localize Standalone "Cellular"**: When "Cellular" appears as a standalone term or is followed by Telugu words, translate it as మొబైల్ సర్వీస్. This applies to cases where Cellular refers to the network service itself.
        - *Source:* "Cellular" → *Target:* "మొబైల్ సర్వీస్"
      
      - **Localize "Cellular" as మొబైల్ When Used as a Modifier With Another English Technical Term**: When "Cellular" appears as a modifier alongside another English technical term such as data, translate it as మొబైల్ only. Do not add సర్వీస్ in such cases.
        - *Source:* "cellular data" → *Target:* "మొబైల్ డేటా"
      
      - **Prefer the Indian/British English Term and Pronunciation for Transliteration**: When an English term has distinct British/Indian and American forms, prefer the Indian/British one — e.g. Mobile not Cellular, Cycle not Bike, Lift not Elevator — and use Indian/British pronunciation (not American) as the reference when spelling the transliteration.
        - *Source:* "Elevator" → *Target:* "లిఫ్ట్"
      
      ## URL Addresses
      
      - **Do Not Add ZWNJ or Suffixes Directly Adjacent to URLs**: Never place Zero Width Non-Joiners (ZWNJ) or Telugu suffixes directly next to a URL link. This can make the URL non-functional and non-clickable. Place any Telugu text after a space following the URL.
        - *Source:* "www.apple.com/in/privacy and Apple Privacy Policy" → *Target:* "www.apple.com/in/privacy మరియు Apple గోప్యతా విధానం"
      
      ## Variables
      
      - **Reorder and Number Variables When Telugu Grammar Requires Different Word Order**: When Telugu sentence structure requires a different word order from the source, number all variables using the n$ syntax immediately after the % sign to preserve their runtime mapping. Do not add spaces or Telugu characters inside variable placeholders.
        - *Source:* "Check out the score %1$@ earned on %2$@ playing %3$@" → *Target:* "%2$@‌లో %3$@ ఆడుతూ %1$@ సాధించిన స్కోర్‌ను చూడండి"
      
    • styleguide_th.md 19.6 KB
      # Thai (th) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Thai uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "\u201C%1$@\u201D is sharing %2$ld contact cards." → *Target:* "\u201C%1$@\u201D กำลังแชร์บัตรรายชื่อ %2$ld ใบ"
      
      ## Tone And Voice
      
      - **Break Away from the Source Sentence Structure — Translate Meaning, Not Form**: Thai translations must not mirror the source word order or sentence structure literally. Restructure the sentence so it sounds natural to a Thai speaker, changing word order and rephrasing as needed. The translation succeeds when it reads like Thai written by a native speaker, not like a rendered translation.
        - *Source:* "Enter the approval code provided by your recovery contact." → *Target:* "ป้อนรหัสการอนุญาตที่ผู้ติดต่อการกู้คืนของคุณให้มา"
        - *Source:* "Pair with this device to use it again." → *Target:* "จับคู่กับอุปกรณ์นี้อีกครั้งเมื่อต้องการใช้งาน"
      
      ## Addressing Users
      
      - **Use Gender-Neutral Pronouns — คุณ, ฉัน, เรา; do not use ท่าน or พวกเรา**: Address the user as คุณ (you) and use ฉัน for the first-person singular and เรา for the first-person plural. Do not use the formal ท่าน and do not use พวกเรา for "we". These pronouns (คุณ, ฉัน, เรา) carry no gender, which keeps the translation gender-neutral.
        - *Source:* "I / You / We" → *Target:* "ฉัน / คุณ / เรา"
      
      ## Abbreviations
      
      - **Keep US English Abbreviations and Their Expansions in English; Translate Only the Surrounding Context**: Do not translate or transliterate US English abbreviations. When the source provides a full expansion in parentheses after the abbreviation, keep both in English. Only the descriptive context surrounding them is translated into Thai.
        - *Source:* "USB (Universal Serial Bus)" → *Target:* "USB (Universal Serial Bus)"
      
      ## Acronyms
      
      - **Keep Acronyms in English; Add Thai Classifier Prefixes for Physical Media**: Acronyms such as RAM do not require translation. For physical media acronyms like CD and DVD, prefix with the appropriate Thai noun (แผ่น for a disc, เครื่องเล่น for a player) to produce natural Thai phrasing.
        - *Source:* "CD" → *Target:* "แผ่น CD"
        - *Source:* "DVD player" → *Target:* "เครื่องเล่น DVD"
        - *Source:* "RAM" → *Target:* "RAM"
      
      ## Grammar
      
      - **Add a Thai Verb in Front of Every Transliterated English Verb**: When a transliterated English verb is used in Thai, it cannot function as a verb on its own. Prefix it with an appropriate Thai action verb to make the phrase grammatically complete.
        - *Source:* "partition" (verb) → *Target:* "แบ่งพาร์ติชั่น"
        - *Source:* "email" (verb) → *Target:* "ส่งอีเมล"
        - *Source:* "filter" (verb) → *Target:* "ใส่ฟิลเตอร์"
      
      - **Omit the Pronoun "it" — Replace Only When Needed to Prevent Ambiguity**: Never use มัน (it) for a person — it is impolite and offensive. For a non-human referent, drop "it" from the Thai translation entirely. Restate the referent only when dropping "it" would make the sentence ambiguous — in that case name the noun it refers to rather than using มัน.
        - *Source:* "It's %@ O'clock." → *Target:* "เวลา %@ นาฬิกา" (dummy "it" — dropped entirely)
        - *Source:* "Do you want to replace it with the one you are moving?" → *Target:* "คุณต้องการแทนที่เพลย์ลิสต์นั้นด้วยเพลย์ลิสต์ที่คุณกำลังย้ายหรือไม่" (real referent — "it" restated as the noun เพลย์ลิสต์นั้น, not มัน)
      
      - **Reduce Possessive Pronouns — Keep Only Where Omission Causes Ambiguity**: English uses possessive pronouns far more frequently than Thai does. Omit ของคุณ (your) and similar possessives when the owner is obvious from context. In a short string with multiple occurrences, keep enough to prevent ambiguity — typically one instance toward the end of the sentence.
        - *Source:* "Add songs by dragging them from your Library to your iPod." → *Target:* "เพิ่มเพลงโดยลากจากคลังไปยัง iPod ของคุณ"
      
      - **Avoid Translating "their" When Omission Does Not Cause Ambiguity**: The possessive pronoun "their" (ของพวกเขา / ของเขา) is often redundant in Thai and should be omitted when the owner is clear from context. Retaining it unnecessarily makes Thai sound unnatural.
        - *Source:* "Have your Family Member put on their Apple Watch and hold it up to the Camera." → *Target:* "ให้สมาชิกครอบครัวของคุณสวม Apple Watch แล้วยกขึ้นมาที่หน้ากล้อง"
      
      - **Thai Nouns Are Not Inflected for Number**: Thai has no plural form. A plural English noun ("books", "songs") becomes the bare Thai noun; plurality is conveyed by a classifier or by context, never by a plural marker on the noun.
      
      - **Use Classifier Nouns for All Counting Constructions**: Every countable noun in Thai is counted using a specific classifier noun placed after the numeral. The format is (countable noun) [numeral] [classifier]. When the noun and its classifier are the same word, the noun may be omitted without loss of meaning.
        - *Source:* "Moving %@ books…" → *Target:* "กำลังย้ายหนังสือ %@ เล่ม…"
        - *Source:* "\u201C%1$@\u201D is sharing %2$ld Calendar Events." → *Target:* "\u201C%1$@\u201D กำลังแชร์กิจกรรมปฏิทิน %2$ld กิจกรรม"
        - *Source:* "Undo Check %S Songs" → *Target:* "เลิกเลือก %S เพลง"
      
      - **Use "on" (บน) for Cloud Services and Devices; Use "in" (ใน) for Local Device Storage**: When data is associated with a cloud service, or displayed on a device screen, use บน (on). When data is physically stored inside a device or local file system, use ใน (in). This distinction reflects how Thai speakers conceptualize where data lives and directly affects which preposition sounds natural.
        - *Source:* "Enter your password to continue using iCloud on this Mac." → *Target:* "ป้อนรหัสผ่านของคุณเพื่อใช้ iCloud บน Mac เครื่องนี้ต่อไป" (iCloud is a cloud service → บน)
        - *Source:* "Do you want to keep the music that's on your iPad?" → *Target:* "คุณต้องการเก็บเพลงที่อยู่ใน iPad ของคุณหรือไม่" (the music is stored inside the device → ใน)
      
      ## Terminology
      
      - **Translate "all" as ทุก (every) When It Means "Every Device/Item"; ทั้งหมด Otherwise**: When "all" means "every device" or "every item" (as in "across all your devices"), translate it as ทุก + classifier (e.g. ทุกเครื่อง, อุปกรณ์ทุกเครื่อง) to convey "every". For other senses of "all", use ทั้งหมด or the most appropriate term.
        - *Source:* "iCloud keeps them updated across all your devices." → *Target:* "iCloud อัปเดตล่าสุดอยู่เสมอบนอุปกรณ์ทุกเครื่องของคุณ" (every device → ทุก)
        - *Source:* "See all messages" → *Target:* "ดูข้อความทั้งหมด" (all of a set → ทั้งหมด)
      
      - **Transliterate Loan Words; Use Established Thai Spellings for Common Ones**: Transliterate loan words into Thai using standard Thai transliteration conventions. Several high-frequency loan words have established Thai spellings that differ from strict phonetic transliteration — always use these established forms for consistency.
        - *Source:* "software" → *Target:* "ซอฟต์แวร์"
        - *Source:* "update" → *Target:* "อัปเดต"
        - *Source:* "internet" → *Target:* "อินเทอร์เน็ต"
        - *Source:* "Bluetooth" → *Target:* "บลูทูธ"
        - *Source:* "download" → *Target:* "ดาวน์โหลด"
        - *Source:* "application / app" → *Target:* "แอปพลิเคชัน / แอป"
      
      ## Punctuation
      
      - **Thai Has No Terminal Full Stop — End Sentences Without a Period**: Thai does not use a period to end a sentence. Simply allow the sentence to end naturally or follow it with a space. Do not add a full stop at the end of Thai sentences when one appears in the source.
        - *Source:* "The requested operation could not be completed." → *Target:* "ไม่สามารถดำเนินการตามที่ร้องขอได้"
      
      - **Remove Question Marks — Use Thai Interrogative Phrases Instead**: Thai does not use question marks. Remove them and replace with the appropriate interrogative phrase at the end of the sentence, such as หรือไม่, ใช่หรือไม่, or อย่างไร, choosing the form that matches the source's tone.
        - *Source:* "Do you want to keep a copy of your iCloud contacts on this Mac?" → *Target:* "คุณต้องการเก็บสำเนารายชื่อของ iCloud ใน Mac เครื่องนี้หรือไม่"
      
      - **No Commas Between Thai Phrases — Use a Space Instead**: Thai uses spaces, not commas, to separate phrases and list items composed of Thai words. Commas are only acceptable between English words in a list, in a mixed English-Thai list, or to prevent ambiguity where adjacent English or untranslated proper names would otherwise run together.
        - *Source:* "Disconnect all external devices except keyboard, mouse and Ethernet adapter." → *Target:* "ถอดอุปกรณ์ภายนอกทั้งหมดออกยกเว้นแป้นพิมพ์ เมาส์ และอะแดปเตอร์อีเธอร์เน็ต"
      
      - **Use the Single Ellipsis Character (…) — Never Three Separate Dots**: Always insert a single Unicode ellipsis character (… U+2026) rather than three consecutive periods. Accessibility software pronounces these differently, and the character spacing also differs.
        - *Source:* "Downloading..." → *Target:* "กำลังดาวน์โหลด…"
      
      ## Date And Time
      
      - **Date Format — Day Before Month; Add วันที่ and เวลา as Prefixes**: Thai always places the day before the month (DD/MM/YY). When writing a full date, prefix it with วันที่ for the date and insert เวลา between the date and time components. These prefixes may be omitted only when space is critically limited. When the source string contains a hard-coded Gregorian year (e.g. "2013"), convert it to the Buddhist Era — the Gregorian year plus 543 (2013 → 2556), as the examples show — since the Buddhist Era is standard in Thailand. Do not convert a year that arrives through a variable or date placeholder: the system formats those from the user's calendar setting. Keep the Gregorian year in software-update strings, where the Gregorian year is the standard convention.
        - *Source:* "September 11th, 2013" → *Target:* "วันที่ 11 กันยายน 2556"
        - *Source:* "9/11/13 8:30 am" → *Target:* "11/9/56 เวลา 8.30 น."
      
      - **Use 24-Hour Format with น. Suffix**: Thai defaults to 24-hour time written as HH.mm น. or HH:mm:ss น. If a 12-hour time with a.m./p.m. is kept, leave a.m./p.m. in English — do not translate them as ก่อนเที่ยง/หลังเที่ยง, which are not used in everyday Thai.
        - *Source:* "4:29 pm" → *Target:* "16.29 น."
      
      ## Special Characters
      
      - **No Space Before Thai Repetition Mark (MaiYaMok ๆ) in Software UI**: In software UI strings, do not insert a space before the Thai MaiYaMok character (ๆ, U+0E46). A space at this position would allow the text to break onto a new line at that character, producing an awkward layout. This is an intentional exception to the Royal Society spacing guidelines, which apply to other content types.
        - *Source:* "others" → *Target:* "อื่นๆ" (no space before ๆ — not "อื่น ๆ")
      
      ## Measurements
      
      - **Do Not Convert Units — Follow the Source; Never Use " for Inch**: Do not convert imperial to metric or vice versa. For the inch mark use the double prime ″ (\u2033); never use a straight or curly double quotation mark. Thai uses the metric system in general.
        - *Source:* "Place iPad 10 to 20 inches from your face." → *Target:* "ให้ iPad ห่างจากใบหน้าของคุณ 10 ถึง 20 นิ้ว"
      
      ## Trademarks And Product Names
      
      - **Keep Trademarks and Product Names in Their Original Form**: Do not translate or transliterate trademarks, product names, or brand names (the app's own or a third party's, such as YouTube or Facebook); keep them in their original form unless the source or a developer comment directs otherwise.
      
      ## Interface Elements
      
      - **Do Not Add Spaces Around Software UI Element Names Embedded in Thai Text**: Thai already uses spaces to separate phrases rather than as word boundaries. Adding extra spaces around a translated UI element name fragments the surrounding sentence unnaturally. Embed the element name directly without surrounding spaces.
        - *Source:* "Configure displays in System Preferences." → *Target:* "กำหนดค่าจอภาพในการตั้งค่าระบบ" (no extra spaces around การตั้งค่าระบบ)
      
      - **Wrap Multi-Word UI Element Names in Curly Double Quotes**: Thai has no capitalization to signal a UI element name the way English does. When a translated UI element name contains two or more words (i.e. includes internal spaces), wrap it in the curly double quotes from the escaping section above to mark it as a distinct interface element and prevent it from blending into surrounding text.
        - *Source:* "Use iCloud Settings on your iPhone to turn off Find My iPhone." → *Target:* "ใช้การตั้งค่า iCloud บน iPhone ของคุณเพื่อปิดใช้ \u201Cค้นหา iPhone ของฉัน\u201D"
      
      - **Add แอป Before App Name Only When the App and Its Content Share the Same Translation**: Some Thai app names are identical to the items they contain (e.g. ข้อความ is both the Messages app and a message). When both appear in the same string and confusion is possible, prefix the app name with แอป. Do not substitute แอป with แอปพลิเคชัน or vice versa.
        - *Source:* "You have a new message in Messages." → *Target:* "คุณมีข้อความใหม่ในแอปข้อความ"
      
      - **Use the Device Classifier Before Demonstratives for Hardware Devices**: When referring to a specific hardware device by name, add the appropriate Thai classifier before the demonstrative pronoun (นี้/นั้น/อื่น/ใหม่): use เครื่อง for most devices (e.g. Mac, iPhone, iPad, iPod, HomePod) and เรือน for a watch (e.g. Apple Watch). When the device type is unknown, omit the classifier.
        - *Source:* "this iPhone" → *Target:* "iPhone เครื่องนี้"
        - *Source:* "this Apple Watch" → *Target:* "Apple Watch เรือนนี้"
      
      ## Variables
      
      - **Preserve Variables Exactly; Reorder with Positional Indices as Needed**: Never alter or omit variable format specifiers — except to add the `[tt]` technical-term flag. If Thai word order requires a different variable sequence, add positional indices (%1$@, %2$@, etc.) to every variable in the string. Do not change the period inside numeric format specifiers such as %.1f.
        - *Source:* "Meeting scheduled for %1$@ %2$@." → *Target:* "นัดหมายสำหรับ %2$@ %1$@"
      
      - **Add `[tt]` (Technical Term) to a `%@` Variable That Holds a Name or Technical Term**: `[tt]` controls the spacing where a substituted value meets the Thai text next to it — at runtime it adds a space when the value is non-Thai (e.g. a Latin app name) and none when it is Thai. Add `[tt]` to a `%@` variable — `%@` → `%[tt]@`, or with a positional index `%2$@` → `%2$[tt]@` — when the variable sits directly against Thai characters on its left and/or right (the usual case, since Thai has no spaces between words). Add it only when both hold: (a) the code formats the string with a modern localized API (`String(localized:)`, `LocalizedStringResource`, `localizedStringWithFormat`, or `format:locale:`) — never `String(format:)` / `stringWithFormat`; and (b) the value is a human-readable name, title, or app/device/item name (confirm from the source, developer comment, string key, or code). If either is not clear, leave `%@` unchanged. `[tt]` attaches only to `%@` (object) specifiers, never to `%d`, `%f`, etc.
        - Do not add `[tt]` when the variable is set off from the Thai on both sides — wrapped in quotes or parentheses, or separated by a comma: `"%@"`, `(%@)`, `%@, %@, and others`. A trailing space plus a parenthetical such as ` (Bluetooth)` does not exclude it if the other side still sits against Thai (see the Bluetooth example).
        - Also do not add `[tt]` when the value is an image, glyph, icon, link, or URL, or a number.
        - Adding `[tt]` is the only change permitted to a specifier's contents; otherwise keep variables exactly as the source has them.
        - *Note:* with `String(format:)` / `stringWithFormat`, `[tt]` is not supported and a literal `%[tt]@` can appear in the UI at runtime; only add `[tt]` when the code uses a modern API, or update the code to a modern API if that change is trivial.
        - *Source:* "Send a message to %@" → *Target:* "ส่งข้อความถึง%[tt]@" (value sits against Thai on the left → add)
        - *Source:* "Search %@ or enter your address" → *Target:* "ค้นหา%[tt]@หรือป้อนที่อยู่ของคุณ" (against Thai on both sides → add)
        - *Source:* "Connect to %@ (Bluetooth)" → *Target:* "เชื่อมต่อกับ%[tt]@ (Bluetooth)" (against Thai on the left; the trailing " (Bluetooth)" is space-separated → still add)
      
      ## Diversity And Inclusion
      
      - **Avoid Violent, Oppressive, or Ableist Terms**: Do not translate technology using inherently violent terms (like "kill" or "hang"), the oppressive pair "master"/"slave", or terms like "sanity check" that associate mental health with functionality. Avoid describing software or hardware with human attributes, which can carry unintended hurtful implications.
      
      - **Use Gender-Neutral Language**: Thai has no grammatical gender, so translations are naturally gender-neutral; keep them that way — avoid introducing gendered assumptions, and where content is about or addressed to a real person, prefer referring to them by name.
      
      - **Put People First When Translating About Disability**: Focus on what people can do, not on what they can't. In most cases use people-first phrasing that describes the individual before any disability.
      
      - **Don't Use Color to Convey Positive or Negative Qualities**: Use colors only to describe actual colors. Avoid using color to connote security, secrecy, or a good/bad judgment (e.g. "white hat hacker", "black testing environment").
      
    • styleguide_tr.md 16.1 KB
      # Turkish (tr) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Turkish uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019) — including when attaching a suffix to an acronym or loan word.
        - *Source:* "to the podcast" → *Target:* "podcast\u2019i"
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Write in a neutral, descriptive style that is closer to formal than informal, but never stiff or overly hip. Use short and concise language; there is no need to repeat every source word. The translation succeeds when the reader does not feel they are reading a translation.
        - *Source:* "Choose the XX option." → *Target:* "XX seçeneğini seçin."
      
      ## Addressing Users
      
      - **Second-Person Plural Imperative — Avoid Over-Formal Suffixes**: Address users with second-person plural forms such as "açın" and "sürükleyin". Never use the over-formal "-iniz/-ınız" suffix forms like "açınız" or "kapatınız". In buttons use the plain imperative (e.g. "Aç", "Kapat"). For App Intents or App Shortcuts phrases, use second-person singular.
        - *Source:* "Open the file." → *Target:* "Dosyayı açın."
        - *Source:* "Close the window." → *Target:* "Pencereyi kapatın." (not the over-formal "kapatınız")
      
      ## Abbreviations
      
      - **Avoid Abbreviations; Handle Ambiguous Ones Carefully**: Do not use abbreviations in software strings unless absolutely necessary. When abbreviations are unavoidable, follow standard Turkish abbreviation rules — most end with a period (dk., sa.) except SI units (km, m, kg). Be especially careful when the same abbreviation represents different English source terms.
        - *Source:* "approx." → *Target:* "yaklaşık" (spell out — avoid the abbreviation)
        - *Source:* "Min" → *Target:* "dk." (minutes — only when an abbreviation is unavoidable)
        - *Source:* "Min" → *Target:* "Min." (minimum — disambiguate identical abbreviations)
      
      ## Acronyms
      
      - **Add Turkish Pronunciation-Based Suffixes to Acronyms**: Do not translate acronyms unless a very common localized equivalent exists. Attach Turkish suffixes based on how the acronym is pronounced in Turkish, not how it is spelled in English.
        - *Source:* "HDR" → *Target:* "HDR\u2019ye"
        - *Source:* "URL" → *Target:* "URL\u2019ye"
      
      ## Date And Time
      
      - **Turkish Date and Time Format**: The standard Turkish short date format is DD.MM.YYYY (e.g. 05.01.2014) and the long form is "5 Ocak 2014 Pazar". The default time format is the 24-hour clock (e.g. 13:08). Do not transliterate format placeholders like MM/DD/YY into AA/GG/YY; instead apply the correct functional format for the locale.
        - *Source:* "05/01/2014" → *Target:* "05.01.2014"
        - *Source:* "1:08 PM" → *Target:* "13:08" (24-hour clock)
      
      ## Measurements
      
      - **Measurements — No Conversion; Specific Spacing Rules**: Do not convert imperial to metric units. Place a non-breaking space between a number and its unit symbol (e.g. 3 cm, 25 ºC), but write the percent sign before the number with no space (e.g. %30). Time abbreviations dk. and sa. take a period; SI units (cm, m, kg) do not.
        - *Source:* "2 GB" → *Target:* "2 GB"
        - *Source:* "6 ft" → *Target:* "6 ft" (keep imperial units; do not convert to metric)
      
      ## Names And Addresses
      
      - **Turkish Address Format**: Format addresses with street name and number first, then postal code, district, and city. Turkish postal codes are five digits.
      - **Sample Email and Web Addresses**: When an email or web address uses the example.com domain (the conventional placeholder), adapt only the name before the @ to something informative for Turkish users, avoiding Turkish-specific characters (ç, ğ, ş); keep example.com itself unchanged. Leave all other email and web addresses exactly as written. Example: kullanici@example.com.
      
      ## Numerals
      
      - **Turkish Number Formatting — Comma Decimal, Period Thousands**: Use a comma as the decimal separator and a period as the thousands separator for numbers with five or more digits (e.g. 25.000 parça). Four-digit numbers need no separator (e.g. 1800 dosya). Never drop the leading zero before a decimal point — ".5" in the source becomes "0,5" in Turkish.
        - *Source:* "25,000 pieces" → *Target:* "25.000 parça"
        - *Source:* ".5 m" → *Target:* "0,5 m"
      
      ## Special Characters
      
      - **Replace Ampersand with "ve"; Use Circumflex to Distinguish Words**: Never use the "&" character in regular text; write "ve" instead. Some Turkish words require a circumflex vowel to distinguish meanings — for example, "hâlâ" (still) vs. "hala" (aunt) and "resmî" (official) vs. "resmi" (his/her picture). Use the precomposed (NFC) circumflex letters â (\u00E2), î (\u00EE), û (\u00FB) — not a base vowel followed by a combining circumflex, and never the caret ^ (\u005E), which is an unrelated ASCII character.
        - *Source:* "Settings & Privacy" → *Target:* "Ayarlar ve Gizlilik"
        - *Source:* "still" → *Target:* "hâlâ"
      
      ## Punctuation
      
      - **Do Not Mirror English Comma Usage in Turkish**: English and Turkish comma rules differ significantly — do not carry English commas over into Turkish. In particular, avoid the Oxford comma (no comma before "ve" or "veya"); see the specific no-comma cases below.
      
      - **No Comma After 'için'**: Do not place a comma after 'için' (for/to). Following the source comma here is one of the most common Turkish punctuation errors.
        - *Source:* "To reset your password, go to example.com." → *Target:* "Parolanızı sıfırlamak için example.com adresine gidin."
      
      - **No Comma After Conditional Mood (-se/-sa)**: Do not place a comma after a conditional clause ending in -se or -sa. English uses a comma after 'if' clauses; Turkish does not.
        - *Source:* "If you need assistance, contact your card issuer." → *Target:* "Yardıma ihtiyacınız varsa kartı veren kuruluşa danışın."
      
      - **No Comma After Single Verbal Adverb (Zarf-fiil)**: Do not place a comma after a single verbal adverb (zarf-fiil) mid-sentence. A comma may be used only when multiple verbal adverbs appear in sequence.
        - *Source:* "The distortion increases with the distance from the center." → *Target:* "Dairenin merkezine olan mesafe arttıkça görüntünün bozulması da artar."
      
      - **Quotation Marks and Full Stop Placement**: Turkish uses curly apostrophes and curly quotation marks. Place the full stop after the closing quotation mark or closing parenthesis, not before it. Use double quotation marks as the default; single quotation marks are only used for a quote within a double-quoted sentence. Do not convert straight quotes in code samples.
        - *Source:* "Select \u201CStart automatically.\u201D" → *Target:* "\u201COtomatik olarak başlat\u201Dı seçin."
      
      ## Grammar
      
      - **Plural vs. Singular with Determiners and Numbers**: Use the plural form when the source contains determiners like "all", "other", or phrases like "and more". Use the singular form when items are listed as examples (introduced by "such as") or when a number precedes the noun, since Turkish does not pluralize nouns after numerals.
        - *Source:* "Looking for other iPads, iPhones…" → *Target:* "Diğer iPad\u2019ler, iPhone\u2019lar aranıyor…"
        - *Source:* "Profiles contain settings, such as names and passwords." → *Target:* "Profiller, ad ve parola gibi ayarları içerir." (singular after 'such as')
      
      - **Distinguish Noun vs. Verb Forms in Context**: Many English terms can be either a noun or a verb (View, Edit, Record, Play, etc.) and require different translations. Use context, string notes, and surrounding strings to determine which form is needed. Menus use noun forms; buttons and commands use imperative forms.
        - *Source:* "Edit" → *Target:* "Düzen" (menu title)
        - *Source:* "Edit" → *Target:* "Düzenle" (button)
        - *Source:* "View" → *Target:* "Görüntü" (menu)
        - *Source:* "View" → *Target:* "Görüntüle" (button)
      
      - **Uppercase-Lowercase Conversion Rules**: Follow Turkish uppercase-lowercase conversion pairs, specifically ı → I and i → İ. Be aware this can cause functional issues in programmatic conversions.
      
      - **Loan Words — Curly Apostrophe Before Turkish Suffix**: Treat loan words as proper names. Always separate a Turkish grammatical suffix from a loan word using a curly apostrophe (\u2019), the same way suffixes attach to acronyms above.
      
      - **Capitalization Exceptions for Conjunctions**: Do not capitalize conjunctions (ve, veya, ile) or the word "için" in titles, except for specific visual phrases.
        - *Source:* "iWork for iOS" → *Target:* "iOS için iWork"
      
      - **Use Passive Voice to Avoid Variable Inflection**: Use the passive voice when necessary to avoid attaching inflections directly to variables.
        - *Source:* "Deleting the preferences will…" → *Target:* "Tercihler silindiğinde…"
      
      - **Grammar Constraints & Concatenation**: Adapt to Turkish sentence structure in concatenated strings. Nouns following a number must be singular in Turkish, unlike English.
        - *Source:* "1 Application / %d Applications" → *Target:* "1 Uygulama / %d Uygulama"
      
      - **Tooltips — Tense and Punctuation**: Use simple present tense for button tooltips. Do not end with a period unless it is a full sentence with a subject and conjugated verb.
        - *Source:* "Crop as portrait" → *Target:* "Düşey olarak kırp"
      
      - **Undo and Redo Strings**: Translate Undo/Redo variables using a colon format to avoid attaching suffixes to the variable.
        - *Source:* "Undo %@" → *Target:* "Geri Al: %@"
        - *Source:* "Redo %@" → *Target:* "Yinele: %@"
      
      ## Interface Elements
      
      - **Button and Command Capitalization — Imperative Form**: Use the plain imperative for buttons (Aç, Kapat, Düzenle) and command names in menus (Yazdır, Çık). Menu titles use noun forms (Dosya, Düzen, Görüntü). Capitalization follows the source for buttons and pane titles; do not capitalize words mid-sentence just to follow English style.
        - *Source:* "Open" → *Target:* "Aç" (button)
        - *Source:* "Print" → *Target:* "Yazdır" (menu command)
        - *Source:* "File" → *Target:* "Dosya" (menu title)
      
      
      ## Trademarks And Product Names
      
      - **Use Non-Breaking Space with Product Names in Software**: In software strings, place a non-breaking space between multi-word product names and surrounding text to prevent the name from wrapping across lines. Apply this to any multi-word product name — including the app's own.
        - *Source:* "Apple Watch" → *Target:* "Apple Watch" (non-breaking space before "Watch")
      
      - **Attach Suffixes to Product Names Based on English Pronunciation**: Attach Turkish suffixes to product names that are kept in their original form based on their English pronunciation, not their spelling.
        - *Source:* "to Apple Music" → *Target:* "Apple Music\u2019e"
      
      ## Terminology
      
      - **Prefer Turkish Equivalents Over Anglicisms**: Use Turkish terminology even when users commonly say the English word in everyday speech. When multiple Turkish words are available, prefer the standard, established Turkish term for common UI actions.
        - *Source:* "Only" → *Target:* "Yalnızca" (not Sadece)
        - *Source:* "Reply" → *Target:* "Yanıt" (not Cevap)
        - *Source:* "Device" → *Target:* "Aygıt" (not Cihaz)
      
      - **Context-Specific Term Choices for Common Words**: Several common English words have multiple Turkish equivalents that depend on context. "Play" is "çalmak" for audio, "oynatmak" for video, and "oynamak" for games. "Edit" is "Düzen" for menu titles and "Düzenle" for buttons. "Message" is "İleti" for Mail/UI and "Mesaj" for text messaging. "Size" is "Büyüklük" generally, "Boyut" only for dimensional contexts (window, box), and "Punto" for font size; never use "Boyut" for file sizes.
        - *Source:* "Play" → *Target:* "Çal" (audio)
        - *Source:* "Play" → *Target:* "Oynat" (video)
        - *Source:* "Play" → *Target:* "Oyna" (game)
        - *Source:* "Message" → *Target:* "İleti" (Mail)
        - *Source:* "Message" → *Target:* "Mesaj" (SMS)
        - *Source:* "File size" → *Target:* "Dosya büyüklüğü"
        - *Source:* "Window size" → *Target:* "Pencere boyutu"
      
      - **Use the Platform-Standard Turkish Term**: For standard UI actions, use the established platform Turkish term rather than the common alternative (e.g. use "Vazgeç" for Cancel, not "İptal"; and "Saptanmış" for Default, not "Varsayılan").
        - *Source:* "Cancel / Default" → *Target:* "Vazgeç / Saptanmış"
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Keep all variables exactly as they appear in the source. If Turkish word order requires moving a variable, add positional numbering (%1$@, %2$@) to every variable in the string. Never attach Turkish suffixes directly to a variable (e.g. do NOT write %1$@'ye) — the correct suffix depends on the substituted value's vowels, final sound, and whether it is a proper noun (vowel harmony, buffer consonant, apostrophe), which are unknown at translation time, so a fixed suffix is grammatically wrong for most values (the substitution still runs; the result is just incorrect Turkish). Keep the variable count identical to the source; adding or removing variables breaks functionality. Never alter a period inside a variable (e.g. %.1f).
        - *Source:* "%@ %@" → *Target:* "%2$@ - %1$@"
        - *Source:* "Page %1$@ of %2$@" → *Target:* "Sayfa %1$@ / %2$@"
      
      ## Formatting
      
      - **Turkish Phone Number Format**: Leave specific phone numbers in strings unchanged — do not localize them. When a Turkish phone number is written out, the general format is 0 (XXX) XXX XX XX (domestic) or +90 (XXX) XXX XX XX (international).
        - *Source:* "(408) 111 5555" → *Target:* "(408) 111 5555" (specific number left unchanged)
      
      - **URL Addresses**: Only localize URLs that are demonstrative or example URLs; never alter real URLs — leave real URLs (including query params and paths) verbatim.
      
      - **Non-Breaking Hyphen in Hyphenated Terms (e.g. Wi-Fi)**: Hyphenated terms such as Wi-Fi must stay on a single line. Replace the regular hyphen with a non-breaking hyphen to prevent line breaks within these terms.
        - *Source:* "Wi-Fi" → *Target:* "Wi‑Fi" (non-breaking hyphen)
      
      ## UI Guidelines
      
      - **Inline Alt-Text Elements**: Add "simgesine" or "düğmesi" after inline icon elements. Adjust text to avoid repetitive VoiceOver readings.
        - *Source:* "Tap the Info icon" → *Target:* "Bilgi düğmesi simgesine dokunun"
      
      - **Lock Screen, Home Screen, Side/Top Button — Lowercase; basmak for Hardware**: These terms are capitalized in English but lowercase in Turkish: "kilitli ekran", "ana ekran", "yan düğme", "üst düğme". Use "basmak" for hardware buttons; reserve "tıklamak" for software buttons only.
        - *Source:* "Triple-click the Side Button to toggle Touch Accommodations" → *Target:* "Dokunma Kolaylıkları\u2019nı açmak/kapatmak için yan düğmeye üç kez basın"
      
      ## Symbols
      
      - **Currency Symbol After Amount; Percent Sign Before Number No Space**: Place currency symbols after the amount separated by a non-breaking space (e.g. 120 ₺, 120 €). The percent sign is placed before the number with no space (e.g. %30).
        - *Source:* "50%" → *Target:* "%50"
        - *Source:* "€120" → *Target:* "120 €" (non-breaking space before the currency symbol)
      
      ## Diversity And Inclusion
      
      - **Avoid Violent, Oppressive, or Ableist Terms**: Do not translate technology using inherently violent terms (like "kill" or "hang"), the oppressive pair "master"/"slave", or terms like "sanity check" that associate mental health with functionality. Avoid describing software or hardware with human attributes, which can carry unintended hurtful implications.
      
      - **Use Gender-Neutral Language**: Because not everyone identifies as male or female, avoid binary representations of gender by rewording with gender-neutral language wherever possible. When content is about or addressed to a real person, prefer referring to them by name.
      
      - **Put People First When Translating About Disability**: Focus on what people can do, not on what they can't. In most cases use people-first phrasing that describes the individual before any disability.
        - *Source:* "Deaf" → *Target:* "İşitme Engelli" (not "Sağır")
      
      - **Don't Use Color to Convey Positive or Negative Qualities**: Use colors only to describe actual colors. Avoid using color to connote security, secrecy, or a good/bad judgment (e.g. "white hat hacker", "black testing environment").
      
      
    • styleguide_uk.md 17 KB
      # Ukrainian (uk) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: Write in a neutral, descriptive style that is closer to formal than informal, but never stiff or overly hip. Use clear and concise language — short, direct text is absorbed quickly. Avoid literal translations; the text should read naturally in Ukrainian as if it were never translated.
        - *Source:* "We recommend" → *Target:* "Рекомендуємо (not Ми рекомендуємо)"
      
      ## Abbreviations
      
      - **Avoid Abbreviations in Software; Use Ukrainian Equivalents**: Do not abbreviate words to fit a UI string. When a commonly used Ukrainian abbreviation exists for an English one, use it. Graphical abbreviations formed by truncation require a period; contractions do not.
        - *Source:* "for example / e.g." → *Target:* "наприклад / напр."
        - *Source:* "University" → *Target:* "ун-т"
      
      ## Acronyms
      
      - **Keep Acronyms in Source Form; Hyphenate Compound Uses**: Do not translate acronyms unless a very common Ukrainian equivalent exists. Use hyphens when an acronym modifies a noun (DVD-плеєр, USB-пристрій, URL-адреса). Acronyms are always written in all caps regardless of the capitalization of the spelled-out form.
        - *Source:* "DVD player" → *Target:* "DVD-плеєр"
        - *Source:* "USB device" → *Target:* "USB-пристрій"
      
      ## Date And Time
      
      - **Ukrainian Date Format — Day Month Year with "р."**: Use day-month-year ordering with the abbreviation "р." for рік. The full format is "d MMMM y р." (e.g. 1 лютого 2017 р.) and the short format is DD.MM.YY. Time uses a 24-hour clock with a colon separator. For ISO-style dates, follow the source format exactly.
        - *Source:* "February 1, 2017" → *Target:* "1 лютого 2017 р."
        - *Source:* "02/01/17" → *Target:* "01.02.17"
      
      ## Names And Addresses
      
      - **Ukrainian Sample Names and Address Format**: Use Ukrainian sample names instead of English defaults. Sample addresses should be translated into a Ukrainian format (street name with вул., city, postal code, Ukraine).
        - *Source:* "John Doe" → *Target:* "Андрій Петренко"
        - *Source:* "Jane Doe" → *Target:* "Оксана Петренко"
        - *Source:* "1 Infinite Loop, Springfield" → *Target:* "вул. Лугова, 23, Черкаси"
      
      ## Punctuation
      
      - **Ukrainian Comma Rules — Common Mistakes to Avoid**: Do not place a comma before "як" or "ніж" in constructions like "(не) більше ніж". Do not split the complex expressions "перш ніж", "після того як", "тому що", "для того щоб" with a comma when the subordinate clause precedes the main clause. Do not use a comma after "наприклад" when it means "а саме".
        - *Source:* "Перш ніж надсилати повідомлення, заповніть це поле." → *Target:* "Перш ніж надсилати повідомлення, заповніть це поле. (no comma inside "Перш ніж")"
      
      - **Ellipsis**: Use single character ellipsis, not three periods.
        - *Source:* "..." → *Target:* "…"
      
      - **Non-breaking spaces between number and unit**: Add non-breaking space between the number and unit of measure.
        - *Source:* "4 GB" → *Target:* "4 ГБ"
        - *Source:* "%g km" → *Target:* "%g км"
      
      - **Non-breaking space for percent sign**: Add non-breaking space between number and percent sign.
        - *Source:* "90%" → *Target:* "90 %"
        - *Source:* "Downloading, %d%%" → *Target:* "Викачування, %d %%"
      
      - **En-dash**: Use en-dash (–) to indicate a range of numeric values.
        - *Source:* "The meeting time is 6-8 pm." → *Target:* "Зустріч о 18:00–20:00."
      
      - **Apostrophe**: Use modifier letter apostrophe as the Ukrainian apostrophe in all instances.
        - *Source:* "Subject ID" → *Target:* "Ідентифікатор субʼєкта"
        - *Source:* "Requested name: %@" → *Target:* "Запитане імʼя: %@"
      
      - **Quotes**: Use left-pointing double angle quotation mark « and right-pointing double angle quotation mark » as quotation marks. For nested quotes, use straight double quotation marks.
        - *Source:* "Building Services Menu…" → *Target:* "Побудова меню «Сервіси»…"
        - *Source:* "Click the link 'Go to system preferences'" → *Target:* "Натисніть посилання «Перейти в меню "Системні параметри"»."
      
      - **Quotes and > character**: If the sequence of commands is divided by ">" character, avoid using quotes around user interface terms and add non-breaking space before ">".
        - *Source:* "To fix this, open Settings > General and turn off "Sync Library", then turn it back on." → *Target:* "Щоб виправити це, відкрийте Параметри > Загальні та вимкніть параметр «Синхронізувати медіатеку», потім увімкніть його знову."
      
      - **M-dash**: Em dash is used as a dash, except for number ranges. Always add non-breaking space before Em dash.
        - *Source:* "%@ - %@" → *Target:* "%@ — %@"
        - *Source:* "%@-%@" → *Target:* "%@–%@"
        - *Source:* "%@ — Secure AirPrint" → *Target:* "%@ — безпечний AirPrint"
      
      - **Non-breaking hyphen**: Use non-breaking hyphens everywhere where the part of the word is 2 letters or shorter.
        - *Source:* "HD-SD" → *Target:* "HD‑SD"
        - *Source:* "QR Code Detected" → *Target:* "Виявлено QR‑код"
      
      - **Avoid double spacing**: Do not copy double white spaces from the source to translation. Use a single whitespace.
        - *Source:* "Copyright © 2001-2020 Apple. All rights reserved." → *Target:* "© 2001–2020, Apple Inc. Усі права захищено."
      
      - **Non-breaking space in trademarks and DNTs**: Use non-breaking space in trademarks, DNTs, app names, company names.
        - *Source:* "About this Apple Watch:" → *Target:* "Про цей Apple Watch:"
      
      - **No space before degrees character**: Do not put space between a number and degrees character if the scale is not indicated.
        - *Source:* "Latitude: %1$.4f°" → *Target:* "Широта: %1$.4f°"
      
      ## Grammar
      
      - **Perfective vs. Imperfective Verbs**: Choose perfective verbs for one-time actions and commands (Copy, Paste, Open, Print) and imperfective for repetitive or continuous actions. Buttons and commands should use perfective infinitives; options and settings may use imperfective forms.
        - *Source:* "Copy (button)" → *Target:* "Скопіювати (perfective)"
        - *Source:* "Allow While Using App" → *Target:* "Дозволяти за використання (imperfective)"
      
      - **Prefer Verbal (Infinitive) Constructions Over Deverbal Nouns**: Ukrainian favors verbs (дієслівність). For command names, checkboxes, button names, links, use the infinitive form rather than deverbal nouns ending in -ння/-ття. Using verbal infinitive constructions improves both readability and idiomatic accuracy.
        - *Source:* "Save as (button/command)" → *Target:* "Зберегти як (not Збереження)"
        - *Source:* "Open" → *Target:* "Відкрити (not Відкриття)"
        - *Source:* "Quit app" → *Target:* "Завершити програму"
      
      ## Interface Elements
      
      - **UI Element Translation Patterns**: Buttons and commands use perfective or imperfective infinitive verbs. Status messages in Present Continuous use action nouns or "триває + noun". Messages requiring action should be as short as possible, avoiding gendered forms and direct pronoun addressing. Titles use nouns or imperatives. The OK button is always written in Latin as "OK".
        - *Source:* "Sign in (button)" → *Target:* "Увійти"
        - *Source:* "Downloading…" → *Target:* "Викачування…"
        - *Source:* "Searching…" → *Target:* "Триває пошук…"
        - *Source:* "Export (title)" → *Target:* "Експорт"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate or Transliterate Apple Product Name**: Product names must not be translated or transliterated. When an unlocalized product name is used in a sentence, add a descriptive word (програма, функція) to make the sentence sound natural in Ukrainian.
        - *Source:* "Pages has new features." → *Target:* "У програмі Pages з'явилися нові функції."
        - *Source:* "Today Apple announced a new MacBook computer." → *Target:* "Сьогодні Apple анонсувала новий комп'ютер MacBook."
      
      ## Terminology
      
      - **Prefer Ukrainian Terms Over Anglicisms**: Use Ukrainian terminology wherever a native equivalent exists and is commonly used in the industry. Borrow English terms only when no adequate Ukrainian equivalent is available.
        - *Source:* "Link" → *Target:* "Посилання (not Лінк)"
        - *Source:* "Browser" → *Target:* "Оглядач (not Браузер)"
        - *Source:* "User" → *Target:* "Користувач (not Юзер)"
        - *Source:* "Content" → *Target:* "Вміст (not Контент)"
      
      ## Variables
      
      - **Preserve Variables Exactly; Reorder with Positional Notation**: Keep all runtime variables unchanged. If Ukrainian word order requires moving a variable, add positional numbering to every variable in the string (%1$@, %2$@). Do not attach Ukrainian grammatical suffixes directly to a variable placeholder, as this will break runtime substitution.
        - *Source:* "%@ %@" → *Target:* "%2$@ — %1$@"
      
      ## Diversity And Inclusion
      
      - **People-First Language for Disability; Official Ukrainian Term**: Refer to people with disabilities by describing the person before the condition. The official Ukrainian legal term is "особа з інвалідністю" — not "інвалід".
        - *Source:* "The blind" → *Target:* "Люди з вадами зору / незрячі (context-dependent)"
        - *Source:* "A disabled person" → *Target:* "Особа з інвалідністю"
      
      ## General
      
      - **App/Apps**: Software applications are called "програма/програми" in Ukrainian, not "застосунок" or "додаток".
        - *Source:* "All third-party apps must explain why they are requesting access to your Health app data." → *Target:* "Усі сторонні програми повинні пояснювати, чому вони запитують доступ до ваших даних у програмі «Здоровʼя»."
        - *Source:* "Apps Syncing to iCloud Drive" → *Target:* "Програми, які синхронізуються з iCloud Drive"
        - *Source:* "Apply to all apps" → *Target:* "Застосувати до всіх програм"
      
      - **Choose**: Translate Choose as Обрати and its appropriate forms.
        - *Source:* "Choose a file…" → *Target:* "Обрати файл…"
        - *Source:* "Choose a Braille Display" → *Target:* "Оберіть брайль-дисплей"
        - *Source:* "Activate to choose color" → *Target:* "Активуйте, щоб обрати колір"
      
      - **Avoid excessive usage of pronouns**: Omit the word "your" in translation.
        - *Source:* "Turn off your iPhone" → *Target:* "Вимкніть iPhone"
        - *Source:* "Your library has been updated." → *Target:* "Бібліотеку оновлено."
      
      - **Passive predicate forms ending in -но, -то**: It is recommended to use the passive predicate forms ending in -но, -то when the subject is unknown or not important enough to be mentioned in the sentence.
        - *Source:* "Page not loaded" → *Target:* "Сторінку не оновлено"
        - *Source:* "This album has already been created" → *Target:* "Цей альбом уже створено"
        - *Source:* "Invitation accepted" → *Target:* "Запрошення прийнято"
      
      - **Avoid incorrect usage of вимагати for Require**: For translation of "Require" use the word запитувати or потребувати, not вимагати. Вимагати should be used only for persons.
        - *Source:* "Require Password" → *Target:* "Запитувати пароль"
        - *Source:* "This feature requires additional security" → *Target:* "Ця функція потребує додаткових заходів безпеки"
      
      - **Avoid incorrect usage of вимагати for Need**: For translation of "need" use the word потребувати, not вимагати.
        - *Source:* "Event needs reply" → *Target:* "Подія потребує відповіді"
        - *Source:* "Looks like we need a password for this show." → *Target:* "Схоже, для цього шоу потрібен пароль."
      
      - **Time**: Use the 24 hour clock for time format. Use a colon as a separator. If a 12 hour clock must be used, use "дп" for "AM" and "пп" for "PM". Use a leading 0 for times between 00:00 and 09:59.
        - *Source:* "Saturday, May 12 at 2:00 pm" → *Target:* "Субота, 12 травня, 14:00"
        - *Source:* "Today at 3 PM" → *Target:* "Сьогодні о 15:00"
      
      ## Cultural Adaptation
      
      - **Politeness**: Avoid translating and including "Please" or similar polite imperatives from the source text. It is rarely used or needed in Ukrainian.
        - *Source:* "Please activate the account in Settings" → *Target:* "Активуйте обліковий запис у Параметрах"
        - *Source:* "Please click again" → *Target:* "Клацніть ще раз"
        - *Source:* "Please Sign In Again" → *Target:* "Увійдіть ще раз"
      
      - **Formality**: Always address the user with "ви", not "ти".
        - *Source:* "Looks like you're listening on another device." → *Target:* "Схоже, що ви прослуховуєте це на іншому пристрої."
        - *Source:* "What do you want to hear?" → *Target:* "Що ви хочете послухати?"
        - *Source:* "Welcome to iTunes Match" → *Target:* "Вас вітає iTunes Match"
      
      - **Avoid excessive usage of pronouns**: Sometimes "ви" may be omitted after the first reference or in clauses that follow imperative constructions.
        - *Source:* "Do you want to keep your subscription for this app?" → *Target:* "Хочете зберегти підписку на цю програму?"
        - *Source:* "Hear more of what's happening around you." → *Target:* "Почуйте світ навколо."
      
      - **Non-personal sentences**: Direct addressing of the user should be replaced by a non-personal or non-gendered sentence.
        - *Source:* "How do you want to change it?" → *Target:* "Як саме слід змінити це?"
        - *Source:* "Four Things You Should Know" → *Target:* "Чотири речі, які варто знати"
        - *Source:* "You must log in to the proxy server." → *Target:* "Потрібно авторизуватися на проксі-сервері."
      
      - **Are you sure you want to**: Translate the phrase "Are you sure you want to" as "Справді".
        - *Source:* "Are you sure you want to continue?" → *Target:* "Справді продовжити?"
        - *Source:* "Are you sure you want to quit?" → *Target:* "Справді завершити?"
      
      - **Gender neutrality**: Use gender-neutral language and constructs. Try to rewrite any sentence to exclude pronouns or binary representations of gender.
        - *Source:* "Messages you send will be delivered when %@ comes online." → *Target:* "%@ отримає ці повідомлення, коли зʼявиться в мережі."
      
      - **Present tense workaround for gender neutrality**: Translate the past tense phrases with variables that represent user name in present tense.
        - *Source:* "%@ invited you to chat." → *Target:* "%@ запрошує вас у чат."
        - *Source:* "%@ shared this document." → *Target:* "%@ поширює цей документ."
        - *Source:* "%@ completed a workout." → *Target:* "%@ завершує тренування."
      
      - **Plural forms with s**: Plural forms for DNTs with 's' should be reproduced in translation. Use the appropriate descriptive word and full form with 's' ending.
        - *Source:* "Clean your AirPod" → *Target:* "Очистьте навушник AirPods"
        - *Source:* "Left AirPod" → *Target:* "Лівий навушник AirPods"
      
      - **OK button**: OK is used globally in UI in the form of a button as OK (not O.k. or ОК in Cyrillic) and should be written in Latin letters.
        - *Source:* "OK" → *Target:* "OK"
        - *Source:* "Ok" → *Target:* "OK"
        - *Source:* "O.K." → *Target:* "OK"
      
      ## Orthography
      
      - **Separator for decimal numbers**: Use comma as a separator for decimal numbers.
        - *Source:* "2.5 cm" → *Target:* "2,5 см"
        - *Source:* "iPad Pro (10.5-inch)" → *Target:* "iPad Pro (10,5 дюйма)"
      
      - **Version numbers**: Although commas normally should be used as the separator for decimals, periods are instead used for software versions.
        - *Source:* "version 2.5" → *Target:* "версія 2.5"
        - *Source:* "iOS version 9.0 or later is required." → *Target:* "Потрібна iOS 9.0 або новішої версії."
      
      - **Ampersand character**: Use the conjunction "і" or "та" or "й" instead of the character &.
        - *Source:* "Privacy & Security" → *Target:* "Приватність і безпека"
        - *Source:* "Documents & Data" → *Target:* "Документи й дані"
      
    • styleguide_ur.md 18 KB
      # Urdu (ur) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Urdu uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Go to \u201CVisited Places\u201D" → *Target:* "\u201Cوزٹ کی گئی جگہیں\u201D پر جائیں"
      
      ## Tone And Voice
      
      - **Smart-Casual, Colloquial Urdu**: The tone is smart but casual — leaning toward formal without being stiff. Write natural, everyday Urdu that reads smoothly on the page. Avoid trendy slang and overly archaic forms; use Urdu as much as possible while keeping text easy to read.
      
      - **Neutral Variant, No Regional Dialect**: Use contemporary, standard Urdu that is not tied to a specific regional dialect or local variety.
      
      ## Addressing Users
      
      - **Formal You — آپ and Formal Verb Forms**: Always address the user with the formal pronoun آپ and formal verb forms (کریں/چاہتے ہیں style). Never use the informal تو/تم or their verb forms. This applies equally when addressing children; there is no reduction in formality for younger audiences.
        - *Source:* "Are you sure you want to delete it?" → *Target:* "کیا آپ واقعی اسے حذف کرنا چاہتے ہیں؟"
        - *Source:* "Would you like to cancel?" → *Target:* "کیا آپ منسوخ کرنا چاہتے ہیں؟"
        - *Source:* "Unlock your iPhone." → *Target:* "اپنا iPhone اَنلاک کریں۔"
      
      - **Roles and Common Nouns Translated in Singular**: Common nouns and roles that refer to the user, such as user, person, administrator, member, are translated in the singular. Keep them gender-neutral wherever the grammar allows it (for example, by choosing a construction that avoids a gendered verb or adjective); when Urdu grammar forces a gendered form and no natural neutral wording exists, use the conventional masculine. Do not pluralize these when the source addresses a single user.
        - *Source:* "The user can change this setting at any time." → *Target:* "صارف کسی بھی وقت یہ سیٹنگ تبدیل کر سکتا ہے۔"
      
      ## Abbreviations
      
      - **Avoid Abbreviations**: Do not use truncated/shortened abbreviations (where letters are dropped from a word, e.g. Dr. for Doctor, Sept. for September, approx. for approximately) in translations unless absolutely no other option exists. Expand instead. This is distinct from acronyms (HDR, MB, GB, PDF), which ARE retained — see the acronyms rule.
        - *Source:* "Dr." → *Target:* "ڈاکٹر" (expand; do not abbreviate)
      
      ## Acronyms
      
      - **Keep Acronyms in English**: Do not translate acronyms unless a very common localized equivalent exists. Popular Urdu acronyms (یونیسکو, ناسا) are written without a full stop. If the source itself provides the expanded form, translate the expansion; do not add an expansion the source lacks.
        - *Source:* "HDR" → *Target:* "HDR" (do not translate)
      
      ## Date And Time
      
      - **Date and Time Formats**: Use day → month → year order (DD/MM/YYYY). Use international numerals in hardcoded dates and times; never use native Urdu numerals. Do not put a comma between the month and the year. Keep AM/PM in English, following the source’s capitalization.
        - *Source:* "17/03/2022" → *Target:* "17/03/2022"
      
      - **o’clock and Time Preposition**: Translate o’clock as بجے. Use a colon as the time separator, with no space before or after it. If بجے is present, do not add the preposition پر after the time.
        - *Source:* "10:18:35" → *Target:* "10:18:35" (colon separator; international numerals)
        - *Source:* "10 o\u2019clock" → *Target:* "10 بجے" (no پر after time when بجے present)
      
      ## Measurements
      
      - **Do Not Convert Measurement Units**: Never convert imperial to metric or vice versa. Unit abbreviations stay in English to avoid truncation. CLDR exceptions apply (e.g. millimeters = ملی میٹر; unit plurals written singular, kilocalories = کلو کیلوری).
        - *Source:* "10 KB" → *Target:* "10 KB" (follow source spacing)
        - *Source:* "6 ft" → *Target:* "6 ft" (do not convert to metric)
      
      - **Preserve Source Order in Measurements and Math Expressions**: Mathematical expressions and measurements always follow the source order. Keep the number and unit in the same sequence as the source — 8 GB, not GB 8. Do not reorder operands, operators, or number-unit pairs to fit Urdu word order. Numerals and Latin unit symbols render LTR within the RTL line; use BiDi markers if needed for correct display (see RTL rule).
        - *Source:* "8 GB" → *Target:* "8 GB" (not GB 8)
      
      ## Names And Addresses
      
      - **Use Inclusive Caste-Neutral Names as Placeholders**: Replace generic English placeholders with inclusive, caste/religion/sect-neutral names. A generic placeholder should be replaced with a locally-appropriate name; a specific, real individual named in the source or developer comment (any nationality) keeps that person's actual name, transliterated into Urdu script if it is in Latin letters.
      
      - **Indian Address Format and PIN Codes**: Format addresses per the Department of Post, Government of India conventions. Addresses outside India stay in English. PIN codes are six digits in international numerals (e.g. 226010, not native ۲۲۶۰۱۰) with no space between digits. A typical Indian address lists the recipient name, then house/plot/floor number, street, locality, city with the six-digit PIN, and state — for example: جاوید احمد، 134-B، ورنداون انکلیو، گومتی نگر، لکھنئو 226010، اتر پردیش.
      
      ## Numerals
      
      - **Indian Numbering System for Separators**: The standard for Urdu numerals is international (Western Arabic). Use the Indian numbering system for separators (10,00,000 not 1,000,000). Keep the digits as international (Western) numerals; only the grouping separators follow the Indian system.
        - *Source:* "1,000,000 songs" → *Target:* "10,00,000 گانے"
      
      - **Ordinal Numbers**: Write 1st through 9th as Urdu words (پہلا، دوسرا … نواں). From 10th onward, append واں to the numeral (10واں، 11واں), including variable-driven ordinals whose value isn't known at translation time (%d واں).
        - *Source:* "10th" → *Target:* "10واں"
      
      ## Special Characters
      
      - **Right-to-Left Display and BiDi Markup**: Urdu is RTL but numerals and Latin words render LTR, creating bidirectional issues. When an Urdu string contains an untranslated English name, variable, or number, use the Unicode RLM (U+200F) or FSI/PDI markers (U+2068/U+2069) for correct directionality. Text layout auto-detects direction for most strings (the Unicode bidi algorithm); add explicit BiDi markers only when a Latin or numeric run inside Urdu text would otherwise render in the wrong position (for example an embedded English product name or a measurement mid-sentence). Do not add markers to purely uni-directional text.
        - *Source:* "The disk capacity must be minimum of 10 MB for this." → *Target:* "اس کے لیے ڈسک کی گنجائش کم از کم \u206810 MB\u2069 ہونی چاہیے۔"
      
      - **Urdu Full Stop vs English Period**: Urdu uses its own full stop ۔ (U+06D4), not the English period. Never use the English period to end Urdu sentences or as an abbreviation marker.
        - *Source:* "Photo saved." → *Target:* "تصویر محفوظ ہو گئی۔"
      
      - **Curly Quotes for Ambiguous Category Labels**: When a category/feature label inside a sentence creates grammatical ambiguity — a change in grammatical number, oblique case, or a verb/participial ending — wrap the label in double curly quotes. Mandatory for suffixed-plural labels before postpositions and labels with verb endings. Quotes are not needed for stable broken-plural labels that read naturally (ترجیحی اطلاعات میں دیکھیں).
        - *Source:* "Go to Visited Places" → *Target:* "\u201Cوزٹ کی گئی جگہیں\u201D پر جائیں" (quotes for suffixed-plural label before postposition)
      
      - **Double Curly Quotes and App Name Formatting**: Use double curly quotes as the default quotation style; straight quotes only for HTML code. Do not quote app names; instead place ایپ AFTER the app name.
        - *Source:* "Open the \u2018Files\u2019 app" → *Target:* "فائل ایپ کھولیں" (app name before ایپ, no quotes)
      
      ## Grammar
      
      - **No Articles — Avoid Translating a/an as ایک**: Urdu has no articles. Do not translate a/an as ایک (one) — it sounds awkward and implies a specific quantity. Omit the article; add ایک only when the source genuinely means one.
        - *Source:* "Create a Passcode." → *Target:* "پاس کوڈ بنائیں۔" (not ایک پاس کوڈ)
      
      - **Plurals Follow Standard Urdu Rules**: Pluralization follows standard Urdu grammar per authoritative references. Commonly used transliterated loan words take standard Urdu plurals. Uncommon/new transliterated terms use the singular everywhere, letting sentence context convey plurality.
        - *Source:* "Admin/Admins" → *Target:* "ایڈمن" (uncommon term — singular for both)
        - *Source:* "Car/Cars" → *Target:* "کار/کاریں" (commonly-used loan word — takes the standard plural)
      
      - **Passive Voice in Software Descriptions and Hints**: Use passive voice when no subject performs the action in the string — hints, footers, button descriptions, intent explanations. If unsure between active and passive, prefer passive. Use active voice for complete indicative sentences describing features.
        - *Source:* "This will turn off Cellular." → *Target:* "اس سے موبائل نیٹ ورک بند ہو جائے گا۔"
        - *Source:* "Email to be sent" → *Target:* "وہ ای میل جو بھیجا جانا ہے"
      
      - **Imperative Mood for Commands and Buttons**: Use the imperative form for commands, buttons, menu items, and callout bar items. Helping verbs like کریں/دیں must be included so the translation stays an action, not a noun. Translate tooltips in the imperative.
        - *Source:* "Edit" → *Target:* "ترمیم کریں"
        - *Source:* "Delete" → *Target:* "حذف کریں"
        - *Source:* "Answer" → *Target:* "جواب دیں" (not جواب alone)
      
      - **Gender Neutrality via Workaround Constructions**: User-addressed pronouns default to masculine by convention. Where possible, achieve gender neutrality with نے or کی طرف سے, and minimize بذریعہ; limit these workarounds so the sentence does not sound unnatural. Company and brand names must be kept gender-neutral — do not use a slash form or reword them as plural to achieve this.
        - *Source:* "%@ completed 2km run today." → *Target:* "%@ نے آج 2 کلو میٹر کی دوڑ پوری کی۔"
      
      - **Indefinite Pronouns Are Singular**: Indefinite pronouns like someone/somebody/anyone are translated as کوئی in the singular and paired with singular verb forms (کوئی سوال ہے, not کوئی سوالات ہیں). Avoid constructions that incorrectly treat کوئی as plural.
        - *Source:* "If you have any questions, please feel free to ask me." → *Target:* "اگر آپ کے پاس کوئی سوال ہے تو براہ کرم مجھ سے پوچھیں۔"
      
      - **Gender of Transliterated Loan Words**: Assign gender to non-nativized loan words by their closest Urdu translation, or feminine if the transliteration ends in ی (e.g. کنکٹیوِٹی, کیلوری). Common nativized words follow established usage (car/bus fem., truck/station masc.).
        - *Source:* "connectivity" → *Target:* "کنکٹیوِٹی" (feminine — transliteration ends in ی)
        - *Source:* "admin" → *Target:* "ایڈمن" (masculine — by closest Urdu translation)
      
      - **Translate "Cannot" with ہے at the End**: Translate Cannot as نہیں کیا جا سکتا ہے (ending in ہے) to avoid hanging phrases in descriptive/explanatory text.
        - *Source:* "Cannot connect" → *Target:* "کنکٹ نہیں کیا جا سکتا ہے"
      
      - **Transliteration Rules and English Plural Markers**: Transliterated English words do not take English plural markers — drop the -s/-es (ز/س) as it does not integrate into Urdu phonology. The direct case stays in the base singular form (فون، کارڈ، ڈاکٹر، پوڈکاسٹ); only commonly-used words may inflect in the oblique case (اسکول → اسکولوں).
        - *Source:* "Podcasts" → *Target:* "پوڈکاسٹ" (drop English -s; base singular form)
      
      ## Terminology
      
      - **Transliteration Preferred for Technical Jargon**: For widely used technical terms and software jargon, use transliteration rather than an artificial/archaic Urdu equivalent. Base transliteration on UK English pronunciation, not American spelling. Keep file formats and acronyms (PDF, RTF, DOC) untouched.
        - *Source:* "Installation" → *Target:* "انسٹالیشن" (transliterated, not an invented Urdu compound)
      
      - **Choose Urdu Over English When Both Are Natural**: When a genuine Urdu word is still common and easy to understand, prefer it over a transliteration. Judge by whether the word would feel natural to an Urdu newspaper reader. Avoid sweeping terminology changes; assess each term individually in context.
        - *Source:* "Photo" → *Target:* "تصویر" (not فوٹو or پکچر)
        - *Source:* "Map" → *Target:* "نقشہ" (not میپ)
      
      - **Hybrid Approach for Technical + Generic Phrases**: Pure translation or pure transliteration is preferred, but a hybrid (translation + transliteration) is acceptable when a phrase mixes technical and generic words (Continuous Scrolling) to preserve natural flow.
        - *Source:* "Continuous Scrolling" → *Target:* "مسلسل اسکرولنگ" (hybrid acceptable)
      
      - **Color Names — Three-Tier Approach**: Standard colors (Red, Green, Blue) take direct Urdu equivalents. Coined/marketing color names (Midnight Black, Rose Gold) are transliterated consistently. Proprietary/brand color names (Bleu Pastel, Orange Mangue) stay in English where a developer comment says not to localize.
        - *Source:* "Midnight Black" → *Target:* "مڈنائٹ بلیک" (transliterate)
        - *Source:* "Red" → *Target:* "سرخ" (translate)
        - *Source:* "Bleu Pastel" → *Target:* "Bleu Pastel" (keep English)
      
      ## Interface Elements
      
      - **Category and Feature Label Pluralization**: For category/feature labels use a split approach: transliterated labels stay singular with English plural markers dropped (Devices = ڈیوائس, Utilities = یوٹیلٹی); translated labels keep the plural, strongly preferring stable broken plurals/جمع مکسر (Messages = پیغامات, Suggestions = تجاویز, Notifications = اطلاعات, Items = اشیا). Broken plurals are preferred because they do not inflect before postpositions and avoid oblique-case friction.
        - *Source:* "Devices" → *Target:* "ڈیوائس" (transliterated, singular)
        - *Source:* "Suggestions" → *Target:* "تجاویز" (translated, broken plural)
      
      - **Heading and Title Verbs (UI)**: Promotional or label headings use the imperative (Make = بنائیں). Welcome-screen headings should be creative, short, and formal.
        - *Source:* "Make" → *Target:* "بنائیں"
      
      ## Variables
      
      - **Preserve and Reorder Variables Correctly**: Keep all variables exactly as in the source. When Urdu word order differs, number every variable using the n$@ format (%1$@, %2$@) so runtime substitution stays correct. Never change a period to a comma inside a numeric format variable like %.1f.
        - *Source:* "On %@ at %@." → *Target:* "%2$@ کو %1$@ پر۔" (reordered with numbered variables)
      
      ## General Advice
      
      - **Modern Urdu Spelling Conventions**: Follow modern Urdu spelling: write compound words separately (اس لیے not اسلیے), apply declension (امالہ) so ہ or ا at word endings change to ے when grammatically required, and write words as they sound rather than older joined forms.
        - *Source:* "By this way" → *Target:* "اس طریقے سے" (correct — declension ہ→ے after postposition)
      
      ## Diversity And Inclusion
      
      - **Inclusive Language**: Avoid translations that tie occupations to caste names. For disability, lead with the person before the condition (people-first), unless the specific community prefers identity-first.
        - *Source:* "The blind" → *Target:* "نابینا افراد / وہ افراد جو بینائی سے محروم ہیں"
      
      ## Compounds And Hyphens
      
      - **No Hyphens in Transliterated Compounds**: When transliterating compound terms do not use a hyphen even if the source has one (against standard Urdu). Source inconsistencies like sign-in/sign in are written consistently without a hyphen.
        - *Source:* "sign-in / sign in" → *Target:* "سائن اِن" (without hyphen)
      
      ## Slashes
      
      - **No Space Around Slashes**: Slashes can express a part of a whole. Do not put a space before or after a slash, unless the source itself has spaces around it.
        - *Source:* "3 out of 5 pages" → *Target:* "5/3 صفحہ"
      
      ## Currency
      
      - **No Space After Indian Rupee Symbol**: Do not insert a space after the Indian Rupee symbol ₹. Correct: ₹500.45; Incorrect: ₹ 500.45.
      
      ## Software
      
      - **Software String Integrity (Spaces, Periods, Returns)**: Preserve leading and trailing spaces (needed for concatenation). Do not use double spaces between sentences. Do not add a period if the source has none. Keep carriage returns/line breaks.
        - *Source:* "Updating… " → *Target:* "اپڈیٹ کیا جا رہا ہے… " (preserve trailing space, no added period)
      
      - **App Names — Singular Form; Some Names Not Translated**: Translate/transliterate app names in the singular using the most appropriate variant. Do not translate trademarked product names; keep them in their original form, or as the developer's comment directs.
        - *Source:* "iTunes" → *Target:* "iTunes" (do not translate)
        - *Source:* "Photos" → *Target:* "تصویر" (singular)
      
      ## Emoji
      
      - **Emoji Translation Conventions**: Avoid prepositions/helping words in emoji names unless necessary. Singular and plural emoji-count strings keep the same noun form (the count refers to multiple emoji, not multiple objects). Avoid tying a depicted feature to a specific religion/region (no اسلام/مسلم for a hijab emoji).
        - *Source:* "%d black cat emoji" → *Target:* "%d کالی بلی ایموجی" (no prepositions; same form sing./plural)
      
    • styleguide_vi.md 9.6 KB
      # Vietnamese (vi) — Software String Localization Style Guide
      
      ## Escaping Curly Quotes And Apostrophes
      
      - **Escape every curly glyph inside a string**: Vietnamese uses curly double quotation marks “ (\u201C) and ” (\u201D) for quoting, and the curly apostrophe ’ (\u2019).
        - *Source:* "Go to \u201CSoftware Update\u201D" → *Target:* "Đi tới \u201CCập nhật phần mềm\u201D"
      
      ## Tone And Voice
      
      - **Smart-Casual, Leaning Formal**: The tone for Vietnamese is best described as smart-casual — more formal than informal, but never stiff or overly rigid. Avoid trendy slang or hip vocabulary. Use Vietnamese as much as possible and keep a neutral, descriptive style that works for all audiences regardless of age.
      
      ## Addressing Users
      
      - **Always Address the User As 'Bạn'**: Translate the English second-person pronoun 'you' consistently as 'bạn'. This word is appropriate across all levels of formality and all demographic groups, making it the safe default for every context.
        - *Source:* "You sent a photo." → *Target:* "Bạn đã gửi một ảnh."
      
      ## Abbreviations
      
      - **Avoid Abbreviations**: If the source spells a word out in full, keep it spelled out in the translation rather than shortening it. If the source itself uses an abbreviation, an abbreviated form in the translation is acceptable; use at most two per phrase. Never abbreviate action words, nouns, or CTA buttons, menus, commands, options, and toolbar buttons (UIs that call/trigger actions).
        - *Source:* "%ld-month avg" → *Target:* "TB %ld tháng"
      
      ## Acronyms
      
      - **Keep Acronyms in English Unless a Standard Equivalent Exists**: Do not translate acronyms unless a widely-used Vietnamese equivalent already exists. When an expansion is provided in brackets and is well known in Vietnamese, the expansion may be translated.
        - *Source:* "CD-ROM" → *Target:* "CD-ROM"
      
      ## Date And Time
      
      - **Follow Vietnamese Date and Time Conventions**: Follow standard Vietnamese date and time conventions.
        - *Source:* "March 3, 2026 at 5:30 PM" → *Target:* "Ngày 3 tháng 3 năm 2026 lúc 17:30"
      
      ## Measurements
      
      - **Do Not Convert Measurement Units**: Never convert imperial measurements to metric or to any other local standard. Never use " as an abbreviation for inch.
        - *Source:* "10 inches" → *Target:* "10 inch"
      
      ## Names And Addresses
      
      - **Vietnamese Address Format**: Format addresses following Vietnamese conventions: number, street, ward, city/province, country. Urban alley addresses follow a nested number format (e.g. 205/10/16). As of July 2025, Vietnam reorganized its administrative units, removing the district level; follow the current two-tier structure, with the ward (phường) or commune (xã) directly under the city/province. Example format: Số 1 Tràng Tiền, Phường Cửa Nam, Hà Nội, Việt Nam.
      
      ## Numerals
      
      - **Vietnamese Number Separators**: Vietnamese uses a period as the thousands separator and a comma as the decimal separator. Apply this convention to numbers, currency, and measurement values.
        - *Source:* "1,000,000 songs" → *Target:* "1.000.000 bài hát"
        - *Source:* "10.5 cm" → *Target:* "10,5 cm"
      
      ## Special Characters
      
      - **Spaces Around Punctuation**: Insert a space after a full stop, comma, colon, semicolon, or ellipsis when more text follows; a trailing full stop at the end of a string takes no space. Do not insert a space between parentheses and the text inside them. Double spaces are not allowed in Vietnamese.
        - *Source:* "Restart the app (Settings > General), then try again." → *Target:* "Khởi động lại ứng dụng (Cài đặt > Cài đặt chung), sau đó thử lại."
      
      - **Use En Dash Instead of Em Dash**: Em dashes are not used in Vietnamese. When the source uses an em dash to connect two phrases, replace it with an en dash surrounded by spaces on both sides.
        - *Source:* "Smart Replies—suggests responses before you even finish reading the message." → *Target:* "Trả lời thông minh – gợi ý câu trả lời trước cả khi bạn đọc xong tin nhắn."
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks and Product Names**: Keep trademarks, trademarked terms, and product names in the source language — do not translate or transliterate them unless the source does. Other company names likewise remain untranslated, or use their established Vietnamese name where one exists.
      
      ## Grammar
      
      - **Capitalization of Multi-Syllable Vietnamese UI Terms**: When one English word maps to a multi-syllable Vietnamese phrase separated by spaces, capitalize only the first letter of the first syllable. If a UI element name appears within a sentence, capitalize its first letter. Do not capitalize every syllable.
        - *Source:* "Software Update" → *Target:* "Cập nhật phần mềm"
        - *Source:* "Go to Settings > General > Software Update" → *Target:* "Đi tới Cài đặt > Cài đặt chung > Cập nhật phần mềm"
      
      - **Plural Articles — 'các' vs 'những'**: Vietnamese uses pre-noun articles to express plurality. Use 'các' for an indefinite plural (unspecified members of a group) and 'những' for a definite plural (a known, specific set). Choose based on whether the referent is determinate in context.
        - *Source:* "View Passes" → *Target:* "Xem các thẻ"
        - *Source:* "For things to be done before selling your devices…" → *Target:* "Để biết những bước cần thực hiện trước khi bán thiết bị của bạn…"
      
      - **Tense Expressed via Time Adverbs**: Vietnamese does not inflect verbs for tense. Place the appropriate time adverb before the verb to indicate tense: đã for past, đang for present continuous, and sẽ for future. Context usually clarifies tense without these markers, so use them only when clarity requires it.
        - *Source:* "Mark as Read" → *Target:* "Đánh dấu là đã đọc"
        - *Source:* "Syncing your files…" → *Target:* "Đang đồng bộ hóa các tệp của bạn…"
      
      - **Polite Imperatives with 'vui lòng' / 'hãy'**: When translating imperative sentences, insert 'vui lòng' or 'hãy' to convey politeness rather than a blunt command. Use 'vui lòng' for polite requests and 'hãy' for more direct but still courteous instructions. Always translate tooltips in the imperative form.
        - *Source:* "Please sign in again to continue." → *Target:* "Vui lòng đăng nhập lại để tiếp tục."
        - *Source:* "Enter a description." → *Target:* "Hãy nhập mô tả."
      
      - **Full Stop Position with Parentheses**: When a full stop appears inside parentheses in the source, move it to outside the closing parenthesis in the Vietnamese translation.
        - *Source:* "(Check section 5.)" → *Target:* "(Kiểm tra phần 5)."
      
      - **Compounds and Hyphens**: Hyphens are rarely used in Vietnamese compound words; prefer a space between elements. Hyphens may appear in certain transliterated loanwords (e.g. vi-rút, lô-gic) but even these are acceptable without a hyphen in many modern contexts.
        - *Source:* "Easy-to-use" → *Target:* "Dễ sử dụng"
      
      ## Terminology
      
      - **Loan Words — Prefer the Most Accepted Localized Form**: When using loan words, always choose the most widely accepted localized form over a transliteration or the original foreign spelling. Reserve transliterations for forms already firmly established in Vietnamese (e.g. "sô cô la" for chocolate); don't coin new transliterations for common terms or proper names.
        - *Source:* "chocolate" → *Target:* "sô cô la" (not sô-cô-la, si cu la, or chocolate)
        - *Source:* "Alexander" → *Target:* "Alexander" (a personal name — kept as-is)
      
      ## Variables
      
      - **Preserve Variables and Reorder When Needed**: Keep all variables exactly as they appear in the source. When Vietnamese grammar requires a different word order, number the variables using the n$@ notation (e.g. %1$@, %2$@). Never change a period to a comma inside a numeric format variable such as %.1f.
        - *Source:* "%@ %@" → *Target:* "%2$@ %1$@" (source is ordinal then day name; reordered to day name first)
      
      ## General Advice
      
      - **Prioritize Vietnamese Terminology**: Use Vietnamese terminology first to make the language feel fully localized. English or other foreign terms are acceptable only when they provide a meaningful UI advantage, are widely recognized, or convey the meaning more clearly than any Vietnamese equivalent.
      
      ## Diversity And Inclusion
      
      - **Avoid Offensive Slang and Culturally Harmful Terms**: Do not use internet or social-media slang that could be misunderstood or offensive to a general audience. Avoid derogatory terms for ethnic groups (e.g. thổ, mọi, tông dật) and disrespectful slang for LGBTQ+ identities. When in doubt, choose a neutral term or research the word's current connotations.
        - *Source:* "selfie" → *Target:* "ảnh tự chụp / ảnh selfie" (not "ảnh tự sướng", which carries a vulgar connotation)
      
      - **Gender-Neutral Language**: Avoid binary gender representations where gender-neutral alternatives exist. Do not use gender-specific pronouns for people of unspecified gender; prefer neutral constructions or the plural form. Use people-first language when referring to disability.
        - *Source:* "The blind" → *Target:* "Người khiếm thị / Người bị mất thị lực / Người mù" (not "Người bị mù")
      
      ## Phone Number
      
      - **Use Vietnamese Convention for Phone Numbers**: Use the Vietnamese convention when writing phone numbers. Landline numbers contain 11 digits; mobile numbers contain 10 digits (e.g. a landline written as (024) 1111 5555).
      
      ## Spacing
      
      - **Space Between a Number and Its Unit**: Insert a space between a number and its unit of measurement. However, there must be no space between the number and a percentage (%) or degree (°) symbol.
        - *Source:* "2GB" → *Target:* "2 GB"
      
    • styleguide_zh-Hans.md 9.3 KB
      # Simplified Chinese (zh-Hans) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual Tone**: The tone should be direct, friendly, and closer to formal than informal, but never stiff or overly rigid. Avoid trendy slang and keep a neutral, descriptive style. Always prioritize capturing the meaning of the message over literal word-for-word translation.
        - *Source:* "To make a great iOS app, you need to learn and do many things." → *Target:* "开发优秀的iOS App,需要大量的学习和实践。"
      
      ## Addressing Users
      
      - **Use Informal 你 for All Software**: Address users with the informal 你 across all software. Do not translate every instance of 'you' or 'your' if the Chinese reads naturally without it.
        - *Source:* "You can sign in with your Apple ID." → *Target:* "你可以使用 Apple ID 登录。"
      
      ## Abbreviations
      
      - **Localize Common Abbreviations, Keep Technical Ones**: Do not use abbreviations in software unless absolutely necessary. Identifiers like ID, URL, and PPP stay in English. Month, weekday, and time abbreviations (Jan., Sun., AM/PM) should be localized. Watch for context-dependent abbreviations like Min (minutes vs. minimum). The abbreviation vs/vs./v.s. should be kept in English following source punctuation.
        - *Source:* "BCC" → *Target:* "密送"
        - *Source:* "Lakers vs. Chicago" → *Target:* "湖人队 vs. 芝加哥队"
        - *Source:* "Min (for Minimum)" → *Target:* "最小"
        - *Source:* "Min (for Minutes)" → *Target:* "分/分钟"
      
      ## Acronyms
      
      - **Retain English Acronyms Unless a Standard Chinese Equivalent Exists**: Keep acronyms in English when their meaning is apparent to users (e.g., SIM). Use Chinese for terms where a well-known standard translation exists (e.g., TV to 电视, HD to 高清). If the source pairs an acronym with a spelled-out form, translate that form; don't add an expansion the source doesn't have.
        - *Source:* "TV" → *Target:* "电视"
      
      ## Date And Time
      
      - **Follow System Standard for Date and Time**: Software date and time formats must follow the system locale standard. When a date and weekday appear together in a standalone context (e.g., a status bar), add a space between the two elements.
        - *Source:* "Wednesday, August 28, 2020" → *Target:* "2020年8月28日 星期三"
      
      ## Measurements
      
      - **Do Not Convert Measurements**: Do not convert imperial measurements to metric in software strings. Never use the inch symbol as an abbreviation.
        - *Source:* "minimum separation distance of 8 inches (20 cm)" → *Target:* "至少8英寸(20厘米)的距离"
      
      - **Use English Symbols for Technical Units**: For units with long Chinese names, retain the English symbol or abbreviation. Units including KB, MB, GB, Hz, kHz, MHz, dB, kbps, Mbps, Gbps, and others do not need to be localized when they appear as abbreviations.
        - *Source:* "%@ hrs %@ mins (at %@ kB/s)" → *Target:* "%@小时%@分钟(速度:%@ kB/秒)"
      
      ## Names And Addresses
      
      - **Reverse Address Order to Follow Chinese Convention**: Chinese addresses go from largest to smallest unit (Country, Province, City, District, Street, Building, Room).
        - *Source:* "19 Sanlitun Road, Chaoyang, Beijing, China" → *Target:* "中国北京市朝阳区三里屯路19号"
      
      ## Numerals
      
      - **Use Arabic Numerals for Technical Content**: Technical specifications, dates, currencies, speeds, and product generation numbers use Arabic numerals.
        - *Source:* "Apple TV 3rd Generation" → *Target:* "Apple TV(第3代)"
      
      - **Localize Approximate Numbers in Natural Chinese**: Approximate numbers expressed as a range or estimation in English (e.g., '5 or 6 minutes', 'a few hundred') read more naturally in Chinese using Chinese numerals (五六分钟, 几百). This applies only to approximate quantities; exact numbers with units (e.g., 2 分钟, 5 GB) keep Arabic numerals.
        - *Source:* "5 or 6 minutes" → *Target:* "五六分钟"
      
      ## Grammar
      
      - **Use 两 Instead of 二 Before Measure Words**: When the number two is followed by a Chinese measure word (量词), use 两 instead of 二. This is a grammatical rule in Mandarin Chinese.
        - *Source:* "two restaurants" → *Target:* "两家餐馆"
      
      - **Drop Plural -s from English Loan Words in Chinese**: Chinese has no plural inflection. When English terms or acronyms appear in Chinese text, drop the trailing -s or -es and use a Chinese quantity modifier (such as 所有 or 多个) if needed. Do not drop the -s from terms like AirPods, iTunes, or iBooks unless the source itself uses the singular form.
        - *Source:* "All iPads" → *Target:* "所有iPad"
        - *Source:* "CDs, DVDs, and iPods" → *Target:* "CD、DVD和iPod"
      
      - **Convert Passive Voice to Active Where Natural**: Passive constructions can be rendered with 被, 由, 让, 受, etc., but it is often better to identify the logical subject and rewrite as an active sentence. Only use 被 when it genuinely improves clarity.
        - *Source:* "When an open log is updated:" → *Target:* "更新打开的日志时:"
      
      - **Add Measure Words After Number Variables**: When a placeholder variable represents a number, always insert the appropriate Chinese measure word (量词) between the variable and the following noun. The correct measure word depends on context.
        - *Source:* "%d podcasts" → *Target:* "%d个播客"
      
      ## Special Characters
      
      - **Localize & Only with Chinese Text**: The ampersand used alongside untranslated English text should be kept as-is. When it connects localized Chinese terms, translate it as 与.
        - *Source:* "Terms & Conditions" → *Target:* "条款与条件"
      
      ## Punctuation
      
      - **Use Full-Width Chinese Punctuation**: Convert half-width punctuation to full-width Chinese equivalents where applicable: commas (,), periods (。), semicolons (;), colons (:). Use the caesura sign 、 to separate list items. Colons stay half-width in time and IP address contexts. When text consists entirely of Latin characters, keep half-width punctuation (e.g., parentheses around English-only content). No punctuation mark (except opening brackets) should appear at the start of a line.
        - *Source:* "#1# album, #%li# songs" → *Target:* "#1#张专辑,#%li#首歌曲"
        - *Source:* "Choose an iPad, iPhone or iPod touch:" → *Target:* "请选择iPad、iPhone或iPod touch:"
      
      - **Ellipsis Must Be a Single Unicode Character**: Always use the ellipsis character rather than three separate periods.
        - *Source:* "Add To…" → *Target:* "添加到…"
      
      ## Interface Elements
      
      - **Enclose UI Element Names in Quotation Marks When Referenced**: When button names, command names, menu names, and option names are quoted in software strings, enclose the translation in Chinese curly double quotation marks “ (\u201C) and ” (\u201D), not straight ASCII quotes. Do not add quotation marks inside menus unless the source includes them.
        - *Source:* "Tap \u201CAdd To\u201D to save the photo." → *Target:* "轻点\u201C添加到\u201D以保存照片。"
        - *Source:* "Choose File > Save." → *Target:* "选取\u201C文件\u201D>\u201C保存\u201D。"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Apple Trademarks and Product Names**: Trademarks, trademarked slogans, and Apple product names must remain in English. The word Apple itself is DNT; however, the Apple menu item (the menu in the upper-left corner) should be translated as 苹果菜单.
        - *Source:* "Sign in with Apple" → *Target:* "通过Apple登录"
      
      - **Foreign Company and Service Names Generally Stay in English**: Names of overseas companies, services, and brands generally remain in English in zh-Hans content. When a well-established Chinese name exists and is more familiar to local users, the localized form may be used at your discretion.
        - *Source:* "Search in Google" → *Target:* "Google搜索"
        - *Source:* "Currency data provided by Yahoo Finance" → *Target:* "货币数据由Yahoo Finance提供"
      
      - **App and Service Localization**: Apple app and service name localization is highly context-dependent. (1) App names (the system app/icon on the device) are often fully localized: Maps → 地图, Books → 图书, Music → 音乐. (2) Service names (Apple's branded service offering) generally stay in English: Apple Music, Apple TV+, Apple Pay. (3) The same English string can take different translations depending on whether it refers to the app or the service.
        - *Source:* "Subscribe to Apple Music." → *Target:* "订阅Apple Music。"
        - *Source:* "Open Music to play your library." → *Target:* "打开\u201C音乐\u201D播放你的资料库。"
        - *Source:* "Maps" → *Target:* "地图"
        - *Source:* "Books" → *Target:* "\u201C图书\u201DApp"
      
      ## Variables
      
      - **Preserve Variable Format and Count Exactly**: Keep every runtime variable (%@, %d, %1$@, etc.) in the translation with the same format as the source. Never change %@ to %e or similar. Variables may be reordered but must then be numbered (e.g., %1$@, %2$@). The count of variables must match the source exactly.
        - *Source:* ""%d or more"" → *Target:* ""%d个或更多""
      
      ## Diversity And Inclusion
      
      - **Use People-First Language for Disability**: Describe people with disabilities as people first. Prefer 残障 over 残疾, and avoid 残废 or 残缺. Do not use terms like 受害者 or language that frames disability as inspiring or tragic. Use 非残障人士 or 健全人 for people without disabilities; never use 正常人, 一般人, or 普通人.
        - *Source:* "The blind" → *Target:* "视障人士 / 有视觉障碍的人"
      
    • styleguide_zh-Hant.md 11.8 KB
      # Traditional Chinese (zh-Hant) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart but Casual, Traditional Chinese First**: The tone should be direct, friendly, and closer to formal than informal, but never stiff or trendy. Use Traditional Chinese terminology as much as possible even when English equivalents are more common in everyday speech. Prioritize capturing the meaning naturally over literal word-for-word translation.
      
      ## Addressing Users
      
      - **Use Informal 你 for All Software**: Use the informal 你 in all software. This keeps a consistent, friendly, and conversational tone.
        - *Source:* "You can sync photos and videos using the desktop app." → *Target:* "你可以透過桌面版App將照片和影片同步。"
      
      ## Abbreviations
      
      - **Keep Abbreviations in English Unless a Common Local Equivalent Exists**: Do not translate abbreviations unless there is a well-known Traditional Chinese equivalent. When retaining an abbreviation, you may show the Chinese translation followed by the English abbreviation in parentheses for clarity.
        - *Source:* "Frequently Asked Questions (FAQ)" → *Target:* "常見問題(FAQ)"
      
      ## Acronyms
      
      - **Retain Acronyms When Meaning Is Apparent to Users**: Do not translate acronyms (CD-ROM, RAM, SIM, HTTP, RTSP) unless a very common localized equivalent exists.
        - *Source:* "Components for managing HTTP and RTSP cookies" → *Target:* "用於管理HTTP與RTSP Cookie的元件"
        - *Source:* "SIM card" → *Target:* "SIM卡"
      
      ## Spacing
      
      - **No Space Between Chinese and Latin**: Write a Chinese character and an adjacent Latin letter or number with no space between them. Keep spaces only where the format requires them, such as date/time and date/week.
        - *Source:* "Export the document as a PDF file" → *Target:* "將文件輸出為PDF檔案"
      
      ## Date And Time
      
      - **Follow Traditional Chinese Date and Time Format**: Use the Traditional Chinese date and time format. Preserve spaces between date and time components where the format requires them.
        - *Source:* "Mon June 8 3:17PM" → *Target:* "6月8日週一 下午3:17"
      
      - **Space between date and time or date and week**: Space should be kept for date/time, date/week, etc.
        - *Source:* "On %1$@, at %2$@, %3$@ wrote:\n\n" → *Target:* "%3$@於%1$@ %2$@寫道:\n\n"
      
      ## Measurements
      
      - **Do Not Convert Measurements; Keep Digital Storage Units in English Singular**: Do not convert imperial to metric in software strings. Storage units (bit, byte, kilobyte, KB, MB, GB, TB, etc.) stay in English singular form when used as measurements. Use the standard abbreviations (KB/MB/GB/TB/PB/EB/ZB/YB) for larger units rather than spelling them out. When units are used descriptively (e.g., 16-bit color), translate them into Chinese.
        - *Source:* "Choose the size scale as kilobytes (KB), megabytes (MB), or gigabytes (GB)" → *Target:* "選擇以KB、MB或GB作為大小單位"
        - *Source:* "64 bit processor" → *Target:* "64位元處理器"
      
      ## Names And Addresses
      
      - **Follow Taiwan Address Convention**: Addresses must follow the Taiwan (Chunghwa Post) convention: ZIP code on the first line, then County/City and District/Township, then street address. Both three-digit and five-digit zip codes are acceptable. Example format: 40867台中市南屯區向上路2段199號.
      
      ## Numerals
      
      - **Follow Source for Numerals; Use Comma as Thousands Separator**: Follow the source when deciding between Arabic numerals and spelled-out numbers. Use a comma as the thousands separator. When the source spells out a number, translate it into Traditional Chinese.
        - *Source:* "two hundred books and 1,000,000 songs" → *Target:* "兩百本書和1,000,000首歌曲"
      
      ## Special Characters
      
      - **Localize & and # When Used as Words**: When & represents 'and' in translated text, localize it as 與. When # represents 'number', localize with an appropriate ordinal construction. Keep & and # unchanged when they are part of untranslated brand names or technical strings.
        - *Source:* "Languages & Dialects" → *Target:* "語言與方言"
        - *Source:* "#%1$@ of %2$@ player" → *Target:* "第%1$@名(共%2$@位玩家)"
      
      ## Punctuation
      
      - **Use Full-Width Punctuation with Corner Bracket Quotation Marks**: Use full-width punctuation marks (,。!?;:) throughout. Use corner brackets 「」 as quotation marks around technical terms, UI element names, user-generated content that may be in Chinese, file and folder names, and chapter titles. Do not add quotes around proper nouns on menu bars or window titles unless a variable is present.
        - *Source:* "Save changes to the \u201C%1$@\u201D %2$@ account?" → *Target:* "要將更動儲存至「%1$@」%2$@帳號嗎?"
        - *Source:* "Check the settings in Settings > Mail." → *Target:* "檢查「設定」>「郵件」裡的設定。"
      
      - **Remove or Add Quotes Around Variables Based on Content Type**: Remove corner brackets when the variable contains account names, dates, times, email addresses, URLs, person names, place names, server names, or service names. Add or keep corner brackets when the variable represents a document name, folder path, mailbox name, mail subject, calendar title, event title, or an app name that may render in Chinese.
        - *Source:* "Could not save to path %1$@. Choose a different path." → *Target:* "無法儲存至路徑「%1$@」。請選擇其他路徑。"
      
      - **Ellipsis: Use the Midline Three-Dot Form**: Use the midline horizontal ellipsis ⋯ (刪節號).
        - *Source:* "Downloading..." → *Target:* "下載中⋯"
      
      - **En Dash with Spaces for Ranges; Avoid Dashes Where Possible**: For ranges between dates, times, or numbers, use an en dash with a space on each side, unless the source already uses a specific dash or hyphen, in which case match the source's type. Outside of ranges, avoid dashes; prefer commas or parentheses.
        - *Source:* "9:00 AM – 5:00 PM" → *Target:* "上午9:00 – 下午5:00"
      
      - **Keep Special Math and Navigation Symbols Half-Width**: Plus +, minus -, asterisk *, and greater-than > signs must remain in half-width form.
        - *Source:* "Click the Add (+) button." → *Target:* "按一下「新增」(+)按鈕。"
        - *Source:* "Go to Settings > General" → *Target:* "前往「設定」>「一般」"
        - *Source:* "Fields marked with * are required." → *Target:* "標有*的欄位為必填。"
      
      - **Keep Forward Slash Half-Width**: Solidus / (斜線) should be used instead of fullwidth solidus / or division slash ∕. No space is needed before or after the slash.
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks and Product Names**: Keep trademarks, trademarked terms, and product names in the source language — do not translate or transliterate them unless the source does. Other company names likewise remain untranslated, or use their established Chinese name where one exists.
      
      ## Terminology
      
      - **Use Singular Capitalized Form for Countable English Software Terms**: When a countable English software term appears, capitalize it and use the singular form. If a term exists only in plural form, always keep the plural. For product names, keep the singular or plural form as written in the source.
        - *Source:* "Apps on your device" → *Target:* "裝置上的App"
      
      ## Grammar
      
      - **Use 正在 for Progressive Actions; 中 When No Noun Follows**: Translate present-progressive actions as 正在⋯ when a noun follows the verb. When no noun follows (for example, in loading indicators), use the verb followed by 中⋯ instead.
        - *Source:* "Downloading…" → *Target:* "下載中⋯"
        - *Source:* "The app is updating your existing files" → *Target:* "App正在更新現有的檔案"
      
      - **Standardized Sentence Starters for Common English Patterns**: Several English sentence patterns have standard Traditional Chinese translations. Use 若要⋯請⋯ for 'To…'
        - *Source:* "To connect to the device, click Connect." → *Target:* "若要連接裝置,請按一下「連線」。"
        - *Source:* "For more information, choose Help > User Guide." → *Target:* "如需更多資訊,請選擇「輔助說明」>「使用手冊」。"
      
      - **Add Measure Words After Number Placeholders**: When a placeholder stands for a number, insert the appropriate Chinese measure word between the placeholder and the noun that follows it. Check the UI or string comment to confirm the correct measure word.
        - *Source:* "%d contacts" → *Target:* "%d位聯絡人"
      
      ## Variables
      
      - **Preserve All Variables; Number Them When Reordered**: Keep every runtime variable (%@, %d, %1$@, ^1, $1, etc.) exactly as in the source — except to add the `[tt]` technical-term flag described in the next rule. Never change a variable's format in any other way. When reordering two or more variables, number all of them with positional markers.
        - *Source:* "%@ at %@ on %@" → *Target:* "%3$@%2$@%1$@"
      
      - **Add `[tt]` to a `%@` Variable That Holds a Name or Technical Term**: `%[tt]@` asks the system to wrap the substituted value in corner brackets 「…」 at runtime, so a name or technical term is quoted correctly whether it arrives as Latin or Chinese text. Add `[tt]` to a `%@` only when BOTH hold: (a) the string is formatted with a modern localized API (`String(localized:)`, `localizedStringWithFormat`, `Text()`, or `LocalizedStringResource`) — never `String(format:)`, where a literal `%[tt]@` can appear in the UI; and (b) the value is a name, app name, or technical term (inferred from the source, the developer comment, the key, or the code). `[tt]` attaches only to `%@` object specifiers (never `%d`, `%f`, `%ld`), and takes the positional form `%2$[tt]@` when variables are reordered.
        - Do not add `[tt]` when the value is a number, date, duration, count, URL, email address, file path, or image/icon name.
        - Do not add `[tt]` when the value is already set off on both sides in the source — for example already inside 「」, quotation marks, or parentheses — because the runtime brackets would double up.
        - When in doubt, leave `%@` unchanged: a plain `%@` is always safe, whereas a wrong `%[tt]@` can ship a literal token.
        - *Source:* "Open %@" → *Target:* "開啟%[tt]@" (value is an app name — the runtime wraps it in 「」, e.g. 開啟「⋯」)
        - *Source:* "Please go to %@ and sign out" → *Target:* "請前往%[tt]@登出" (value is a settings section — the runtime wraps it in 「」, e.g. 請前往「帳戶設定」登出)
        - *Source:* "Delete \u201C%@\u201D?" → *Target:* "要刪除「%@」嗎?" (value already set off by 「」 — do not add `[tt]`)
      
      ## General Advice
      
      - **Translate from the User's Perspective; Remove Redundant Words**: Remove redundant pronouns and particles (的, 你, 以便) that make translations feel heavy. Restate the subject explicitly rather than using ambiguous pronouns when clarity is needed. Choose words that reflect the user's action, not the system's internal state.
        - *Source:* "You can change your password at any time in your account settings." → *Target:* "隨時可在帳戶設定中更改密碼。"
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Terms; People-First Language for Disability**: Avoid binary gender representations; prefer neutral profession titles (警察 not 女警, 護理師 not 男護士, 空服員 not 空姐). When translating the epicene 'they', omit the pronoun, repeat the noun, or use demonstrative pronouns 其, 此, 該. For disability, use people-first terms (身心障礙者, 視覺障礙人士) and never use 正常人, 一般人, or 普通人 for non-disabled people.
        - *Source:* "The blind" → *Target:* "視覺障礙人士"
      
      - **Handle Black/White/Master/Slave Terminology Responsibly**: Choose Traditional Chinese wording a local audience would not find offensive, and don't frame software or hardware as an oppressive human relationship such as 主/奴 (master/slave). Render inclusive source terms with their standard equivalents (block list → 封鎖清單, allow list → 允許清單).
        - *Source:* "blacklist and whitelist" → *Target:* "封鎖清單和允許清單"
      
    • styleguide_zh-HK.md 12.3 KB
      # Traditional Chinese (Hong Kong) (zh-HK) — Software String Localization Style Guide
      
      ## Tone And Voice
      
      - **Smart Yet Casual, Traditional Chinese First**: Write in a tone that is direct, friendly, and moderately formal without being stiff. Use Traditional Chinese as the default, though common English terms are acceptable in everyday speech. Capture the essence of the message rather than translating word-for-word. When context is ambiguous, check the string's comment, key IDs, other translations, and surrounding context before translating.
        - *Source:* "Smart Backup keeps your photos and documents safe in the cloud, so you never lose a thing." → *Target:* "「智能備份」會將你的相片和文件安全備份到雲端,讓你不會遺失任何重要資料。"
      
      ## Addressing Users
      
      - **Use Informal 你 for All Software**: Address users as 你 in all software. The formal form 您 is not used for Hong Kong. This maintains a consistent, friendly tone across the product.
        - *Source:* "You can change your password in Settings > Account > Security." → *Target:* "你可以在「設定」>「帳戶」>「保安」中更改你的密碼。"
      
      ## Abbreviations
      
      - **Translate an Abbreviation When a Common Local Equivalent Exists**: Everyday abbreviations such as e.g., i.e., info, and CC have standard Traditional Chinese equivalents, so translate them to their meaning. Keep an abbreviation in English only when it has no common local equivalent — most often a technical acronym such as SIM or CD-ROM.
        - *Source:* "e.g." → *Target:* "例如"
        - *Source:* "CC" → *Target:* "副本"
        - *Source:* "i.e." → *Target:* "即是"
      
      ## Acronyms
      
      - **Retain English Acronyms When Meaning Is Apparent**: Keep technical acronyms in English when users would understand them (e.g., SIM, CD-ROM, RAM). Do not translate unless a common localized equivalent exists.
        - *Source:* "CD-ROM drive" → *Target:* "CD-ROM 光碟機"
        - *Source:* "SIM card" → *Target:* "SIM 卡"
      
      ## Date And Time
      
      - **Follow Traditional Chinese (HK) Date and Time Conventions**: Follow the Traditional Chinese (HK) date and time conventions. Use 至 to connect the start and end of date ranges, following the CLDR value for Traditional Chinese (HK).
        - *Source:* "On %1$@, at %2$@, %3$@ wrote:" → *Target:* "%3$@於%1$@ %2$@寫道:"
        - *Source:* "Aug 1 – Aug 5" → *Target:* "8月1日至8月5日"
      
      ## Measurements
      
      - **Do Not Convert Measurements; Keep Digital Units in English Singular**: Do not convert imperial measurements to metric. Storage and data-rate units (bit, byte, kilobyte, KB, MB, GB, etc.) must remain in English in singular form when used as measurements. Translate them only when used descriptively, such as 16-bit color → 16 位元色彩.
        - *Source:* "1 MB = 1 million bytes" → *Target:* "1 MB = 1 百萬 byte"
        - *Source:* "The transfer rate is 400 kbits/sec." → *Target:* "傳輸速率為 400 kbit/秒。"
        - *Source:* "16 bit color" → *Target:* "16 位元色彩"
        - *Source:* "64 bit processor" → *Target:* "64 位元處理器"
      
      ## Addresses
      
      - **Use Hong Kong Address Order**: Hong Kong addresses go from the largest unit to the smallest (Country → Province → City → Street → Building → Room), opposite to English order. Do not change phone numbers to local numbers unless instructed. Example format: 九龍油麻地彌敦道405號九龍政府合署13樓A室.
      
      ## Numerals
      
      - **Use Arabic Numerals for Technical Specs**: Technical specifications, dates, currencies, and speed should use Arabic numerals. Do not localize Arabic numerals. Use a comma as the thousands separator when needed.
        - *Source:* "1,000,000 songs" → *Target:* "1,000,000首歌曲"
      
      ## Punctuation
      
      - **Use Full-Width Punctuation with Corner Bracket Quotation Marks**: Use full-width punctuation marks (,。!?;:) throughout. No space is needed before or after full-width punctuation. Use corner brackets 「」 as quotation marks for app names, menu items, command names, path names, document and file names, and chapter titles. Use 《》 for song, album, and movie titles.
        - *Source:* "Find My Device enabled" → *Target:* "已啟用「尋找裝置」"
        - *Source:* "Cloud Photo Sync" → *Target:* "「雲端相片同步」"
        - *Source:* "Voice and Dictation" → *Target:* "「語音與聽寫」"
        - *Source:* "Now playing: %@" → *Target:* "正在播放《%@》" (%@ is a song title)
      
      - **Remove or Add Quotes Around Variables Based on Content Type**: Remove corner brackets when a variable contains account names, dates, times, email addresses, URLs, person names, place names, or server names. Add or keep corner brackets when the variable represents a document or file name, folder path, mailbox name, mail subject, calendar title, event title, or an app name written in Chinese.
        - *Source:* "%@ started sharing location with you." → *Target:* "%@開始與你分享位置。"
        - *Source:* "Could not save to path %1$@. Choose a different path." → *Target:* "無法儲存至路徑「%1$@」。請選擇其他路徑。"
        - *Source:* "The %@ calendar does not support events." → *Target:* "「%@」日曆不支援行程。"
      
      - **Ellipsis: Use the Midline Three-Dot Form**: Use the midline horizontal ellipsis ⋯ (省略號).
        - *Source:* "Loading..." → *Target:* "載入中⋯"
      
      - **Use Fullwidth Tilde for Ranges**: Use the fullwidth tilde ~ (連接號) to indicate ranges between times or numbers (for date ranges, use 至 as described under Date And Time). No space is needed before or after the tilde.
        - *Source:* "1:45 PM to 2:45 PM" → *Target:* "下午1:45~下午2:45"
        - *Source:* "Week 1 to Week 2" → *Target:* "第1星期~第2星期"
      
      - **Keep Special Math and Navigation Symbols Half-Width**: Plus +, minus -, asterisk *, and greater-than > signs must remain in half-width form. Use the half-width solidus / (not fullwidth /) for slashes, with no spaces around it.
        - *Source:* "Settings > General > Storage" → *Target:* "「設定」>「一般」>「儲存空間」"
      
      ## Special Characters
      
      - **Localize & and # Symbols When Used as Words**: When & represents 'and', translate it as 與. When # represents 'number', localize it with an appropriate ordinal construction. Keep these symbols unchanged when they are part of brand names or untranslated technical strings.
        - *Source:* "Voice & Data" → *Target:* "語音與數據"
        - *Source:* "#%1$@ of %2$@ players" → *Target:* "第%1$@位(共%2$@位玩家)"
      
      ## Trademarks And Product Names
      
      - **Do Not Translate Trademarks and Product Names**: Keep trademarks, trademarked terms, and product names in the source language — do not translate or transliterate them unless the source does. Other company names likewise remain untranslated, or use their established Chinese name where one exists.
      
      ## Terminology
      
      - **Use Singular Capitalized Form for Countable English Software Terms**: If a countable English software term appears in plural form, capitalize it and drop the -s. Use this form consistently. If a term exists only in plural form, always keep the plural. For product names, keep the singular or plural form as written in the source.
        - *Source:* "Accept cookies" → *Target:* "接受Cookie"
      
      ## Grammar
      
      - **Add Measure Words After Number Placeholders**: When a variable represents a number, insert the appropriate Chinese measure word between the variable and the noun that follows it. Check the UI or string comment to confirm the correct measure word.
        - *Source:* "%@ Contacts" → *Target:* "%@位聯絡人"
      
      - **Use Imperative Form with 請 for Instructions**: Translate directive sentences using 請 followed by the action. For negative directives, use 請勿 to maintain a polite, instructional tone.
        - *Source:* "Try again later." → *Target:* "請稍後再試。"
        - *Source:* "Do not unplug or reset this wireless router until it is available." → *Target:* "請勿拔下此無線路由器的電源或對其進行重設,直至它可以使用。"
      
      ## Variables
      
      - **Preserve All Variables; Number Them When Reordered**: Keep every runtime variable (%@, %1$@, %s, ^1, etc.) exactly as in the source — except to add the `[tt]` technical-term flag described in the next rule. Never change a variable's format in any other way (e.g., %@ must not become %e). When reordering two or more variables, number all of them with positional markers.
        - *Source:* "%@ at %@ on %@" → *Target:* "%3$@%2$@%1$@"
      
      - **Add `[tt]` to a `%@` Variable That Holds a Name or Technical Term**: `%[tt]@` asks the system to wrap the substituted value in corner brackets 「…」 at runtime, so a name or technical term is quoted correctly whether it arrives as Latin or Chinese text. Add `[tt]` to a `%@` only when BOTH hold: (a) the string is formatted with a modern localized API (`String(localized:)`, `localizedStringWithFormat`, `Text()`, or `LocalizedStringResource`) — never `String(format:)`, where a literal `%[tt]@` can appear in the UI; and (b) the value is a name, app name, or technical term (inferred from the source, the developer comment, the key, or the code). `[tt]` attaches only to `%@` object specifiers (never `%d`, `%f`, `%ld`), and takes the positional form `%2$[tt]@` when variables are reordered.
        - Do not add `[tt]` when the value is a number, date, duration, count, URL, email address, file path, or image/icon name.
        - Do not add `[tt]` when the value is already set off on both sides in the source — for example already inside 「」, quotation marks, or parentheses — because the runtime brackets would double up.
        - When in doubt, leave `%@` unchanged: a plain `%@` is always safe, whereas a wrong `%[tt]@` can ship a literal token.
        - *Source:* "Open %@" → *Target:* "開啟%[tt]@" (value is an app name — the runtime wraps it in 「」, e.g. 開啟「⋯」)
        - *Source:* "Please go to %@ and sign out" → *Target:* "請前往%[tt]@登出" (value is a settings section — the runtime wraps it in 「」, e.g. 請前往「帳戶設定」登出)
        - *Source:* "Delete \u201C%@\u201D?" → *Target:* "要刪除「%@」嗎?" (value already set off by 「」 — do not add `[tt]`)
      
      ## General Advice
      
      - **Translate from the User's Perspective and Avoid Redundancy**: Remove redundant pronouns, particles, and overly literal constructions (e.g., 你, 的, 以便) that make text feel heavy. Choose words that reflect what the user is doing rather than the system's internal perspective.
        - *Source:* "This update is not available because you are not connected to the Internet." → *Target:* "由於尚未連接互聯網,因此無法下載此更新項目。"
      
      - **Restate Subject Instead of Using Ambiguous Pronouns**: For clarity, repeat the noun rather than using a pronoun when the referent could be misread. This is especially important when the subject changes mid-sentence or when a relative clause could point to multiple antecedents.
        - *Source:* "The pass cannot be read because it isn't valid." → *Target:* "無法讀取票證,因為票證已失效。"
        - *Source:* "You followed a link that requires the app \u201C%@\u201D, which is no longer on your %@." → *Target:* "你跟隨了一個需要「%@」App的網址,不過你的%@已沒有此App。"
      
      - **Use All Available Context to Disambiguate Meaning**: Use all the context available for a given string—the key ID, the developer comment, surrounding strings, and the code—to resolve ambiguous terms. For example, a key containing MUSIC_ALBUM means 'album' → 專輯 not 相簿, and a font or typography context means 'Weight' → 粗幼 (font weight), not 體重 (body weight).
        - *Source:* "Your album is now downloading." → *Target:* "正在下載你的專輯。"
        - *Source:* "Weight" → *Target:* "粗幼" (a font/typography context — the font-weight sense, not 體重)
      
      ## Diversity And Inclusion
      
      - **Use Gender-Neutral Language and People-First Disability Terms**: Avoid binary gender representations; prefer 不同性別 over 兩性 or 男女, and use 家長 instead of 父母 where applicable. Use 其 as a possessive pronoun to avoid 他/她的. For disability, describe people before their condition and use terms like 輪椅使用者 rather than 受限於輪椅. Never use 正常人, 一般人, or 普通人 for non-disabled people; use 非身障人士 instead.
        - *Source:* "A wheelchair-bound person" → *Target:* "輪椅使用者"
        - *Source:* "He or she will need to approve the request." → *Target:* "其需要核准此請求。"
      
  • SKILL.md 23.7 KB
    ---
    displayName: "Translate Strings"
    description: "Translate strings in Xcode String Catalogs (.xcstrings files). Prefer to use the `xcode-skills:translation-coordinator` skill for task-coordination. Use this skill when translating individual strings or working with String Catalogs. Should only be activated when translating a single string or a small batch of known string keys. The `translation-coordinator` skill should be used for anything else."
    sfSymbolName: translate
    name: translation
    ---
    # String Catalog Translator
    
    Translate a given set of strings in Xcode String Catalogs using specialized MCP tools. These strings are user-facing software strings for apps on Apple platforms — typically short UI text such as button titles, labels, and messages. Translate them as you would for a native app on those platforms. Access String Catalogs **only** through these tools—never write .xcstrings files directly.
    
    Abort if no list of keys was provided, or if no target locale identifier was provided — something went wrong. Do not guess a locale from examples; the target locale must come from your initial instructions.
    
    ## Role Boundaries
    
    A specific list of string keys and a target locale identifier have been provided via your initial instructions.
    - Do not fetch additional string keys beyond what you were given
    - Do not translate into any locale other than the one explicitly provided
    - Do not use `LocalizationPlanner` (your coordinator already ran it)
    - Do not spawn sub-agents of your own
    
    
    
    ## Quick Reference
    
    | Tool | Purpose |
    |------|---------|
    | `StringCatalogRead` | Get string keys by translation state (new, needs_review, translated, machine_translated) |
    | `StringCatalogContext` | Get source value and context: comments, similar strings, code locations, plural cases |
    | `StringCatalogEdit` | Insert the translation |
    
    ## Workflow
    
    Skip the `LocalizationPlanner` tool when told to do so.
    
    For each string, **one at a time**, follow these steps in order.
    
    **Step 1: Get source value and context**
    Call `StringCatalogContext` with the target locale. The `sourceValues` field in the response contains the text that must be translated. The rest of the response provides context:
    - Developer comments explaining intent
    - Existing translations in other languages
    - Similar strings with their translations (for terminology consistency)
    - Code locations where the string is used
    - UI appearance hints (button vs. label affects verb/noun choice)
    - Required plural cases for the target locale
    
    **Step 2: Read the source code** at the provided file paths to understand how the string is used. This reveals the developer's intention and helps you choose the right translation (e.g., a verb for buttons, descriptive for labels). For instance, the key "Save" could be a verb (button action → "Speichern") or a noun (a save file → "Spielstand") — only the source code reveals which. Reading the source code is REQUIRED for finding a good translation. If usage data is unavailable, use all the context clues you have so far — developer comments, similar strings, appearance hints, and existing translations in other languages.
    
    Some UI words are both noun and verb (e.g. "Bookmark", "Archive", "Save"), and the noun is the more common reading, so might be the one you fall back to by default. When the comment, code, or appearance information shows the string is a button or other action control, you **MUST** translate it as a verb, not a noun (or the appropriate part-of-speech according to the target language's style guide). For instance, a "Bookmark" button is the action "add a bookmark", not the object "a bookmark", hence it should be translated as a verb, and reading the source code and the appearance info gives you clarity over its usage.
    Give both labels of a toggle (e.g. the two sides of a ternary) the same part of speech — never one as a verb and the other as a noun.
    Follow the target-languages style-guide to determine what part-of-speech buttons, toggles, and labels should use.
    
    **Step 3: Gather available style and terminology input, then make style choices**
    
    Read and consider guidance from the following:
    - Explicit guidance in your instructions
    - Existing translations for the target locale
    - The locale-specific style guide
    
    They cover different concerns, and the higher-priority sources are often incomplete — the lower-priority ones fill the gaps rather than being ignored:
    
    1. **Explicit guidance in your instructions.** Any terminology or style direction in the instructions you were given (how to translate a specific term, the app name, tone guidance, DNT list, etc.) is authoritative — follow it above all else.
    2. **Existing translations for the target locale.** Match their terminology, phrasing, register, tone, etc. so the app's translations stay consistent. These reflect choices already made for this project and take precedence over the style guide.
    3. **The locale-specific style guide.** Always read `references/styleguide_{locale}.md` (resolve it relative to the skill's base directory) when one exists for the target locale (e.g. `styleguide_pt-BR.md`, `styleguide_zh-Hans.md`—if the file doesn't exist, there isn't a style guide for that locale). Use it to inform your choices when specific guidance doesn't exist in your instructions or existing translations.
    
    When these sources conflict, higher-priority items win: explicit instructions override existing translations, which override the style guide. Where none of them settles a question, default to informal/colloquial style.
    
    **Step 4: Formulate translation**
    Consider:
    - **Terminology**: Match terms used in similar strings. If "Save" is translated as "Speichern" elsewhere, use it consistently. No matter the similar strings, make sure the part of speech of your target string is preserved: a noun sibling ("Bookmarks") is not a precedent for an action button that shares its stem ("Bookmark") — reuse the term, keep the part of speech the usage calls for.
    - **Tone and formality**: Decide on the style of your translation based on your choices in step 3
    - **App names**: Once you decide on how to translate an app name, make sure to to stick to this decision everywhere the app name is referenced.
    - **Format specifiers**: Understand what each specifier represents by reading the source code (e.g., `%lld` might be a count of items, files, or users).
    
    **Step 5: Determine if variation is needed**
    Check whether the translation needs plural variation, device variation, or both.
    
    - **Plural**: If the string contains a numeric format specifier (`%lld`, `%d`, `%u`, etc.) paired with a countable noun, read [references/plural-variations.md](./references/plural-variations.md) (resolve it relative to the skill's base directory). The context tool provides `relevantPluralCases` for your target locale—use all of them.
        - If the context tool also returned `sourcePluralCasesToAdd`, the source itself isn't plural-varied yet. Vary the source first in a separate `StringCatalogEdit` call before translating the target — [references/plural-variations.md](./references/plural-variations.md) walks through this two-step flow.
    - **Device**: If the string references a device-specific interaction (tap vs. click) or mentions a device by name, read [references/device-variations.md](./references/device-variations.md) (resolve it relative to the skill's base directory)
    - **Both**: A string can need both — for example, "Tap to launch %lld spaceships" differs by device AND has a countable noun. Combine device and plural keys (e.g., `device.iphone.plural.one`), but keep `device.other` as a flat fallback string that covers both variations
    
    **Step 6: Insert translation**
    Call `StringCatalogEdit` with the appropriate translation type. Translate the **source value** from `sourceValues` in Step 1 with the context you gathered. If the string is a String Set (marked `isStringSet: true` in context), provide natural alternatives in the target language using the `stringSetTranslation` parameter — these are **not** 1:1 translations but synonyms that express similar intent. For example, English `["order food in ${applicationName}", "get food in ${applicationName}"]` → German `["Essen bestellen in ${applicationName}", "Essen holen auf ${applicationName}"]`. Continue to the next string.
    
    **Repeat these 6 steps until all requested strings are translated.**
    
    Do not rush and cut corners; follow these 6 steps exactly for every string requested.
    
    
    # Tool Reference
    ## StringCatalogContext
    
    Returns context and the source language value for a given string. The `sourceValues` field contains the text that must be translated. Also includes comments, translations for other languages if present, and relevant plural case hints for the target locale if applicable. Curly apostrophes and quotes are escaped (e.g., \\u2019 for curly apostrophe, \\u201C for curly quote).
    
    ### Inputs
    
    | Parameter | Type | Required | Description |
    |-----------|------|----------|-------------|
    | `tabIdentifier` | String | Yes | Workspace tab identifier |
    | `filePath` | String | Yes | Path to String Catalog |
    | `stringKey` | String | Yes | String key to get context for |
    | `targetLocaleIdentifier` | String | Yes | Locale for translation (e.g., `de`, `pt-PT`) |
    
    ### Outputs
    
    | Field | Type | Description |
    |-------|------|-------------|
    | `sourceValues` | SourceValues | The source language values to translate (see SourceValues type below) |
    | `shouldTranslate` | Bool | Whether string should be translated (false = DO NOT TRANSLATE) |
    | `isStringSet` | Bool? | Whether this is a String Set (only present when true) |
    | `comment` | String? | Developer comment from String Catalog |
    | `relevantPluralCases` | [String]? | Plural cases for target locale (e.g., `["plural.one", "plural.other"]`). Absent when the string doesn't require pluralization. |
    | `sourcePluralCasesToAdd` | [String]? | Plural cases for the source locale. Present when the source string has a numerical format specifier but is not yet plural-varied. Absent when the source string doesn't require pluralization. |
    | `translations` | [LocalizationInfo] | All existing translations across non-source locales |
    | `usageLocations` | [UsageLocation]? | Source code locations where string is used |
    | `appearances` | [AppearanceInfo]? | UI appearance hints (button, label, UI framework) |
    | `usageDataUnavailable` | String? | Message when usage data can't be retrieved (e.g., "Build the project...") |
    | `similarStrings` | [SimilarStringInfo] | Similar strings from other String Catalogs |
    | `supportedDevices` | [String]? | Devices this app builds for (e.g., `["device.iphone", "device.mac"]`). Only present when the app targets multiple device families. |
    
    ### Output Types
    
    #### LocalizationInfo
    
    The terminology choices for this string in other languages can be an indicator of what terminology to choose for this translation. The `isVaried` field is only present (and `true`) when the localization contains plural, device, or width variations; for plain translations it is omitted.
    
    ```json
    {
      "localeIdentifier": "de",
      "value": "Willkommen!"
    }
    ```
    
    When the localization is varied, `value` carries a human-readable description of the variation tree:
    
    ```json
    {
      "localeIdentifier": "he",
      "value": "plural.one: ...\nplural.other: ...",
      "isVaried": true
    }
    ```
    
    #### UsageLocation
    
    Checking how the string is used in source code can provide important context on the terminology to choose (noun vs. verb, etc.)
    
    ```json
    {
      "fileURL": "file:///path/to/File.swift",
      "lineNumber": 42,
      "columnNumber": 15
    }
    ```
    
    #### AppearanceInfo
    
    The way this string is presented in UI is a strong signal for part of speech to choose: translate a button or other action control as an action.
    
    ```json
    {
      "usageHint": "This string is used in a SwiftUI button"
    }
    ```
    
    #### SimilarStringInfo
    
    Ensure consistent terminology, formality, and style by basing new translations off existing similar strings.
    
    ```json
    {
      "key": "save_button",
      "sourceDescription": "Save",
      "targetDescription": "Speichern"
    }
    ```
    
    #### SourceValues
    
    The source language values that must be translated. Exactly one of `value`, `setValues`, or `variationDescription` will be non-null.
    
    | Field | Type | Description |
    |-------|------|-------------|
    | `sourceLocaleIdentifier` | String | The source locale identifier |
    | `value` | String? | Source text for simple strings |
    | `setValues` | [String]? | Source values for string sets |
    | `variationDescription` | String? | Variation tree for varied strings |
    
    ---
    
    ## StringCatalogEdit
    
    Inserts or updates a translation in a String Catalog. Can handle simple strings, varied strings, and String Sets. If the string needs variation (e.g., plural forms), provide the `templateTranslation` or `variationTranslation` parameter. For String Sets (voice assistant commands), use `stringSetTranslation`. Prefer typographically correct quotes for the target language (e.g., „...“ for German, «...» for French). All curly quotes must be escaped (e.g., \\u201E...\\u201C for German „...“).
    
    **Critical:** Translations must be in the correct target locale. Refer to your initial instructions to determine which locale applies. Do not infer a locale from examples in this document.
    
    ### Inputs
    
    | Parameter | Type | Required | Description |
    |-----------|------|----------|-------------|
    | `tabIdentifier` | String | Yes | Workspace tab identifier |
    | `filePath` | String | Yes | Path to String Catalog |
    | `stringKey` | String | Yes | String key to translate |
    | `targetLocaleIdentifier` | String | Yes | Target locale (e.g., `de`, `pt-PT`) |
    
    **Plus exactly one of the following (mutually exclusive):**
    
    | Parameter | Type | Description |
    |-----------|------|-------------|
    | `translation` | String | Simple string translation (no variations) |
    | `templateTranslation` | TemplateTranslation | Template with substitutions for multiple plural nouns |
    | `variationTranslation` | VariationTranslation | Top-level variations (device, width, or single plural noun) |
    | `stringSetTranslation` | [String] | Array of values for String Sets |
    
    ### Translation Types
    
    #### Simple Translation
    
    For strings without variations:
    
    ```json
    {
      "stringKey": "welcome_message",
      "targetLocaleIdentifier": "de",
      "translation": "Willkommen in unserer App!"
    }
    ```
    
    #### Template Translation
    
    For strings with multiple format specifiers + countable nouns:
    
    ```json
    {
      "stringKey": "usage_message",
      "targetLocaleIdentifier": "de",
      "templateTranslation": {
        "template": "iCloud+ wird von %#@arg1@ und %#@arg2@ verwendet.",
        "substitutions": [
          {
            "name": "arg1",
            "argNum": 1,
            "formatSpecifier": "lu",
            "variants": {
              "plural.one": "%arg Gerät",
              "plural.other": "%arg Geräte"
            }
          },
          {
            "name": "arg2",
            "argNum": 2,
            "formatSpecifier": "lu",
            "variants": {
              "plural.one": "%arg Mitglied",
              "plural.other": "%arg Mitglieder"
            }
          }
        ]
      }
    }
    ```
    
    #### Variation Translation
    
    For strings with top-level plural, device, or width variations, or a single format specifier + countable noun:
    
    **Single plural noun:**
    
    ```json
    {
      "stringKey": "item_count",
      "targetLocaleIdentifier": "pl",
      "variationTranslation": {
        "topLevelVariation": {
          "plural.one": "Masz %lld przedmiot",
          "plural.few": "Masz %lld przedmioty",
          "plural.many": "Masz %lld przedmiotów",
          "plural.other": "Masz %lld przedmiotu"
        }
      }
    }
    ```
    
    **Device-only variations (no plurals):**
    
    ```json
    {
      "stringKey": "action_hint",
      "targetLocaleIdentifier": "es",
      "variationTranslation": {
        "topLevelVariation": {
          "device.iphone": "Toca aquí",
          "device.mac": "Haz clic aquí",
          "device.other": "Pulsa aquí"
        }
      }
    }
    ```
    
    **Device variations with single plural noun:**
    
    ```json
    {
      "stringKey": "launch_button",
      "targetLocaleIdentifier": "fr",
      "variationTranslation": {
        "topLevelVariation": {
          "device.iphone.plural.one": "Touchez pour lancer %lld vaisseau spatial",
          "device.iphone.plural.other": "Touchez pour lancer %lld vaisseaux spatiaux",
          "device.mac.plural.one": "Cliquez pour lancer %lld vaisseau spatial",
          "device.mac.plural.other": "Cliquez pour lancer %lld vaisseaux spatiaux",
          "device.other": "Touchez pour lancer %lld vaisseaux spatiaux"
        }
      }
    }
    ```
    
    **Device variations with substitutions (multiple plural nouns):**
    
    ```json
    {
      "stringKey": "device_usage",
      "targetLocaleIdentifier": "de",
      "variationTranslation": {
        "topLevelVariation": {
          "device.iphone": "iCloud+ wird von %#@arg1_iphone@ und %#@users@ verwendet",
          "device.mac": "iCloud+ wird von %#@arg1_mac@ und %#@users@ verwendet",
          "device.other": "iCloud+ wird von %lld und %lld verwendet"
        },
        "substitutions": [
          {
            "name": "arg1_iphone",
            "argNum": 1,
            "formatSpecifier": "lld",
            "variants": {
              "plural.one": "%arg anderes iPhone",
              "plural.other": "%arg andere iPhones"
            }
          },
          {
            "name": "arg1_mac",
            "argNum": 1,
            "formatSpecifier": "lld",
            "variants": {
              "plural.one": "%arg anderer Mac",
              "plural.other": "%arg andere Macs"
            }
          },
          {
            "name": "users",
            "argNum": 2,
            "formatSpecifier": "lld",
            "variants": {
              "plural.one": "%arg Benutzer",
              "plural.other": "%arg Benutzer"
            }
          }
        ]
      }
    }
    ```
    
    **Critical**: See [plural-variations.md](./references/plural-variations.md) for detailed rules.
    
    **Critical:** Insert the entire variation structure, including already translated variants. This overwrites what was there before.
    
    #### String Set Translation
    
    For String Sets (voice assistant commands):
    
    ```json
    {
      "stringKey": "COMMAND_ORDER",
      "targetLocaleIdentifier": "de",
      "stringSetTranslation": ["Essen bestellen", "Essen holen", "Essen kaufen"]
    }
    ```
    
    Note: provide synonyms/alternatives, not direct 1:1 translations.
    
    ### Type Definitions
    
    **TemplateTranslation:**
    | Field | Type | Required | Description |
    |-------|------|----------|-------------|
    | `template` | String | Yes | Template with `%#@name@` substitution references |
    | `substitutions` | [Substitution] | Yes | Array of substitution definitions |
    
    **VariationTranslation:**
    | Field | Type | Required | Description |
    |-------|------|----------|-------------|
    | `topLevelVariation` | {String: String} | Yes | Maps variation paths to templates (e.g., `"plural.one"`, `"device.iphone"`) |
    | `substitutions` | [Substitution]? | No | Optional substitutions referenced by templates |
    
    **Substitution:**
    | Field | Type | Required | Description |
    |-------|------|----------|-------------|
    | `name` | String | Yes | Placeholder name (used as `%#@name@` in template) |
    | `argNum` | Int | Yes | 1-indexed argument position |
    | `formatSpecifier` | String | Yes | Format type without % (e.g., `lld`, `@`, `u`) |
    | `variants` | {String: String} | Yes | Maps variation paths to values (use `%arg` as number placeholder) |
    
    ### Outputs
    
    | Field | Type | Description |
    |-------|------|-------------|
    | `success` | Bool | Whether translation was inserted |
    | `message` | String | Success or error message |
    
    ---
    
    
    ## StringCatalogRead
    
    This tool should only be used to verify your work.
    
    Returns string keys grouped by translation state for the requested locale. Includes counts of all string keys grouped by translation state. Supports pagination. Curly apostrophes and quotes are escaped (e.g., \\u2019 for curly apostrophe, \\u201C for curly quote).
    
    ### Inputs
    
    | Parameter | Type | Required | Default | Description |
    |-----------|------|----------|---------|-------------|
    | `tabIdentifier` | String | Yes | — | Workspace tab identifier |
    | `filePath` | String | Yes | — | Path to String Catalog (relative or absolute) |
    | `targetLocaleIdentifier` | String | Yes | — | Locale to check translations for (e.g., `de`, `pt-PT`) |
    | `requestedState` | String? | No | nil | State to retrieve: `new`, `needs_review`, `translated`, `machine_translated`. If omitted, only counts for all states are returned. |
    | `keyLimit` | Int | No | 50 | Maximum keys to return |
    | `offset` | Int | No | 0 | Keys to skip (for pagination) |
    
    ### Outputs
    
    **Always returned:**
    
    | Field | Type | Description |
    |-------|------|-------------|
    | `newCount` | Int | Untranslated strings |
    | `needsReviewCount` | Int | Strings marked needs review |
    | `translatedCount` | Int | Human-translated strings |
    | `machineTranslatedCount` | Int | Machine-translated strings |
    
    **When `requestedState` is provided:**
    
    | Field | Type | Description |
    |-------|------|-------------|
    | `requestedState` | String | The requested state bucket |
    | `totalForRequestedState` | Int | Total keys in state bucket before pagination |
    | `returnedCount` | Int | Keys returned after pagination |
    | `keys` | [String] | Array of string keys |
    
    A key can appear in multiple state buckets if variants have different states.
    
    ---
    
    # Critical Rules
    
    1. **Use only String Catalog tools** to access .xcstrings files. Never write to them directly.
    2. **Translate one string at a time**, following all 6 steps for **each** before moving to the next.
    3. **Preserve format specifiers exactly** as they appear in source (`%1$lld`, `%@`, etc.).
    4. **Make explicit choices about translation style**—a well-translated app has consistent style throughout. Always read the target locale's style guide when one exists and use it as the baseline; explicit instructions and existing translations take precedence over it wherever they apply.
    5. **Keep app names consistent**—when you translate them once, make sure to translate them everywhere.
    6. **Complete the entire task**—continue until all requested translations are done.
    7. **Use typographically correct quotes and apostrophes** for the target language (e.g., „...“ for German, «...» for French). All curly quotes must be escaped (e.g., \\u201E...\\u201C for German „...“), as well as apostrophes (e.g. \\u2019 for curly apostrophe). NEVER XML-escape the ampersand: write a literal `&`, NOT `&amp;`. The same goes for all other HTML/XML entities — never write `&lt;`, `&gt;`, `&quot;`, or `&apos;`; write the literal `<`, `>`, `"`, `'` characters instead. The String Catalog stores Unicode text, not XML, so any `&amp;` would ship verbatim into the app. Other non-ascii characters do not need extra escaping either. DO NOT blindly escape everything.
    8. Do NOT skip steps to save time, even when there are hundreds of strings. Each step exists to prevent translation errors that are harder to find and fix later. This process takes time, and that's ok. Don't skip work or cut corners to save time, rather focus on accuracy and completeness.
    9. **Use the exact locale identifier from your instructions** as the `targetLocaleIdentifier` in every tool call. Do NOT normalize, canonicalize, or expand it (e.g., if told `zh-TW`, use `zh-TW` — never `zh-Hant-TW`; if told `pt-BR`, use `pt-BR` — never `pt-Latn-BR`). The String Catalog uses these identifiers as-is, and mismatches will cause translations to be stored under the wrong locale.
    
    
    ### Example
    
    For each string key:
    
    1. Agent calls `StringCatalogContext` to get the source value, developer comments, similar strings, code locations, and plural cases.
    2. Agent reads the source code at the provided file paths to understand how the string is used (verb vs. noun, button vs. label).
    3. Agent reads the locale style guide (when one exists for the target locale), reviews existing translations for terminology and tone, and notes any explicit guidance in its instructions — then applies them with explicit instructions taking precedence over existing translations, and existing translations over the style guide.
    4. Agent formulates the translation, considering terminology consistency, tone, app names, and format specifiers.
    5. Agent determines whether variation is needed: plural variation (format specifiers + countable nouns), device variation (interaction verbs or device names + multiple `supportedDevices`), or both.
    6. Agent calls `StringCatalogEdit` to insert the translation for the requested target language.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related