Skip to content

Augment Localization Support #57

@AnakinRaW

Description

@AnakinRaW

User Stories:

  • I want to load a .Dat file, so I have access to it's higher level data (Key - Value)
  • I want to export my in-memory localization to a .dat file so it can be used by the game.
  • I want to open an translationManifest.xml file so I have access to it's higher level data (Key - Value - Language)
  • I want to create an translationManifest.xml file from one or many .dat files so i have all my localization in one VCS compatible file.
  • I want to export an translationManifest.xml file to multiple .dat files so the game can use them.
  • I want to validate a loaded .dat or .xml file with a given error report, so i know where errors are.

Additional Requirements

  • A .dat and a .xml file SHOULD be exchangeable. This means at any given point the API should allow me to either use one or many .dats or one .xml file.
  • The translationManifest.xml MUST not use hardcoded languages in its implementation. This issue was already addressed in the original implementation.
    Petroglyph provided all languages the game engine supports. The implementation will expose a ILanguageDefinition that will be used throughout the implementation and can be expanded upon, but all official *LanguageDefinitions will be provided as sealed classes.

Architectural Details

Localization Service

The localization service is an API that contains a meta model for multiple localizations (e.g.Interface name: IGameLocalization. It MUST hold multiple localizations identified by the english culture name (however we MUST not hardcode the possible language names ([gruenwaldlu]: The possible languages will however be restricted to elements implementing the ILanguageDefinition)). Each language has a simple key-value data store for the actual translations. Data validity checks, TODO handling, etc. is exposed through this service.

Dat File Service

This is an IO API responsible for loading/storing .dat files. The data model which gets transformed from/to a .dat file comes from the Localization Service.

TranslationManifest File Service

This is an IO API responsible for loading/storing translation manifest .xml files. The data model which gets transformed from/to this .xml file comes from the Localization Service. This Service also acts as an concrete implementation of the TranslationManifest Specification.

TranslationManifest Specification

This is an interface only API which defines all data types necessary for a TranslationManifest.

Localization CLI

This is an CLI tool which allows to perform the above described user stories.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions