Opsætningsfil

Introduktion

Crowdin CLI uses a configuration file that contains a description of the resources to manage: files to be uploaded into Crowdin and the locations of the corresponding translations.

For at benytte Crowdin-CLI skal du først generere din opsætningsfil og herefter afvikle værktøjet. Som standard ser Crowdin-CLI efter en opsætningsfil med navnet crowdin.yml (filnavnet behøves derfor ikke angivet, medmindre dette ikke er crowdin.yml).

Afvikl flg. kommando for at oprette opsætningsfilen:

$ crowdin lint

Opsætningsfilstruktur

A valid Crowdin CLI configuration file has the following structure, so please ensure that you fill out all the needed information:

  • Filhoved med projektakkreditiver, præferencer og adgangsoplysninger
  • Et filmatrixelement, der beskriver et sæt kilde- og oversættelsesfiler, du vil håndtere
  • Obligatoriske felter i filermatrixerne: Kilde, der definerer filtre for kildefilerne samt Oversættelse med instrukser om, hvor de oversatte filer skal gemmes, eller hvor der skal søges efter allerede eksisterende oversættelser, såfremt disse skal uploades under opsætningen af CLI

Oprettelse af en simpel opsætningsfil

En typisk opsætningsfil vil ligne flg. eksempel:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"preserve_hierarchy": true
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/locale/en/folder1/[0-2].txt",                                       #source files filter
    "translation": "/locale/%two_letters_code%/folder1/%original_file_name%"        #where translations are stored
  },
  {
    "source": "/locale/en/folder2/[0-2].txt",
    "translation": "/locale/%two_letters_code%/folder2/%original_file_name%"
  }
]

For at køre ovenstående opsætningsfil og uploade kildefiler til Crowdin:

$ crowdin upload sources -b

Hent oversættelser fra Crowdin og placér dem de rigtige steder:

$ crowdin download

API-akkreditiver fra miljøvariabler

Du kan indlæse API-akkreditiverne fra en miljøvariabel, f.eks.:

"project_id_env": "CROWDIN_PROJECT_ID"
"api_token_env": "CROWDIN_PERSONAL_TOKEN"
"base_path_env": "CROWDIN_BASE_PATH"
"base_url_env": "CROWDIN_BASE_URL"

Hvis blandet, prioriteres api_token samt project_id:

"project_id_env": "CROWDIN_PROJECT_ID"      # Low priority
"api_token_env": "CROWDIN_PERSONAL_TOKEN"   # Low priority
"base_path_env": "CROWDIN_BASE_PATH"        # Low priority
"base_url_env": "CROWDIN_BASE_PATH"         # Low priority
"project_id": "projectId"                   # High priority
"api_token": "personal-access-token"        # High priority
"base_path": "/project-base-path"           # High priority
"base_url": "https://api.crowdin.com"       # High priority

Split projektopsætning og API-referencer

The crowdin.yml file contains a description of the resources to manage and API credentials (project_id, api_token, base_path, base_url). Dvs., at det er risikabelt at lagre denne fil i kodedepotet, da API-nøglen vil være tilgængelig for andre brugere. Crowdin-CLI understøtter to typer opsætningsfiler:

  • en beskrivelse af ressourcerne til håndtering, som befinder sig i projektmappen
  • API credentials, probably residing in $HOME/.crowdin.yml
Bemærk: API-akkreditiver fra opsætningsfilen .crowdin.ymlhar højere prioritet end akkreditiver fra projektmappen (crowdin.yml).

Er der behov for at afvikle en kommando med brugerspecifikke akkreditiver (f.eks. upload-kilder). så eksekvér flg. kommando:

$ crowdin upload sources --identity 'path-to-user-credentials-file'

Er den brugerspecifikke akkreditivfil placeret i $HOME/.crowdin.yml, kan man eksekvere:

$ crowdin upload sources -b

Generel opsætning

Den ovenfor viste prøveopsætning har kilde- og oversættelsesattributter indeholdende standard jokertegn (også betegnet globbing mønstre) for at gøre det nemmere at arbejde med flere filer.

Her er mønstre, du kan bruge:

* (stjerne)

Repræsenterer et hvilket som helst tegn i fil- eller mappenavnet. Angives en “*.json”, vil den indeholde alle filer, såsom “messages.json”, “about_us.json” og alt af filtypen “.json”.

*** (dobbeltstjerne)

Matcher enhver streng rekursivt (inkl. undermapper). Bemærk, at *** kan benyttes i både kilde- og oversættelsesmønstre. Vha. *** i oversættelsesmønsteret vil det altid indeholde en understi fra kilden til en bestemt fil. Der kan f.eks. benyttes kilden: ‘/da/*.po’ for rekursivt at uploade alle *.po-filer til Crowdin. Oversættelsesmønsteret vil være ‘/%two_letters_code%/\/%original_file_name%’.

? (question mark)

Matcher ethvert enkelttegn.

[set]

Matcher ethvert enkelttegn i et sæt. Opfører sig nøjagtig som tegnsæt i Regexp, herunder negation ([^a-z]).

\ (backslash)

Escaper det næste metategn.

Pladsholdere

Crowdin-CLI gør det muligt at benytte flg. pladsholdere til at indsætte passende variabler i det resulterende filnavn:

Navn Beskriveslse
%original_file_name% Oprindeligt filnavn
%original_path% Benyt overordnede mappers navne i Crowdin-projektet til at generere filstien i det resulterende bundt
%file_extension% Oprindeligt filtypenavn
%file_name% Filnavn uden fiíltypeangivelse
%language% Sprognavn (f.eks. Dansk)
%two_letters_code% Sprogkode ISO 639-1 (f.eks.. da)
%three_letters_code% Sprogkode ISO 639-2/T (f.eks. dan)
%locale% Landestandard (f.eks. da-DK)
%locale_with_underscore% Landestandard (f.eks. da_DK)
%android_code% Android Landestandard-ID benyttes ved navngivning af "værdier"-mapper
%osx_code% OS X-landestandard-ID benyttet ved navngivning af ".lproj"-mapper
%osx_locale% OS X-landestandard benyttet til navngivning af oversættelsesressourcer (f.eks. uk, zh-Hans, zh_HK)

Du kan også definere stien til filer i det resulterende depot ved at sætte et skråstreg (/) i starten af mønsteret.

Din oversættelsesindstilling kan se ud som: “/ locale /%two_letters_code%/ LC_MESSAGES /%original_file_name%”.

Brug af jokertegn

Opbygning af filer og mapper på den lokale maskine:

- base_path | |-- folder |     | |     |-- 1.xml |     |-- 1.txt |     |-- 123.txt |     |-- 123_test.txt |     |-- a.txt |     |-- a1.txt |     |-- crowdin?test.txt |     |-- crowdin_test.txt | |-- 1.xml |-- 1.txt |-- 123.txt |-- 123_test.txt |-- a.txt |-- a1.txt |-- crowdin?test.txt |-- crowdin_test.txt |-- 3.txt

Eksempel 1. Brug af jokertegn i kildestien:

#........din projektkonfiguration........
"files": [
  {
      "source": "/**/?[0-9].txt", #upload a1.txt, mappe/a1.txt
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/*\\?*.txt",  #upload crowdin?test.txt, mappe/crowdin?test.txt
      "translation": "/**/%two_letters_code%_%original_file_name%"
  },
  {
      "source": "/**/[^0-2].txt", #upload 3.txt, mappe/3.txt, a.txt, folder/a.txt (ignore 1.txt, folder/1.txt)
      "translation": "/**/%two_letters_code%_%original_file_name%"
  }
]

Eksempel 2. Brug af jokertegn til ignorering af filer:

#........din projektkonfiguration........
"files": [
  {
    "source": "/**/*.*",                             #upload alle filer fra base_path
    "translation": "/**/%two_letters_code%_%original_file_name%",
    "ignore": [
      "/**/%two_letters_code%_%original_file_name%", #ignorér de oversatte filer
      "/**/?.txt",                                   #ignorér 1.txt, a.txt, folder/1.txt, mappe/a.txt
      "/**/[0-9].txt",                               #ignorér 1.txt, mappe/1.txt
      "/**/*\\?*.txt",                               #ignorér crowdin?test.txt, folder/crowdin?test.txt
      "/**/[0-9][0-9][0-9].txt",                     #ignorér 123.txt , mappe½/123.txt
      "/**/[0-9]*_*.txt"                             #ignorér 123_test.txt, mappe/123_test.txt
    ]
  }
]

Sprogtilknytning

Ofte har softwareprojekter tilpassede navne til lokalmapper. Crowdin muliggør tilknytning af eget sprog mhp. at være genkendeligt i projekter.

Lad os antage, at dine lokalmapper er navngivet ‘en’, ‘uk’, ‘fr’, ‘de’. De kan alle repræsenteres af parameteren %two_letters_code%. Du har stadig en mappe med navnet ‘zh_CH’. Du kan også tilsidesætte sprogkoder for andre parametre såsom %android_code%, %locale% mv.

To make it work with Crowdin without changes in your project, you can set up Language Mapping via UI.

Omdøbe oversættelsesfil

Har du behov for at omdøbe en fil med oversættelser efter eksporten, kan du nemt gøre dette vha. parameteren translation_replace.

For example, if the file is named “strings_en.po”, it can be renamed to “strings.po”. For this, add a new parameter (at the same level as the translation parameter) to the configuration file (crowdin.yml):

"files": [
  {
    "source": "/locale/**/*_en.po",
    "translation": "/locale/**/%original_file_name%_%two_letters_code%",
    "translation_replace": {
      "_en": ""
    }
  }
]

I dette tilfælde slettes “_en” blot fra filnavnet.

Ignorere filer og mapper

Fra tid til anden er der filer og mapper i projektet, som ikke kræver oversættelse. I sådanne tilfælde kan lokale pr. fil-regler føjes til dit projekts config-fil.

"files": [
  {
    "source": "/**/*.properties",
    "translation": "/**/%file_name%_%two_letters_code%.%file_extension%",
    "ignore": [
      "/test/file.properties",
      "/example.properties"
    ]
  },
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "ignore": [
      "/locale/en/templates",
      "/locale/en/workflow"
    ]
  }
]

Udelukkelse af målsprog for kildefiler

Kildefilerne er som standard tilgængelige for oversættelse til alle projektmålsprog. Skal visse kildefiler ikke oversættes til bestemte målsprog, kan disse udelukkes vha. parameteren ekskluded_target_languages.

Opsætningsfileksempel:

"files": [
  {
    "source": "/resources/en/*.json",
    "translation": "/resources/%two_letters_code%/%original_file_name%",
    "excluded_target_languages": [
      "uk",
      "fr"
    ]
  }
]

Flerkolonneregneark

Indeholder en CSV- eller XLS-/XLSX-fil oversættelserne til alle målsprog, skal passende sprogkoder angives i scriptet.

CSV-fileksempel:

identifier,source_phrase,context,Ukrainian,Russian,French ident1,Source 1,Context 1,,, ident2,Source 2,Context 2,,, ident3,Source 3,Context 3,,,

Opsætningsfileksempel:

"files": [
  {
    "source": "multicolumn.csv",
    "translation": "multicolumn.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,context,uk,ru,fr"
  }
]

Indeholder CSV- eller XLS-/XLSX-filen kolonner, som skal overspringes under import, så angiv none for sådanne kolonner i skemaet, f.eks.:

"scheme" : "identifier,source_phrase,context,uk,none,ru,none,fr"

Skemakonstanter

Benyt flg. konstanter for at danne skemaet for CSV- eller XLS-/XLSX-filen:

identifier – Kolonne indeholder strengidentifikatorer.
source_phrase – Kolonne indeholder kildestrenge.
source_or_translation – Kolonnen indeholder kildestrenge, men udfyldes med oversættelser, når filen eksporteres. Når eksisterende oversættelser uploades, vil data fra denne kolonne blive brugt som oversættelser.
translations – Kolonne indeholder oversættelser.
context – Kolonne indeholder kommentarer eller kontekstoplysninger til kildestrengene.
max_length – Kolonne indeholder grænseværdierne max.length for strengoversættelserne.
labels – Kolonne indeholder etiketter til kildestrengene.
none – Kolonne, der overspringes under import.

Lagring af mappestruktur på server

"preserve_hierarchy": true

Eks. på opsætningsfil ved brug af preserve_hierarchy-muligheden:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%"
  }
]
Note: For VCS integrations, the default value of the preserve hierarchy option is true.

Let’s say the file/folder structure on your machine looks like this:

- locale | |-- en |-- emails |-- app |-- foo.po |-- bar.po

If you don’t use the "preserve_hierarchy": true option in your configuration file at all or use it with the false value, all shared directories will be skipped, and the file structure in Crowdin will be represented as follows:

- foo.po
- bar.po
Note: For VCS integrations, the "preserve_hierarchy": false option works only if your source files have a shared root directory.

Using the "preserve_hierarchy": true option, the file structure in Crowdin will be represented as follows:

- locale | |-- en |-- app |-- foo.po |-- bar.po

The directories that don’t contain any files for translation won’t be created in Crowdin (i.e., as the emails directory in the example above).

Upload af filer til angivet sti med angivet type

Denne funktion tilføjer understøttelse af 2 valgfrie parametre i yaml-filafsnittene dest og type. Dette benyttes typisk i projekter, hvor det uploadede navn skal være anderledes, så Crowdin kan registrere typen korrekt.

dest-parameteren giver mulighed for at angive et filnavn i Crowdin. Det fungerer for flere filer på én gang og understøtter flg. variabler: %original_file_name%, %original_path%, %file_extension%, %file_name%.

Bemærk! Bruges mest-parameter, skal opsætningsfilen indeholde parameteren preserve_hierarchy med værdien true.

Eksempel på en opsætningsfil med begge parametre:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise
"preserve_hierarchy": true

"files": [
  {
    "source": "/conf/**/*.txt",
    "dest": "/conf/**/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%file_name%.properties",
    "type": "properties"
  },
  {
    "source": "/app/*.txt",
    "dest": "/app/%file_name%.xml",
    "translation": "/res/values-%android_code%/%original_file_name%",
    "type": "android"
  },
  {
    "source": "/conf/**/*.txt",
    "dest": "/%original_path%/%file_name%.properties",
    "translation": "/conf/**/%two_letters_code%/%original_file_name%",
    "type": "properties"
  }
]

Ændrede strengeopdateringer

Parameteren update_option er valgfri. Opsættes den ikke, mistes oversættelser til ændrede strenge. Nyttigt for skrivefejlrettelser og mindre kildestrengsændringer.

Afhængigt af værdien benyttes update_option til at bevare oversættelser og bevare/fjerne valideringer af ændrede strenge under filopdatering.

Værdierne er:

  • update_as_unapproved — bevar oversættelser af ændrede strenge og fjern bekræftelser af disse oversættelser, hvis de findes
  • update_without_changes — bevar oversættelser og bekræftelser af ændrede strenge

Eksempel på en opsætningsfil med update_option-parameteren:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/*.csv",
    "translation": "/%three_letters_code%/%file_name%.csv",
    "first_line_contains_header": true,
    "scheme": "identifier,source_phrase,translation,context",
    "update_option": "update_as_unapproved"
  },
  {
    "source": "/**/*.xlsx",
    "translation": "/%three_letters_code%/folder/%file_name%.xlsx",
    "update_option": "update_without_changes"
  }
]

Upload af filer med tilpasset segmentering

Upload XML-, HTML- og MD-kildefiler mv. uden en nøgleværdistruktur med egne segmenteringsregler. Hvis ikke angivet, anvendes de prædefinerede segmenteringsregler (SRX 2.0) til automatisk indholdssegmentering.

Eks. på en opsætningsfil med tilpasset segmentering:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/emails/sample1.html",
    "translation": "/emails/%locale%/%original_file_name%",
    "custom_segmentation": "/rules/sample.srx.xml"
  }
]

Upload af oversættelser

Kommandoen upload translations uploader eksisterende oversættelser til Crowdin. Er ingen indstillinger angivet, så importeres og godkendes uploadede oversættelser ikke, selvom de svarer til kildestrengene.

Værdierne er:

  • -l, --language=language_code - definerer de sprogoversættelser, som skal uploades til Crowdin. Oversættelser uploades som standard til alle projektets målsprog. (Crowdin Language Codes)
  • --[no-]import-eq-suggestions - definerer, hvorvidt en oversættelse skal tilføjes, hvis den er lig en allerede eksisterende kildestreng i projektet
  • --[no-]auto-approve-imported - auto-godkender uploadede oversættelser

Importindstillinger

Importindstillinger for XML-filer

translate_content
valgfrit
bool Definerer, hvorvidt tekster omsluttet af tags skal oversættes.
Gyldige værdier er 0 eller 1. Standard er 1.
translate_attibutes
valgfri
bool Definerer, hvorvidt tagattributter skal oversættes.
Gyldige værdier er 0 eller 1. Standard er 1.
content_segmentation
valgfri
bool Definerer, hvorvidt lange tekster skal opdeles i kortere segmenter.
Gyldige værdier er 0 eller 1. Standard er 1.
Bemærk: Når Indholdssegmentering er aktiveret, håndteres oversættelsesupload af en eksperimentel maskinlæringsteknologi.
translatable_elements
valgfri
matrix Dette er en matrix af strenge, hvori hvert element er XPaths tilet DOM-element, der skal importeres.
Eksempelsti: /path/to/node or /path/to/attribute[@attr]
Bemærk! Hvis angivet, tages parametrene translate_content og translate_attributes ikke i betragtning under importen.

Eksempel på en opsætningsfil med ekstra parametre:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/app/sample1.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translate_attributes": 1,
    "translate_content": 0
  },
  {
    "source": "/app/sample2.xml",
    "translation": "/app/%locale%/%original_file_name%",
    "translatable_elements": [
      "/content/text",                      # translatable texts are stored in 'text' nodes of parent node 'content'
      "/content/text[@value]"               # translatable texts are stored in 'value' attribute of 'text' nodes
    ]
  }
]

Yderligere filimportmuligheder

content_segmentation
valgfri
bool Definerer, hvorvidt lange tekster skal opdeles i kortere segmenter. Kun for TXT, DOCX, DITA, IDML, MIF, MEDIAWIKI, HTML, Front Matter HTML, Markdown, Front Matter Markdown, XML, XLIFF, XLIFF 2.0>
Gyldige værdier er 0 eller 1. Standard er 1.
Bemærk: Når Indholdssegmentering er aktiveret, håndteres oversættelsesupload af en eksperimentel maskinlæringsteknologi.

Eksempel på en opsætningsfil med ekstra parametre:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/emails/sample1.html",
    "translation": "/emails/%locale%/%original_file_name%",
    "content_segmentation": 1
  }
]

Eksportindstillinger

Flg. eksportindstillinger kan bruges til at opsætte den ønskede eksportadfærd for hver filgruppe:

skip_untranslated_strings – Kun oversatte strenge inkluderes i de eksporterede oversættelsesfiler.
skip_untranslated_files – Kun oversatte strenge vil blive inkluderet i de eksporterede oversættelsesarkiver.
export_only_approved – Kun tekster, som både er oversat og godkendt, inkluderes i de eksporterede oversættelsesfiler.

Eks. på en opsætningsfil med begge parametre:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise
"preserve_hierarchy": true

"files": [
  {
    "source": "/locale/en/**/*.po",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_strings": true
  },
  {
    "source": "/locale/en/**/*.json",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "skip_untranslated_files": true
  },
  {
    "source": "/locale/en/**/*.yml",
    "translation": "/locale/%two_letters_code%/**/%original_file_name%",
    "export_only_approved": true
  }
]
Bemærk: Eksportindstillingerne fungerer kun med CLI.

Escape-anførselstegnsvalg for .properties-filformater

Definerer, om et enkelt anførselstegn skal escapes af et andet enkelt anførselstegn eller bagudvendt stråstreg i eksporterede oversættelser. Der kan tilføjes escape_quote pr. fil muligheden. Gyldige værdier er: 0, 1, 2, 3. Standard er 3.

Værdierne er:

  • 0 - escape ikke enkelt anførselstegn
  • 1 - escape enkelt anførselstegn med et andet enkelt anførselstegn
  • 2 - escape enkelt anførselstegn med en bagudvendt skråstreg
  • 3 - escape enkelt anførselstegn med et andet enkelt anførselstegn i strenge indeholdende variabler ( {0})

Escaper specialtegn
Definerer, hvorvidt visse specialtegn (=, :, ! og #) skal escapes med bagudvendt skråstreg i eksporterede oversættelser. Der kan tilføjes escape_special_characters pr. fil muligheden.

Gyldige værdier er 0, 1. Standard er 1.

  • 0 - escape ikke specialtegn
  • 1 - escape specialtegn med en bagudvendt skråstreg

Opsætningsfileksempel:

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/en/strings.properties",
    "translation": "/%two_letters_code%/%original_file_name%",
    "escape_quotes": 1,
    "translate_content": 0,
    "escape_special_characters": 0
  }
]

Eks. på opsætninger

Upload af CSV-filer

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files": [
  {
    "source": "/*.csv",
    "translation": "/%two_letters_code%/%original_file_name%",
    # Specifies whether first line should be imported or it contains columns headers
    "first_line_contains_header": true,
    # used only when uploading CSV file to define data columns mapping
    "scheme": "identifier,source_phrase,translation,context,max_length"
  }
]

GetText-projekt

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files" : [
  {
    "source" : "/locale/en/**/*.po",
    "translation" : "/locale/%two_letters_code%/LC_MESSAGES/%original_file_name%",
    "languages_mapping" : {
      "two_letters_code" : {
        "zh-CN" : "zh_CH",
        "fr-QC": "fr"
      }
    }
  }
]

Android-projekt

"project_id": "projectId"
"api_token": "personal-access-token"
"base_path": "/project-base-path"
"base_url": "https://api.crowdin.com"         # https://{organization-name}.crowdin.com for Crowdin Enterprise

"files" : [
  {
    "source" : "/res/values/*.xml",
    "translation" : "/res/values-%android_code%/%original_file_name%",
    "languages_mapping" : {
      "android_code" : {
        "de" : "de",
        "ru" : "ru"
      }
    }
  }
]

Opsætningsfil til VCS-integrationer

VCS-integrationer kræver den samme opsætningsfil som CLI-værktøjet, hvilket betyder, at den samme struktur understøttes. Den eneste forskel er, at der af sikkerhedsmæssige årsager ikke bør gemmes projektlegitimationsoplysninger i fil-headeren. Et par ekstra parametre kan også bruges.

Pull Request-title og Etiketter til VCS-integrationer

Standard pull request-titel er New Crowdin updates. For at angive en tilpasset pull request-titel og føje etiketter til pull requesten kan flg. parametre bruges i opsætningsfilen: pull_request_title, pull_request_labels.

Bemærk: Pull request-etiketter understøttes ikke af Bitbucket-integrationen.

Eksempel:

"base_path": "/project-base-path"
"pull_request_title": "Custom PR title"
"pull_request_labels": [
  "crowdin",
  "l10n"
]

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Commit-meddelelsesparameter til VCS-integrationer

Hver gang oversættelser commites, vises standardmeddelelsen “Nye oversættelser {fileName} ({languageName})”. Parameteren commit_message kan benyttes for at tilføje Git-tags (f.eks. for at overspringe builds).

Eksempel:

"base_path": "/project-base-path"
"commit_message": "[ci skip]"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Benytte parameteren append_commit_message med værdien false for at erstatte standard commit-meddelelsen. Du kan også tilføje to valgfrie parametre: %original_file_name% og %language% for at benytte det relevante filnavn og sprogvariablerne i relation hertil.

Eksempel:

"commit_message": "Rettelse: Ny oversættelse %original_file_name% fra Crowdin"
"append_commit_message": false

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Eksport af sprogparameter til VCS-integrationer

Som standard eksporteres alle sprogene. Ved behov for at eksportere nogle bestemte sprog, så benyt parameteren export_languages for at angive disse.

Eksempel:

"base_path": "/project-base-path"
"export_languages": [                                   
    "ru", 
    "uk", 
    "ja"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Pull Request Assignee Parameter for VCS Integrations

If you need to assign a pull request to particular users, use the pull_request_assignees parameter to specify them.

Note: Pull request assignee parameter is not supported by the Bitbucket, Bitbucket Server, and Azure Repos integrations.

GitHub/GitHub Server

Eksempel:

"base_path": "/project-base-path"
"pull_request_assignees": [                                   
    "login1", 
    "login2"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

GitLab/GitLab Self-Managed

Example:

"base_path": "/project-base-path"
"pull_request_assignees": [                                   
    "user_id1", # numeric ID
    "user_id2"  # numeric ID
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Pull Request Reviewer Parameter for VCS Integrations

If you need to request a pull request review from particular users, use the pull_request_reviewers parameter to specify them.

GitHub/GitHub Server

Example:

"base_path": "/project-base-path"
"pull_request_reviewers": [                                   
    "login1", 
    "login2"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

GitLab/GitLab Self-Managed

Example:

"base_path": "/project-base-path"
"pull_request_reviewers": [                                   
    "user_id1", # numeric ID
    "user_id2"  # numeric ID
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Bitbucket

Example:

"base_path": "/project-base-path"
"pull_request_reviewers": [                                   
    "uuid1", # user uuid
    "uuid2"  # user uuid
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Bitbucket Server

Example:

"base_path": "/project-base-path"
"pull_request_reviewers": [                                   
    "username1",
    "username2"
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]
  • Azure Repos

Example:

"base_path": "/project-base-path"
"pull_request_reviewers": [                                   
    "guid1", # user ID
    "guid2"  # user ID
  ]
"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%"
  }
]

Føje etiketter til kildestrenge

For at føje eksisterende eller nye etiketter til kildestrengene, så brug parameteren labels. Etiketter føjes kun til kildestrengene under den indledende upload til Crowdin-projektet.

Strenge uploadet til Crowdin-projektet inden brug parameteren labels får ingen etiket. Fjernes etiketten tilføjet under den indledende upload direkte i Crowdin, gentilføjes den ikke under de næste synkninger.

Etiketnavnene kan indeholde alle tegn undtagen “,”.

Example:

"base_path": "/project-base-path"

"files": [
  {
    "source" : "/resources/en/*.json",
    "translation" : "/resources/%two_letters_code%/%original_file_name%",
    "labels" : [
      "android",
      "emails"
    ]
  }
]

Read more about Labels.

Brug af én konfigurationsfil til VCS-integrationer og CLI

Der er tilfælde, hvor det er nødvendigt at bruge VCS-integration og CLI til et projekt. I en sådan situation vil man oftest have to separate opsætningsfiler, én til VCS-integration og én til CLI. Man kan dog bruge én enkelt opsætningsfil til begge tilfælde.

Da VCS-integrationsopsætningsfilen ikke indeholder project_id og api_token-legitimationsoplysninger, der kræves for CLI, kan disse sendes direkte i kommandoen vha. flg. parametre: -i/--project-id, -T/--token. Alternativt kan miljøvariabler anvendes til dette formål.

Som resultat, vil kommandoen til download af oversættelser via CLI se således ud:

$ crowdin download -i {your-project-id} -T {your-token}

Søge assistance

Behov for hjælp til brug af Crowdin-CLI eller evt. spørgsmål? Kontakt Supportteamet.

Se også

Var denne artikel nyttig?