l10n-2.55.0-v1
-----BEGIN PGP SIGNATURE----- iQJPBAABCAA5FiEE37vMEzKDqYvVxs51k24VDd1FMtUFAmpBBXgbFIAAAAAABAAO bWFudTIsMi41KzEuMTIsMCwzAAoJEJNuFQ3dRTLVKN8QAJfOm5oM21vsH6ONo4QO u89j0ynacQI0rvQNLa9yGrR7vZumPQQKETwBulWTZLpQ0BrWev69LwpTZFVjQBp0 JxXvUW5FiHKQx+tSPT2SeNkMR3eHWxEFcyCP3QMnAbV5GFRRTnOr9ajRVI/b3Fi3 5xP2dgQW0F8oiuMAX/6osqwjjqO8qAAxtnX/+ecw2KPQ8ddgJsWPdAkWnAG7Ctnu ff5jxOJ4ECAvsV5eywr2Ea1MOT032nsRX6Yaf6JIfdpU2oZzhCaVXgJwVkjKn/8c mdEvaEZGSXPn969PEV3bsUEUEV7kgBt5wdWHRX5bGjwfXv/MKVnXZz/OQjlIa/pP Pzpbi8jRSVCNXBi1kOpqVIOP3yndrYPh103juue5LEwyxsctmmvOtvB2t8Q3pY6G /baSLDKp8GGi8x0h61D+lGAToK05YWafx95pZlxuwdd27ShJWaE6cknMkirJl9yD IkihgCWxrCZmRX32YstZsV3FrvsT1GUwLEXm31IHfFRLp+76oVympgQh1r2qttCo zMRPdo8ECZ9jwZ7OeCjshmAzgGzhuiwURZnYaPG/BC9wKqPDRmaUp8oKSjYreNgy IuBUt/bOJO/y8ut6KZvMhpbJnOlULrOnHWDWqm2IfY+7+PLSD6uoodtbWf7ISUeP k4eqg5pJX/q0t+uo8I0Z9Xqb =M5pa -----END PGP SIGNATURE----- Merge tag 'l10n-2.55.0-v1' of https://github.com/git-l10n/git-po l10n-2.55.0-v1 * tag 'l10n-2.55.0-v1' of https://github.com/git-l10n/git-po: l10n: zh-TW.po: Update Chinese (Traditional) translation l10n: uk: add 2.55 translation l10n: ga.po: update for Git 2.55 l10n: fr: mass fix of typos l10n: fr: version 2.55 l10n: po-id for 2.55 l10n: AGENTS.md: add quotation mark preservation guidelines l10n: zh_CN: updated translation for 2.55 l10n: TEAMS: change Simplified Chinese team leader l10n: sv.po: Update Swedish translation l10n: ca.po: update Catalan translation l10n: tr: Update Turkish translations l10n: bg.po: Updated Bulgarian translation (6322t) l10n: it: fix italian usage messages alignmentmain
commit
9aa172cd1f
51
po/AGENTS.md
51
po/AGENTS.md
|
|
@ -127,6 +127,52 @@ etc.), and quotes exactly as in `msgid`. Only reorder placeholders with
|
|||
positional syntax when needed (see Placeholder Reordering below).
|
||||
|
||||
|
||||
### Preserving Quotation Marks
|
||||
|
||||
Some languages use language-specific UTF-8 quotation marks (curly/smart
|
||||
quotes) rather than ASCII straight quotes. **Always preserve these
|
||||
characters exactly as they appear in the source.** Do **not** convert them
|
||||
to ASCII straight quotes.
|
||||
|
||||
**Protected quotation marks** (non-exhaustive list):
|
||||
|
||||
| Character | Unicode | Name | Languages |
|
||||
|-----------|---------|------|-----------|
|
||||
| „ | U+201E | DOUBLE LOW-9 QUOTATION MARK | Bulgarian, German, etc. |
|
||||
| " | U+201C | LEFT DOUBLE QUOTATION MARK | Bulgarian, etc. |
|
||||
| " | U+201D | RIGHT DOUBLE QUOTATION MARK | English, German, etc. |
|
||||
| ' | U+2018 | LEFT SINGLE QUOTATION MARK | English, etc. |
|
||||
| ' | U+2019 | RIGHT SINGLE QUOTATION MARK | English, etc. |
|
||||
| « | U+00AB | LEFT-POINTING DOUBLE ANGLE QUOTATION MARK | French, Russian, etc. |
|
||||
| » | U+00BB | RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK | French, Russian, etc. |
|
||||
| ‹ | U+2039 | SINGLE LEFT-POINTING ANGLE QUOTATION MARK | French, etc. |
|
||||
| › | U+203A | SINGLE RIGHT-POINTING ANGLE QUOTATION MARK | French, etc. |
|
||||
|
||||
**Why this matters in PO files**: In PO file format, the ASCII straight
|
||||
double quote `"` (U+0022) is the **string delimiter**. If a translation
|
||||
contains a curly quote that is incorrectly converted to `"` (U+0022),
|
||||
the PO parser will interpret it as the end of the string, causing:
|
||||
|
||||
1. **String truncation**: The `msgstr` value is cut short at the
|
||||
spurious quote character.
|
||||
2. **Syntax errors**: `msgfmt --check` fails with parse errors at
|
||||
the line where the string was prematurely terminated.
|
||||
3. **Data loss**: Content after the accidental quote delimiter is
|
||||
misinterpreted or lost.
|
||||
|
||||
**Rules**:
|
||||
|
||||
- **Never** replace language-specific quotation marks with ASCII
|
||||
straight quotes `"` (U+0022) or `'` (U+0027).
|
||||
- Apply this rule when translating PO files, PO multi-line strings,
|
||||
and GETTEXT JSON `msgstr` array values.
|
||||
- Apply this rule when generating suggested translations
|
||||
(`suggest_msgstr`) during review.
|
||||
- If the source `msgid` uses ASCII straight quotes, preserve them
|
||||
as-is in the translation unless the target language convention
|
||||
requires different quotation marks.
|
||||
|
||||
|
||||
### Placeholder Reordering
|
||||
|
||||
When reordering placeholders relative to `msgid`, use positional syntax (`%n$`)
|
||||
|
|
@ -387,7 +433,10 @@ read and write this format.
|
|||
- **Placeholders**: Preserve variables (`%s`, `{name}`, `$1`) exactly; use
|
||||
positional parameters when reordering (see "Placeholder Reordering" above).
|
||||
- **Special characters**: Preserve escape sequences (`\n`, `\"`, `\\`, `\t`),
|
||||
placeholders exactly as in `msgid`. See "Preserving Special Characters" above.
|
||||
placeholders exactly as in `msgid`. Preserve language-specific quotation
|
||||
marks (curly/smart quotes like „, ", ", ', ') — do not convert them to
|
||||
ASCII straight quotes. See "Preserving Special Characters" and
|
||||
"Preserving Quotation Marks" above.
|
||||
- **Plurals and gender**: Correct forms and agreement.
|
||||
- **Context fit**: Suitable for UI space, tone, and use (e.g. error vs. tooltip).
|
||||
- **Cultural appropriateness**: No offensive or ambiguous content.
|
||||
|
|
|
|||
6
po/TEAMS
6
po/TEAMS
|
|
@ -83,12 +83,12 @@ Members: Trần Ngọc Quân <vnwildman AT gmail.com>
|
|||
Nguyễn Thái Ngọc Duy <pclouds AT gmail.com>
|
||||
|
||||
Language: zh_CN (Simplified Chinese)
|
||||
Repository: https://github.com/dyrone/git/
|
||||
Leader: Teng Long <dyroneteng AT gmail.com>
|
||||
Repository: https://github.com/lilydjwg/git-po
|
||||
Leader: 依云 <lilydjwg AT gmail.com>
|
||||
Members: Ray Chen <oldsharp AT gmail.com>
|
||||
依云 <lilydjwg AT gmail.com>
|
||||
Fangyi Zhou <me AT fangyi.io>
|
||||
Jiang Xin <worldhello.net AT gmail.com>
|
||||
Teng Long <dyroneteng AT gmail.com>
|
||||
|
||||
Language: zh_TW (Traditional Chinese)
|
||||
Repository: https://github.com/l10n-tw/git-po
|
||||
|
|
|
|||
2
po/it.po
2
po/it.po
|
|
@ -5400,7 +5400,7 @@ msgstr "uso: %s"
|
|||
#: parse-options.c:915
|
||||
#, c-format
|
||||
msgid " or: %s"
|
||||
msgstr " oppure: %s"
|
||||
msgstr " o: %s"
|
||||
|
||||
#: parse-options.c:918
|
||||
#, c-format
|
||||
|
|
|
|||
1032
po/zh_CN.po
1032
po/zh_CN.po
File diff suppressed because it is too large
Load Diff
2259
po/zh_TW.po
2259
po/zh_TW.po
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue