-
Notifications
You must be signed in to change notification settings - Fork 23
New Crowdin updates #2050
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
New Crowdin updates #2050
Changes from all commits
215c7f4
fc5e6f1
d4cbd26
8d2ce3e
5752434
f37424a
c6f6e46
fd6d376
1b646a7
abebab2
f008f1c
b9e9d95
270e859
f4874d7
c829870
fa94323
4f9a821
03dc697
4eb1c59
7b8cf81
5be7429
310cfdf
5f5a57b
f301e63
ed7ecdf
42784f0
bf8c6f5
2bceb15
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -419,6 +419,9 @@ | |
| "connectSettings.updatedApiSettingsToast": "Zaktualizowane ustawienia API", | ||
| "downgradeOs.downgradeUnraidOs": "Obniż wersję Unraid OS", | ||
| "downgradeOs.pleaseFinishTheInitiatedUpdateTo": "Proszę dokończyć zainicjowaną aktualizację, aby umożliwić obniżenie wersji.", | ||
| "headerArrayUsage.array": "Macierz", | ||
| "headerArrayUsage.offline": "Offline", | ||
| "headerArrayUsage.usedOfArray": "{0}% macierzy użyte", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
echo "Locate locale files and inspect relevant strings"
wc -l web/src/locales/pl.json web/src/locales/*.json 2>/dev/null | sed -n '1,80p'
python3 - <<'PY'
import json, pathlib
p=pathlib.Path('web/src/locales/pl.json')
data=json.loads(p.read_text())
key='headerArrayUsage.usedOfArray'
print(key, data.get(key))
for f in pathlib.Path('web/src/locales').glob('*.json'):
d=json.loads(f.read_text())
v=d.get(key)
if v:
print(f'{f.name}: {v!r}')
PY
echo
echo "Search for headerArrayUsage keys across locales"
rg -n '"headerArrayUsage' web/src/locales || trueRepository: unraid/api Length of output: 7328 Use idiomatic Polish wording for array usage.
🤖 Prompt for AI Agents |
||
| "headerOsVersion.apiVersionCopiedToClipboard": "Wersja API skopiowana do schowka", | ||
| "headerOsVersion.osVersionCopiedToClipboard": "Wersja OS skopiowana do schowka", | ||
| "headerOsVersion.unraidApi": "Unraid API", | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -419,6 +419,9 @@ | |
| "connectSettings.updatedApiSettingsToast": "Оновлені налаштування API", | ||
| "downgradeOs.downgradeUnraidOs": "Знизити версію Unraid OS", | ||
| "downgradeOs.pleaseFinishTheInitiatedUpdateTo": "Будь ласка, завершіть ініційоване оновлення, щоб увімкнути зниження версії.", | ||
| "headerArrayUsage.array": "Масивом", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
printf 'Locate locale files:\n'
fd -a 'uk\.json$' . | sed 's#^\./##'
printf '\nInspect target entry and nearby keys:\n'
python3 - <<'PY'
import json
from pathlib import Path
p = Path('web/src/locales/uk.json')
if not p.exists():
# try find
for path in Path('.').rglob('uk.json'):
if 'web/src' in str(path):
p = path
break
print(p)
data = json.loads(p.read_text())
print(type(data))
if isinstance(data, dict):
print(data.get('headerArrayUsage'))
for k, v in data.items():
if 'headerArrayUsage' in k or k == 'array' or k.endswith('.array'):
print(f'{k}: {v}')
else:
head = data[:50] if isinstance(data, list) else None
print(head)
PY
printf '\nSearch for headerArrayUsage/headerArrayUsage array references:\n'
rg -n 'headerArrayUsage|headerArrayUsage\.array|headerArrayUsage' web/src -S || trueRepository: unraid/api Length of output: 5886 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf 'Find source keys/components mentioning HeaderArrayUsage or headerArrayUsage:\n'
rg -n 'HeaderArrayUsage|headerArrayUsage|headerArrayUsage\.array|T\(' web/src -S --glob '!**/locales/**/*.json' -g '*.tsx' -g '*.ts' -g '*.js' -g '*.jsx' || true
printf '\nLocate language-related files:\n'
fd -i 'language|locale|i18n|translation|localization' web/src | sed 's#^\./##' | head -80Repository: unraid/api Length of output: 539 🏁 Script executed: #!/bin/bash
set -euo pipefail
printf 'i18n loader and util snippets:\n'
wc -l web/src/helpers/i18n-loader.ts web/src/helpers/i18n-utils.ts
sed -n '1,220p' web/src/helpers/i18n-loader.ts
printf '\n--- i18n-utils ---\n'
sed -n '1,220p' web/src/helpers/i18n-utils.ts
printf '\nFind headerArrayUsage in all tracked source files:\n'
git ls-files | rg '\.(m?js|tsx?|vue|jsx)$' | xargs rg -n 'headerArrayUsage|HeaderArrayUsage|headerArrayUsage\.array' -S || trueRepository: unraid/api Length of output: 4804 Use the nominative Ukrainian label.
🤖 Prompt for AI Agents |
||
| "headerArrayUsage.offline": "Не в мережі", | ||
| "headerArrayUsage.usedOfArray": "Використано {0}% масиву", | ||
| "headerOsVersion.apiVersionCopiedToClipboard": "Версія API скопійована в буфер обміну", | ||
| "headerOsVersion.osVersionCopiedToClipboard": "Версія OS скопійована в буфер обміну", | ||
| "headerOsVersion.unraidApi": "Unraid API", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: unraid/api
Length of output: 355
🏁 Script executed:
Repository: unraid/api
Length of output: 7682
🌐 Web query:
ICU NumberFormat percent symbol position Arabic numberFormat percent percentSignBeforeNumber locale💡 Result:
In ICU (International Components for Unicode), the positioning of the percent sign (%) is locale-dependent and is determined by the locale's CLDR (Common Locale Data Repository) data [1][2]. For the Arabic locale (ar), the percent sign is conventionally placed after the number (when read in the direction of the script) to reflect correct linguistic and typographic standards [3][4][5]. Key points regarding ICU number formatting and the percent sign: 1. Locale-Driven Positioning: ICU automatically handles the placement of the percent sign based on the provided locale [6][7]. When you use a percent instance of NumberFormat (e.g., NumberFormat.getPercentInstance(new Locale("ar"))), ICU selects the correct pattern from the locale's data [4][2]. In the Arabic locale, this pattern is configured so the percent sign appears in the correct position for Right-to-Left (RTL) text rendering [3][4]. 2. CLDR Configuration: The specific pattern used for percentages is stored in the CLDR data for each locale [4][2]. For Arabic, the pattern is defined to ensure the percent sign (which may be the standard '%' or the Arabic-specific '٪') is placed appropriately relative to the digits [4][5]. 3. Handling Issues: If you encounter an issue where the percent sign appears at the "start" of the string (e.g., %100) instead of the "end" (100%), it is often due to how the resulting string is rendered in a UI component rather than the ICU formatting itself [3]. Because Arabic is an RTL language, the visual ordering is handled by the Bidi (bidirectional) algorithm [3][5]. Simply concatenating the percent sign to a number can bypass this logic, causing it to render incorrectly [3]. To ensure correct display, it is recommended to let ICU's NumberFormatter perform the full formatting of the number and the percent sign as a single unit [7]. 4. Numbering Systems: ICU also supports different numbering systems (e.g., Western digits vs. Arabic-Indic digits) [6][8][2]. You can specify the numbering system using the
u-nu-extension (e.g.,ar-u-nu-latnfor Arabic language with Western digits) [2]. The percent sign's position remains consistent with the chosen locale's conventions regardless of the numbering system used [9]. There is no "percentSignBeforeNumber" configuration setting in the ICU API because the position is inherently defined by the locale's data for consistency and correctness [1][2]. If manual formatting is required, you should use the symbols provided by DecimalFormatSymbols for that specific locale to maintain accuracy [8][9].Citations:
🏁 Script executed:
Repository: unraid/api
Length of output: 11035
🌐 Web query:
CLDR Arabic percentage symbol after_number or before_number ICU ar.txt percent💡 Result:
In the Unicode Common Locale Data Repository (CLDR) and the ICU (International Components for Unicode) library, the percentage format for the Arabic (
ar) locale is defined with the percent symbol placed after the number [1][2]. The standard percent pattern for the Arabic locale is defined as#,##0%[1][2]. When rendered in a Right-to-Left (RTL) context, this pattern results in the percent symbol (the Arabic percent sign٪) appearing to the left of the number [3]. Technical details: - Pattern: The CLDR pattern#,##0%instructs the formatter to place the percent sign adjacent to the number [4][5]. - Symbol: The Arabic locale uses the specific ARABIC PERCENT SIGN (U+066A,٪) rather than the ASCII percent sign (%) [5][6]. - Behavior: Because Arabic is an RTL script, placing the sign "after" the number in the data pattern results in the symbol being displayed on the left side of the number visually [3]. While the CLDR data defines the default, implementations may vary depending on the specific rendering engine or if Western numerals (0-9) are used instead of Arabic-Indic digits [3]. However, the core library configuration inar.txtmaintains the#,##0%pattern [2].Citations:
Use percentage interpolation for Arabic usage labels.
"%{0}"bypasses%formatting and may display the sign before the value in Arabic; render the value as a locale-aware percentage instead of interpolating%{0}into the translation.🤖 Prompt for AI Agents