-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
173 lines (155 loc) · 5.28 KB
/
config.example.yaml
File metadata and controls
173 lines (155 loc) · 5.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
# Configuration for Translate Java Property Files
# Absolute path to the Git repository root
target_project_root: "/path/to/your/git/repo"
# Directory containing all .properties files
input_folder: "/path/to/properties/files"
# Path to glossary
glossary_file_path: "glossary.json"
# OpenAI model to use
model_name: "gpt-4o-mini"
# (Optional) OpenAI model for the holistic review step.
# If not provided, defaults to the 'model_name' above.
# Use a more powerful model like "gpt-4o" for higher quality review.
review_model_name: "gpt-4o"
# Tip: You can override this at runtime with the REVIEW_MODEL_NAME environment variable.
# Example: export REVIEW_MODEL_NAME="gpt-4o"
# (Optional) Number of keys to include in a single holistic review API call.
# Lower this value if you encounter "request too large" errors from the API.
holistic_review_chunk_size: 75
# (Optional) If specified, only files matching this glob pattern will be sent for AI translation.
# All other changed .properties files will still be included in the final PR.
# This is useful for targeting specific sets of files, like 'mobile_*.properties'.
# If commented out or empty, all changed .properties files will be translated.
# Set to null or remove to translate all changed files.
# translation_file_filter_glob: null
# Optional: Process all translation files under input_folder instead of only git-changed files.
# Useful for one-time ledger bootstrap or forced full retranslation runs.
# Keep false for normal incremental operation.
process_all_files: false
# Optional: Pull source files (*_en.properties) from Transifex as well as translations.
# Set to `true` if the canonical source of truth for English strings is Transifex.
# The default behavior (`false`) is to only pull translation files and assume
# the source files in the Git repository are the source of truth.
pull_source_files_from_transifex: false
# Translation queue folders
translation_queue_folder: "translation_queue"
translated_queue_folder: "translated_queue"
# If true, the script logs actions without altering files
dry_run: false
# If true, existing keys whose target text is identical to source text
# are retranslated on every run (legacy behavior). Keep this false to
# only translate newly added keys by default and reduce translation churn.
retranslate_identical_source_strings: false
# Optional persistent per-key hash ledger used to detect source changes
# without reprocessing already-stable translations.
translation_key_ledger_file_path: "logs/translation_key_ledger.json"
# Concurrency setting for OpenAI API calls.
# This controls how many API requests can be active at the same time.
# A lower value (e.g., 1 or 2) is safer to avoid API rate limits.
# A higher value can speed up translation but may lead to "429 Too Many Requests" errors.
# Default value if not specified is 1.
max_concurrent_api_calls: 1
# Each locale has a 'code' and a human-readable 'name'
supported_locales:
- code: "cs"
name: "Czech"
- code: "de"
name: "German"
- code: "es"
name: "Spanish"
- code: "it"
name: "Italian"
- code: "pt_BR"
name: "Brazilian Portuguese"
- code: "pcm"
name: "Nigerian Pidgin"
- code: "ru"
name: "Russian"
- code: "af_ZA"
name: "Afrikaans"
# (Optional) Language-specific style and formatting rules to be injected into the AI prompt.
# Use this to guide the AI on tone, casing, terminology, and other stylistic conventions.
# NOTE: Keys here must be language codes present in supported_locales (e.g., de, pt_BR).
style_rules:
de:
- "Use the formal 'Sie' form of address."
- "For quantities, prefer 'ermitteln' or 'bestimmen' over 'bewerten'."
- "Ensure compound nouns are correctly formed (e.g., 'Sicherheitsschritt')."
cs:
- "Use impersonal and neutral phrasing for system messages; avoid the first-person plural."
- "For camera-related nouns, use the correct preposition 'ke kameře'."
es:
- "When referring to 'billetera' (wallet), use feminine pronouns (e.g., 'Configúrala', 'restáurala')."
- "Ensure questions that open with '¿' are properly closed with '?'."
pcm:
- "Maintain consistency with terms like 'connection' and 'camera' (do not use 'kamera')."
- "For negative outcomes, prefer the 'no gree work' pattern where appropriate."
ru:
- "In a wallet context, prefer hyphenated terms like 'seed-фраза' and 'биткойн-кошелька'."
af_ZA: []
it: []
pt_BR: []
# (Optional) A list of brand names and technical terms that should never be translated.
brand_technical_glossary:
- ACH
- ACH Transfer
- Advanced Cash
- AliPay
- Amazon eGift Card
- Bisq
- Bisq Easy
- Bitcoin
- Bizum
- BSQ Swaps
- BTC
- Capitual
- Cash App
- CelPay
- Chase QuickPay
- CIPS
- FPS (UK)
- Faster Payments
- HalCash
- I2P
- IMPS
- Interac e-Transfer
- Japan Furikomi
- Lightning
- Lightning Escrow
- Liquid
- Liquid Assets
- Monese
- MoneyBeam (N26)
- Monero Swaps
- MuSig
- NEFT
- Nequi
- Paxum
- PayTM
- Paysera
- Perfect Money
- Pix
- Popmoney
- PromptPay
- RSK
- RTGS
- Revolut
- SEPA
- SEPA Instant
- Satispay
- Strike
- Submarine Swaps
- SWIFT
- SWIFT International Wire Transfer
- Swish
- Tikkie
- Tor
- UPI
- US Money Order
- Uphold
- Verse
- WeChat Pay
- Wire Transfer
- Wise
- Wise-USD
- Zelle