Wednesday, March 4, 2015

Considerations for Global Mobile Games (3) - Language Packs

Considerations for Global Mobile Games (3) - Language Packs


Why Language Packs Matter

Global mobile games require localization to provide players with an intuitive and seamless experience, regardless of their language or region. Flexible and efficient management of language packs ensures that:

  1. Text resources are accessible for diverse regions.
  2. Updates can be implemented dynamically without requiring large-scale deployments.
  3. Players enjoy a consistent experience even as content evolves.

Where Language Packs Are Needed

Language packs should cover:

  • Client and Server Strings: Game UI, error messages, dialogs, and logs.
  • Guides and Tutorials: In-game guides and external documentation.
  • Operational Tools: Localization applies to any supporting tools or systems.

Best Practices for Structuring Language Packs

1. Design for Localization

  • Use words instead of sentences to allow for modularity and ease of reuse.
  • Avoid in-line highlights or context-dependent placements that may vary between languages.
  • When feasible, use visual or action-based elements (e.g., icons or animations) instead of text.
  • For text-heavy areas, support adjustable scaling or scrolling to accommodate languages with longer word lengths.

2. Fonts and Text Handling

  • Image Fonts: Replace text-based TTF characters with image fonts.
    • Pros: Reduces app size and improves performance.
    • Cons: Requires additional processing for font updates.
  • Fallback Fonts: Use widely compatible TTF fonts for fallback but limit usage to essential cases.
  • Text-in-Image: Convert static text in images to dynamic text layers for easier updates.

3. Special Effect Text

  • Examples: Terms like "Perfect," "Clear," or "Miss."
    • Treat these as images rather than text for stylistic consistency.
    • Prepare separate image sets for each supported language.

4. Centralized Management

  • Use tools like Google Sheets for collaborative translation management.
    • Advantages:
      • Easy access for translators.
      • Streamlined approval workflows.
      • Avoids scattered or duplicated language pack files.
    • Automate deployment:
      • Create a script or tool to parse Google Sheets and deploy language pack updates to the server.

Dynamic Text Handling

1. Format Strings

  • Use placeholders for dynamic values, e.g.:
    "%s님은 %d일 동안 %d번 플레이 하셨습니다."
  • Challenges:
    • Word order differences across languages may require placeholders to change positions.
    • Type-sensitive languages may cause crashes if formats mismatch.
  • Solution:
    • Create a function to handle text formatting dynamically per language.

2. Mapping Strategies

  • Line Number-Based Mapping: Assign line numbers to each text string.

    • Advantages: Easy to implement; avoids key-naming discussions.
    • Disadvantages:
      • Deleting or reordering lines can cause errors.
      • Hard to identify strings based on numbers alone.
  • Key/Value-Based Mapping: Assign human-readable keys for each text string.

    • Advantages:
      • Easier to understand and edit collaboratively.
      • Reduces errors during updates.
    • Disadvantages:
      • Choosing unique, descriptive keys can be challenging as text strings grow.

Example Workflow

  1. Content Creation: Developers create placeholders or text keys during development. Example:

    { "GAME_START": "Game Start", "GAME_OVER": "Game Over" }
  2. Translation: Translators work collaboratively on tools like Google Sheets to fill in values for each language.

  3. Integration: A script parses the translation files and integrates them into the game build.

  4. Deployment: Language packs are hosted on the server, allowing real-time updates.


Conclusion

Efficient language pack management is critical for successful global game operations. Following these best practices ensures your game can support diverse audiences, adapt quickly to updates, and maintain a polished user experience across regions.