Skip to content
Dima Enns edited this page May 17, 2021 · 15 revisions

Welcome to the MrMeeseeks.ResXTranslationCombinator wiki!

Requirements

  • ResX default file (see Definitions)
    • Where values are of a language of your choice, which DeepL supports
  • An auth key for the DeepL API

Definitions

  • ResX file family
    • Definition: default file
      • naming pattern: "[name].resx"
      • created by the user (you)
      • defines the keys which should be included in all other ResX files
      • the values are used for the automatic translations
    • Definition: automatic file
      • naming pattern: "[name].[languageCode].a.resx"
      • created by this project (MrMeeseeks.ResXTranslationCombinator)
      • its values are the automatic (machine/DeepL) translations of the default file's values with the same key using the target language defined by the [languageCode]
    • Definition: combined file
      • naming pattern: "[name].[languageCode].o.resx"
      • created by the user (you)
      • optional, if existent it will be considered
      • meant for language experts or linguist to override automatic translations if necessary
    • Definition: override file
      • naming pattern: "[name].[languageCode].resx"
      • created by this project (MrMeeseeks.ResXTranslationCombinator)
      • values take the value from the override file (if the override file exists and has an non-empty value for the corresponding key) or fallback to the value from the automatic file

How does it work?

The Github Action of this project searches for default ResX files. Following steps are executed per default file:

  1. the already existing automatic and override files are collected
  2. missing values in automatic files are filled by automatic translations of the corresponding value in default file using the DeepL API
  3. automatic and override files are combined into combined files. Prioticing the override value (if existent) or else falling back to the automatic value.
  4. An empty template file for overrides is created
Clone this wiki locally