--- /dev/null
+# Git Attributes for PO Files
+#
+# This file configures Git filters to automatically strip location information
+# from PO files when committing, producing cleaner diffs and saving repository
+# space.
+#
+# Two filter types are used:
+# 1. gettext-no-location: Strips both filenames and line numbers
+# (e.g., removes "#: main.c:123" entirely)
+# 2. gettext-no-line-number: Preserves filenames but removes line numbers, which
+# requires gettext 0.20 or higher
+# (e.g., "#: main.c:123" becomes "#: main.c")
+#
+# See `po/README.md` for instructions on setting up the required filter drivers.
+
+# Default: Strip the whole location comments for all .po files
+*.po filter=gettext-no-location
+
+# Legacy, unmaintained PO files: filter disabled to avoid index vs
+# working-tree mismatch (these files still have location comments).
+el.po -filter
+is.po -filter
+it.po -filter
+ko.po -filter
+pl.po -filter
+pt_PT.po -filter
+
+# These files use gettext-no-line-number (keep filenames, strip line
+# numbers). The choice is per l10n team preference. Requires gettext 0.20+.
+# The only benefit is locating source files from location comments when
+# the .po file is not updated from the POT via make po-update.
+ca.po filter=gettext-no-line-number
+id.po filter=gettext-no-line-number
+zh_CN.po filter=gettext-no-line-number
+zh_TW.po filter=gettext-no-line-number
and these location lines will help translation tools to locate
translation context easily.
-Once you are done testing the translation (see below), it's better
-to commit a location-less "po/XX.po" file to save repository space
-and make a user-friendly patch for review.
-
-To save a location-less "po/XX.po" automatically in repository, you
-can:
-
-First define a new attribute for "po/XX.po" by appending the following
-line in ".git/info/attributes":
-
-```
-/po/XX.po filter=gettext-no-location
-```
-
-Then define the driver for the "gettext-no-location" clean filter to
-strip out both filenames and locations from the contents as follows:
-
-```shell
-git config --global filter.gettext-no-location.clean \
- "msgcat --no-location -"
-```
-
-For users who have gettext version 0.20 or higher, it is also possible
-to define a clean filter to preserve filenames but not locations:
-
-```shell
-git config --global filter.gettext-no-location.clean \
- "msgcat --add-location=file -"
-```
-
-You're now ready to ask the l10n coordinator to pull from you.
-
## Fuzzy translation
```
+## Preparing a "XX.po" file for commit
+
+Once you are done testing the translation, it's better to commit a
+location-less "po/XX.po" file to save repository space and make a
+user-friendly patch for review.
+
+To save a location-less "po/XX.po" automatically in the repository,
+follow these steps:
+
+First, check which filter is configured for your "po/XX.po" file:
+
+```
+git check-attr filter po/XX.po
+```
+
+The filter configuration is defined in the "po/.gitattributes" file.
+
+Then define the driver for the filter. Most languages use the
+"gettext-no-location" clean filter, which strips out both filenames and line
+numbers from location comments. To set this up, run the following command:
+
+```shell
+git config --global filter.gettext-no-location.clean \
+ "msgcat --no-location -"
+```
+
+Some PO files use the "gettext-no-line-number" clean filter, which keeps
+filenames but strips line numbers. This filter requires gettext 0.20 or
+later. The only benefit is being able to locate source files from location
+comments when the .po file is not updated from the POT via `make po-update`.
+
+```shell
+git config --global filter.gettext-no-line-number.clean \
+ "msgcat --add-location=file -"
+```
+
+You're now ready to ask the l10n coordinator to pull from you.
+
+
## Marking strings for translation
(This is done by the core developers).
#, c-format
msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Descarta el canvi de mode de l'índex i de l'arbre de treball [y,n,q,a,d"
-"%s,?]? "
+"Descarta el canvi de mode de l'índex i de l'arbre de treball "
+"[y,n,q,a,d%s,?]? "
#: add-patch.c
#, c-format
#: builtin/branch.c
msgid ""
-"branch with --recurse-submodules can only be used if submodule."
-"propagateBranches is enabled"
+"branch with --recurse-submodules can only be used if "
+"submodule.propagateBranches is enabled"
msgstr ""
-"la branca amb --recurse-submodules només es pot utilitzar si submodule."
-"propagateBranches està habilitat"
+"la branca amb --recurse-submodules només es pot utilitzar si "
+"submodule.propagateBranches està habilitat"
#: builtin/branch.c
msgid "--recurse-submodules can only be used to create branches"
#: builtin/fetch.c
msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialclone"
+"--filter can only be used with the remote configured in "
+"extensions.partialclone"
msgstr ""
-"--filter només es pot utilitzar amb el remot configurat en extensions."
-"partialclone"
+"--filter només es pot utilitzar amb el remot configurat en "
+"extensions.partialclone"
#: builtin/fetch.c
msgid "--atomic can only be used when fetching from one remote"
"| -C) <object>] [<object>] [-e]"
msgstr ""
"git notes [--ref <referència-notes>] add [-f] [--allow-empty] [--"
-"[no-]separator|--separator=<salt-paràgraf>] [--[no-]stripspace] [-m <msg> | -"
-"F <fitxer> | (-c | -C) <objecte>] [<objecte>]"
+"[no-]separator|--separator=<salt-paràgraf>] [--[no-]stripspace] [-m <msg> | "
+"-F <fitxer> | (-c | -C) <objecte>] [<objecte>]"
#: builtin/notes.c
msgid "git notes [--ref <notes-ref>] copy [-f] <from-object> <to-object>"
"| -C) <object>] [<object>] [-e]"
msgstr ""
"git notes [--ref <referència-notes>] append [--allow-empty] [--"
-"[no-]separator|--separator=<salt-paràgraf>] [--[no-]stripspace] [-m <msg> | -"
-"F <fitxer> | (-c | -C) <objecte>] [<objecte>] [-e]"
+"[no-]separator|--separator=<salt-paràgraf>] [--[no-]stripspace] [-m <msg> | "
+"-F <fitxer> | (-c | -C) <objecte>] [<objecte>] [-e]"
#: builtin/notes.c
msgid "git notes [--ref <notes-ref>] edit [--allow-empty] [<object>]"
#: builtin/rebase.c
#, c-format
msgid ""
-"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and \"stop"
-"\"."
+"unrecognized empty type '%s'; valid values are \"drop\", \"keep\", and "
+"\"stop\"."
msgstr ""
"tipus buit «%s» no reconegut; els valors vàlids són \"drop\", \"keep\" i "
"\"stop\"."
msgstr ""
"Els reempaquetaments incrementals són incompatibles amb els índexs de mapes "
"de bits. Useu\n"
-"--no-write-bitmap-index o inhabiliteu el paràmetre de configuració pack."
-"writeBitmaps."
+"--no-write-bitmap-index o inhabiliteu el paràmetre de configuració "
+"pack.writeBitmaps."
#: builtin/repack.c
msgid "could not start pack-objects to repack promisor objects"
#: commit-graph.c
#, c-format
msgid ""
-"attempting to write a commit-graph, but 'commitGraph."
-"changedPathsVersion' (%d) is not supported"
+"attempting to write a commit-graph, but 'commitGraph.changedPathsVersion' "
+"(%d) is not supported"
msgstr ""
-"s'ha intentat escriure un graf de comissió, però no s'admet 'commitGraph."
-"changedPathsVersion' (%d)"
+"s'ha intentat escriure un graf de comissió, però no s'admet "
+"'commitGraph.changedPathsVersion' (%d)"
#: commit-graph.c
msgid "too many commits to write graph"
#, c-format
msgid "multi-pack-index signature 0x%08x does not match signature 0x%08x"
msgstr ""
-"la signatura de l'índex multipaquet 0x%08x no coincideix amb la signatura 0x"
-"%08x"
+"la signatura de l'índex multipaquet 0x%08x no coincideix amb la signatura "
+"0x%08x"
#: midx.c
#, c-format
#, c-format, perl-format
msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"¿Aplicar cambio de modo para el índice y el árbol de trabajo [y,n,q,a,"
-"d%s,?]? "
+"¿Aplicar cambio de modo para el índice y el árbol de trabajo "
+"[y,n,q,a,d%s,?]? "
#, c-format, perl-format
msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
"=<term>] [--no-checkout] [--first-parent] [<bad> [<good>...]] [--] "
"[<paths>...]"
msgstr ""
-"git bisect--helper --bisect-start [--term-{new,bad}=<término> --term-{old,"
-"good}=<término>] [--no-checkout] [--first-parent] [<malo> [<bueno>...]] [--] "
-"[<rutas>...]"
+"git bisect--helper --bisect-start [--term-{new,bad}=<término> --term-"
+"{old,good}=<término>] [--no-checkout] [--first-parent] [<malo> [<bueno>...]] "
+"[--] [<rutas>...]"
msgid "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "git bisect--helper --bisect-state (bad|new) [<rev>]"
msgstr "¡HEAD no encontrado dentro de refs/heads!"
msgid ""
-"branch with --recurse-submodules can only be used if submodule."
-"propagateBranches is enabled"
+"branch with --recurse-submodules can only be used if "
+"submodule.propagateBranches is enabled"
msgstr ""
-"branch con --recurse-submodules solo se puede usar si submodule."
-"propagateBranches está habilitado"
+"branch con --recurse-submodules solo se puede usar si "
+"submodule.propagateBranches está habilitado"
msgid "--recurse-submodules can only be used to create branches"
msgstr "--recurse-submodules solo se puede usar para crear ramas"
msgstr "el protocolo no soporta --negotiate-only, saliendo"
msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialclone"
+"--filter can only be used with the remote configured in "
+"extensions.partialclone"
msgstr ""
-"--filter solo puede ser usado con el remoto configurado en extensions."
-"partialclone"
+"--filter solo puede ser usado con el remoto configurado en "
+"extensions.partialclone"
msgid "--atomic can only be used when fetching from one remote"
msgstr "--atomic solo se puede usar cuando se busca desde un control remoto"
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
-"deshabilitando escritura bitmap, paquetes son divididos debido a pack."
-"packSizeLimit"
+"deshabilitando escritura bitmap, paquetes son divididos debido a "
+"pack.packSizeLimit"
msgid "Writing objects"
msgstr "Escribiendo objetos"
msgid ""
"\n"
"To avoid automatically configuring upstream branches when their name\n"
-"doesn't match the local branch, see option 'simple' of branch."
-"autoSetupMerge\n"
+"doesn't match the local branch, see option 'simple' of "
+"branch.autoSetupMerge\n"
"in 'git help config'.\n"
msgstr ""
"\n"
#, c-format
msgid "Discard this hunk from index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"An bhfuil an píosa beag seo le fáil réidh ón innéacs agus ón gcrann oibre [y,"
-"n,q,a,d%s,?]? "
+"An bhfuil an píosa beag seo le fáil réidh ón innéacs agus ón gcrann oibre "
+"[y,n,q,a,d%s,?]? "
msgid ""
"y - discard this hunk from index and worktree\n"
#, c-format
msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Cuir athrú mód i bhfeidhm ar an innéacs agus ar an gcrann oibre [y,n,q,a,"
-"d%s,?]? "
+"Cuir athrú mód i bhfeidhm ar an innéacs agus ar an gcrann oibre "
+"[y,n,q,a,d%s,?]? "
#, c-format
msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
#, c-format
msgid "Apply addition to index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Cuir an breiseán i bhfeidhm ar an innéacs agus ar an gcrann oibre [y,n,q,a,"
-"d%s,?]? "
+"Cuir an breiseán i bhfeidhm ar an innéacs agus ar an gcrann oibre "
+"[y,n,q,a,d%s,?]? "
#, c-format
msgid "Apply this hunk to index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Cuir an píosa seo i bhfeidhm ar an innéacs agus ar an gcrann oibre [y,n,q,a,"
-"d%s,?]? "
+"Cuir an píosa seo i bhfeidhm ar an innéacs agus ar an gcrann oibre "
+"[y,n,q,a,d%s,?]? "
msgid ""
"y - apply this hunk to index and worktree\n"
msgstr "Ní fhaightear CEAD thíos na refs/heads!"
msgid ""
-"branch with --recurse-submodules can only be used if submodule."
-"propagateBranches is enabled"
+"branch with --recurse-submodules can only be used if "
+"submodule.propagateBranches is enabled"
msgstr ""
-"ní féidir brainse le --recurse-submodules a úsáid ach amháin má tá submodule."
-"propagateBranches cumasaithe"
+"ní féidir brainse le --recurse-submodules a úsáid ach amháin má tá "
+"submodule.propagateBranches cumasaithe"
msgid "--recurse-submodules can only be used to create branches"
msgstr "Ní féidir --recurse-submodules a úsáid ach chun brainsí a chruthú"
"'strip-if-invalid' is not a valid mode for git fast-export with --signed-"
"commits=<mode>"
msgstr ""
-"'strip-if-invalid' ní mód bailí é seo le haghaidh easpórtáil le haghaidh git fast-export le --signed-"
-"commits=<mód>"
+"'strip-if-invalid' ní mód bailí é seo le haghaidh easpórtáil le haghaidh git "
+"fast-export le --signed-commits=<mód>"
#, c-format
msgid ""
"'strip-if-invalid' is not a valid mode for git fast-export with --signed-"
"tags=<mode>"
msgstr ""
-"'strip-if-invalid' ní mód bailí é seo le haghaidh git fast-export le --signed-"
-"tags=<mode>"
+"'strip-if-invalid' ní mód bailí é seo le haghaidh git fast-export le --"
+"signed-tags=<mode>"
#, c-format
msgid ""
msgstr "ní thacaíonn an prótacal le --negotiate-only, ag scoir"
msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialclone"
+"--filter can only be used with the remote configured in "
+"extensions.partialclone"
msgstr ""
"--filter Ní féidir ach an scagaire a úsáid ach leis an iargúlta cumraithe in "
"extensions.partialclone"
msgid ""
"skipping incremental-repack task because core.multiPackIndex is disabled"
msgstr ""
-"ag scipeáil an tasc athphacála incriminteach mar go bhfuil core."
-"multiPackIndex díchumasaithe"
+"ag scipeáil an tasc athphacála incriminteach mar go bhfuil "
+"core.multiPackIndex díchumasaithe"
msgid "failed to perform geometric repack"
msgstr "theip ar athphacáil gheoiméadrach a dhéanamh"
msgid "disabling bitmap writing, packs are split due to pack.packSizeLimit"
msgstr ""
-"scríobh bitmap a dhíchumasú, roinntear pacáistí mar gheall ar pack."
-"packSizeLimit"
+"scríobh bitmap a dhíchumasú, roinntear pacáistí mar gheall ar "
+"pack.packSizeLimit"
msgid "Writing objects"
msgstr "Rudaí a scríobh"
msgstr ""
"Tá tagairtí contrártha sa\n"
"tagarmharc sprice nua ag an gcianrialtán atá tú ag iarraidh a athainmniú. Is "
-"dóichí gur mar gheall ar iarracht a dhéanamh cianrialtán a neadú ann féin, e."
-"g. trí 'tuismitheoir' a athainmniú go 'tuismitheoir/leanbh'\n"
+"dóichí gur mar gheall ar iarracht a dhéanamh cianrialtán a neadú ann féin, "
+"e.g. trí 'tuismitheoir' a athainmniú go 'tuismitheoir/leanbh'\n"
"nó trí chianrialtán a dhí-neadú, e.g. an bealach eile.\n"
"\n"
"Más amhlaidh atá, is féidir leat é seo a réiteach tríd an\n"
#, c-format
msgid ""
-"attempting to write a commit-graph, but 'commitGraph."
-"changedPathsVersion' (%d) is not supported"
+"attempting to write a commit-graph, but 'commitGraph.changedPathsVersion' "
+"(%d) is not supported"
msgstr ""
-"ag iarraidh commit-graph a scríobh, ach tá 'commitGraph."
-"changedPathsVersion' (%d) ní thacaítear leis"
+"ag iarraidh commit-graph a scríobh, ach tá 'commitGraph.changedPathsVersion' "
+"(%d) ní thacaítear leis"
msgid "too many commits to write graph"
msgstr "an iomarca gealltanais graf a scríobh"
"given pattern contains NULL byte (via -f <file>). This is only supported "
"with -P under PCRE v2"
msgstr ""
-"tá byte NULL (trí -f<file>) i bpatrún tugtha. Ní thacaítear leis seo ach le -"
-"P faoi PCRE v2"
+"tá byte NULL (trí -f<file>) i bpatrún tugtha. Ní thacaítear leis seo ach le "
+"-P faoi PCRE v2"
#, c-format
msgid "'%s': unable to read %s"
msgstr ""
"Rinneadh neamhaird ar an gcroca '%s' toisc nach bhfuil sé socraithe mar "
"infheidhmithe.\n"
-"Is féidir leat an rabhadh seo a dhíchumasú le `git config set advice."
-"ignoredHook false `."
+"Is féidir leat an rabhadh seo a dhíchumasú le `git config set "
+"advice.ignoredHook false `."
msgid "not a git repository"
msgstr "ní stór git é"
#, c-format
msgid "Discard mode change from index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Отменить изменения режима доступа в индексе и рабочем каталоге [y,n,q,a,"
-"d%s,?]? "
+"Отменить изменения режима доступа в индексе и рабочем каталоге "
+"[y,n,q,a,d%s,?]? "
#, c-format
msgid "Discard deletion from index and worktree [y,n,q,a,d%s,?]? "
#, c-format
msgid "Apply mode change to index and worktree [y,n,q,a,d%s,?]? "
msgstr ""
-"Применить изменения режима доступа к индексу и рабочему каталогу [y,n,q,a,"
-"d%s,?]? "
+"Применить изменения режима доступа к индексу и рабочему каталогу "
+"[y,n,q,a,d%s,?]? "
#, c-format
msgid "Apply deletion to index and worktree [y,n,q,a,d%s,?]? "
msgstr "HEAD не найден в refs/heads!"
msgid ""
-"branch with --recurse-submodules can only be used if submodule."
-"propagateBranches is enabled"
+"branch with --recurse-submodules can only be used if "
+"submodule.propagateBranches is enabled"
msgstr ""
msgid "--recurse-submodules can only be used to create branches"
"clean.requireForce defaults to true and neither -i, -n, nor -f given; "
"refusing to clean"
msgstr ""
-"clean.requireForce установлен по умолчанию как true и ни одна из опций -i, -"
-"n или -f не указана; отказ очистки"
+"clean.requireForce установлен по умолчанию как true и ни одна из опций -i, "
+"-n или -f не указана; отказ очистки"
msgid "-x and -X cannot be used together"
msgstr "нельзя использовать одновременно -x и -X"
msgstr ""
msgid ""
-"--filter can only be used with the remote configured in extensions."
-"partialclone"
+"--filter can only be used with the remote configured in "
+"extensions.partialclone"
msgstr ""
msgid "--atomic can only be used when fetching from one remote"
msgid "Please stage your changes to .gitmodules or stash them to proceed"
msgstr ""
-"Чтобы продолжить, проиндексируйте или спрячьте ваши изменения в файле ."
-"gitmodules"
+"Чтобы продолжить, проиндексируйте или спрячьте ваши изменения в "
+"файле .gitmodules"
#, c-format
msgid "%.*s is in index"
msgstr ""
"Перехватчик «%s» был проигнорирован, так как он не установлен как "
"исполняемый.\n"
-"Вы можете отключить это предупреждение с помощью команды «git config advice."
-"ignoredHook false»."
+"Вы можете отключить это предупреждение с помощью команды «git config "
+"advice.ignoredHook false»."
#, c-format
msgid "argument to --packfile must be a valid hash (got '%s')"