# Szablon tabeli lokalizacji

Tabela tekstów, na której tłumacze mogą pracować: jeden wiersz na klucz, z kontekstem, limitem długości, angielskim źródłem i czterema tłumaczeniami, a do tego glosariusz i przewodnik stylu dla każdego języka. Pobierz ją jako .zip: tabela to plik CSV (UTF-8, wartości rozdzielone przecinkami), reszta to Markdown, a całość zaimportujesz do Nodary, gdzie CSV staje się arkuszem, którego używasz jako tabeli tłumaczeń.

Za darmo, bez konta, bez e-maila. Używaj, zmieniaj, udostępniaj.

[Pobierz szablon (.zip)](https://nodary.ai/downloads/szablon-tabeli-lokalizacji.zip)

## Przeczytaj każdy plik przed pobraniem

Przegląd wyjaśnia kolumny, nazewnictwo kluczy, zmienne i statusy tłumaczeń. Tabela zawiera 13 przykładowych tekstów z Saltmarrow, przykładowej gry, którą ta strona pokazuje wszędzie; dwie komórki są celowo błędne, żeby pokazać, co wyłapują kontrole.

- Tabela lokalizacji: Jak działa tabela: kolumny, nazewnictwo kluczy, zmienne, statusy tłumaczeń i pliki obok.
- Teksty: Tabela: jeden wiersz na tekst, kontekst i limit długości, angielskie źródło i cztery tłumaczenia.
- Glosariusz: Słowa tłumaczone wszędzie tylko w jeden sposób i nazwy, których się nie tłumaczy.
- Przewodnik stylu: Jak gra mówi w każdym języku: jej głos, zwracanie się do gracza, typografia, długość i liczba mnoga.

### Tabela lokalizacji

_Jak korzystać z szablonu: wiersze kursywą to wskazówki. Zastąp je własnymi słowami, a potem usuń. Wartości w nawiasach kwadratowych uzupełniasz sam. Sama tabela to plik CSV obok tej strony._

#### Pliki

- [Teksty](https://nodary.ai/pl/templates/localization-string-table#doc-strings): sama tabela, jeden wiersz na tekst, jedna kolumna na język
- [Glosariusz](https://nodary.ai/pl/templates/localization-string-table#doc-glossary): słowa tłumaczone wszędzie tak samo i nazwy, których się nie tłumaczy
- [Przewodnik stylu](https://nodary.ai/pl/templates/localization-string-table#doc-style): jak gra mówi w każdym języku

#### Kolumny

| Kolumna | Co zawiera |
| --- | --- |
| key | Unikalna nazwa tekstu, której gracze nigdy nie widzą |
| context | Gdzie tekst się pojawia i kto go mówi: to, czego tłumacz nie zgadnie |
| max_length | Największa liczba znaków, jaką tekst może zająć na ekranie |
| en | Tekst źródłowy |
| fr, de, es, pl | Jedna kolumna na język, nazwana jego kodem |

#### Nazywanie kluczy

_Nazywaj klucze według miejsca, w którym żyje tekst, od ogółu do szczegółu, żeby powiązane teksty układały się obok siebie._

- Wzór: [ekran].[element].[szczegół], na przykład menu.play albo hud.tide.warning
- Małymi literami, z kropkami między częściami, bez spacji
- Nigdy nie używaj klucza ponownie do innego tekstu: dodaj nowy

#### Zmienne i znaczniki

_Wartości, które wstawia gra, zostają w nawiasach klamrowych, na przykład {count}; każde tłumaczenie zachowuje każdą zmienną źródła. Znaczniki formatowania, na przykład znacznik pogrubienia w item.crystal.desc, zostają wokół słów, które oznaczają._

#### Statusy tłumaczeń

```mermaid
flowchart LR
  n0["Brak"]
  n1["Szkic"]
  n2["Sprawdzone"]
  n3["Ostateczne"]
  n4["Nieaktualne"]
  n0 --> n1
  n1 --> n2
  n2 --> n3
  n3 --> n4
  n4 --> n1
```
_Status tłumaczenia: zmienione źródło czyni je nieaktualnym, do ponownego sprawdzenia_

_Przykład (Saltmarrow, przykładowa gra): Dwie komórki przykładu są celowo błędne. menu.settings po niemiecku, Einstellungen, ma 13 znaków, a przycisk mieści 10, więc kontrola długości to zgłasza; powitanie Archiwistki nie ma jeszcze polskiej wersji i liczy się jako brak._

_Z tego szablonu możesz swobodnie korzystać, a także go zmieniać i udostępniać. Pochodzi z_ [Nodary](https://nodary.ai/pl)_, gdzie te pliki importują się jako mapa połączonych dokumentów, a CSV jako arkusz._

### Teksty

| key | context | max_length | en | fr | de | es | pl |
| --- | --- | --- | --- | --- | --- | --- | --- |
| menu.play | Przycisk w menu głównym | 12 | Play | Jouer | Spielen | Jugar | Graj |
| menu.settings | Przycisk w menu głównym; przycisk mieści 10 znaków | 10 | Settings | Paramètres | Einstellungen | Ajustes | Ustawienia |
| menu.quit | Przycisk w menu głównym | 12 | Quit | Quitter | Beenden | Salir | Wyjdź |
| hud.tide.warning | Pokazywane w HUD dwie minuty przed zmianą pływu; {minutes} to liczba | 40 | The tide turns in {minutes} min | La marée tourne dans {minutes} min | Gezeitenwechsel in {minutes} Min. | La marea cambia en {minutes} min | Zmiana pływu za {minutes} min |
| hud.salt.count | Licznik w HUD; {count} to liczba | 20 | Salt: {count} | Sel : {count} | Salz: {count} | Sal: {count} | Sól: {count} |
| dialogue.archivist.greet | Utopiona Archiwistka, pierwsze spotkanie. Spokojna i oficjalna: zwraca się do gracza formalnie | 120 | You came down with the tide. Most who do, stay. | Vous êtes descendu avec la marée. La plupart de ceux qui le font restent. | Sie sind mit der Flut herabgestiegen. Die meisten, die das tun, bleiben. | Ha bajado con la marea. La mayoría de quienes lo hacen se quedan. |  |
| item.crystal.name | Nazwa przedmiotu, w ekwipunku i w sklepie | 24 | Memory crystal | Cristal de mémoire | Erinnerungskristall | Cristal de memoria | Kryształ pamięci |
| item.crystal.desc | Opis przedmiotu; <b> oznacza słowo do wyróżnienia | 140 | Holds one <b>memory</b> of the drowned city. Sells well in the village. | Contient un <b>souvenir</b> de la cité engloutie. Se vend bien au village. | Enthält eine <b>Erinnerung</b> an die versunkene Stadt. Verkauft sich gut im Dorf. | Guarda un <b>recuerdo</b> de la ciudad sumergida. Se vende bien en el pueblo. | Zawiera jedno <b>wspomnienie</b> zatopionego miasta. Dobrze się sprzedaje w wiosce. |
| quest.horn.title | Tytuł zadania w dzienniku | 32 | Before the horn | Avant la corne | Vor dem Horn | Antes del cuerno | Zanim zabrzmi róg |
| quest.horn.goal | Cel zadania w dzienniku; {count} to liczba | 60 | Crystals to bring up before the horn: {count} | Cristaux à remonter avant la corne : {count} | Kristalle, die vor dem Horn nach oben müssen: {count} | Cristales que subir antes del cuerno: {count} | Kryształy do wyniesienia, zanim zabrzmi róg: {count} |
| ui.save.done | Komunikat po zapisie gry, widoczny przez dwie sekundy | 40 | Game saved | Partie sauvegardée | Spiel gespeichert | Partida guardada | Gra zapisana |
| ui.tide.low | Etykieta wskaźnika pływu | 16 | Low tide | Marée basse | Ebbe | Marea baja | Odpływ |
| ui.tide.high | Etykieta wskaźnika pływu | 16 | High tide | Marée haute | Flut | Marea alta | Przypływ |

### Glosariusz

**Właściciel:** [imię i nazwisko] · **Status:** szkic · **Ostatni przegląd:** [data]

_Dodaj pojęcie, gdy tłumacz po raz pierwszy o nie zapyta. Słowo przetłumaczone na dwa sposoby myli graczy i podwaja pytania do wsparcia._

#### Pojęcia

| Pojęcie (en) | fr | de | es | pl | Uwagi |
| --- | --- | --- | --- | --- | --- |
| tide | marée | Gezeiten | marea | pływ | Poziom wody, od którego zależy każdy system |
| salt | sel | Salz | sal | sól | Podstawowy surowiec |
| memory crystal | cristal de mémoire | Erinnerungskristall | cristal de memoria | kryształ pamięci | Zawsze pełna nazwa, nigdy samo „kryształ” w sklepie |
| horn | corne | Horn | cuerno | róg | Sygnał dwie minuty przed zmianą pływu |
| [pojęcie] | [...] | [...] | [...] | [...] | [...] |

#### Nigdy nie tłumacz

- Saltmarrow, nazwa gry
- [Imiona postaci i nazwy miejsc, które zostają bez zmian]
- [Nazwy platform i marek]

Zobacz też: [Tabela lokalizacji](https://nodary.ai/pl/templates/localization-string-table#doc-overview) · [Teksty](https://nodary.ai/pl/templates/localization-string-table#doc-strings) · [Przewodnik stylu](https://nodary.ai/pl/templates/localization-string-table#doc-style)

### Przewodnik stylu

**Właściciel:** [imię i nazwisko] · **Status:** szkic · **Ostatni przegląd:** [data]

#### Głos

_Trzy słowa o głosie gry i o tym, jak nigdy nie brzmi._

- Głos: [...]
- Nigdy: [...]

_Przykład (Saltmarrow, przykładowa gra): Spokojny i nieco staroświecki, jak strażniczka archiwum. Krótkie zdania. Żadnego współczesnego slangu._

#### Język po języku

| Język | Zwracanie się do gracza | Typografia | Uwagi |
| --- | --- | --- | --- |
| Francuski (fr) | [tu albo vous] | Spacja nierozdzielająca przed : ; ! ? i wewnątrz « » | [...] |
| Niemiecki (de) | [du albo Sie] | Cudzysłów „…“, rzeczowniki wielką literą | Często dłuższy niż angielski: najpierw sprawdź max_length |
| Hiszpański (es) | [tú albo usted] | Otwierające ¿ i ¡ | [...] |
| Polski (pl) | [ty albo Pan i Pani] | Cudzysłów „…”, trzy formy liczby mnogiej | Słowa wokół imienia gracza zmieniają się z płcią |
| [Język] | [...] | [...] | [...] |

#### Długość

_Zostaw miejsce: tłumaczenia z angielskiego bywają dłuższe, w niektórych językach nawet o jedną trzecią. Ustalaj max_length według miejsca na ekranie, a nie według angielskiego tekstu._

#### Liczba mnoga i liczby

_Języki liczą różnie: polski ma trzy formy liczby mnogiej tam, gdzie angielski ma dwie. Umieść liczbę po etykiecie (Sól: {count}) albo użyj systemu liczby mnogiej swojego silnika, a liczby i daty formatuj dla każdego języka._

Zobacz też: [Tabela lokalizacji](https://nodary.ai/pl/templates/localization-string-table#doc-overview) · [Glosariusz](https://nodary.ai/pl/templates/localization-string-table#doc-glossary) · [Teksty](https://nodary.ai/pl/templates/localization-string-table#doc-strings)

## Jak z niego korzystać

### Zastąp przykładowe teksty

Zachowaj kolumny i sposób nazywania kluczy, a wstaw własne teksty. Zanim tekst trafi do tłumaczenia, nadaj mu kontekst i limit długości.

### Zacznij glosariusz wcześnie

Dodaj każde pojęcie, gdy tłumacz po raz pierwszy o nie zapyta, z tłumaczeniem na każdy język. Słowo przetłumaczone na dwa sposoby myli graczy i podwaja pytania do wsparcia.

### Ustal styl każdego języka

Przed tłumaczeniem zdecyduj, jak każdy język zwraca się do gracza i jakie ma zasady typograficzne. Zmiana później oznacza ponowne czytanie każdego tekstu.

### Zamroź źródło przed wysłaniem

Wysyłaj teksty do tłumaczenia, gdy ich angielska wersja jest ostateczna. Gdy źródło zmieni się później, jego tłumaczenia trzeba sprawdzić ponownie.

## Zaimportuj go do Nodary i używaj jako tabeli tłumaczeń

Nodary to przestrzeń robocza oparta na AI, w której dokumenty zespołu łączą się ze sobą, zamiast się piętrzyć. Zaimportuj .zip, a CSV pojawi się jako arkusz pod przeglądem, z glosariuszem i przewodnikiem stylu obok. W arkuszu „Tabela tłumaczeń” odczytuje role z nagłówków (key, context, max_length i jedna kolumna na język), sprawdza długość i zmienne każdego tłumaczenia, nadaje każdemu status, oznacza tłumaczenie jako nieaktualne, gdy zmieni się jego źródło, i eksportuje pliki dla Unity, Unreala i Godota: CSV, JSON, gettext .po i XLIFF.

1. Otwórz mapę projektu i wybierz „Importuj”.
2. Wybierz kartę „Folder lub ZIP”, potem „Wybierz plik ZIP”, wskaż plik i zaimportuj.
3. Otwórz „Teksty”, wybierz „Tabela tłumaczeń”, sprawdź role odczytane z nagłówków, a potem „Użyj jako tabeli tłumaczeń”.

Plan Free mieści dziesięć dokumentów na przestrzeń roboczą, wliczając stronę samego projektu: cztery dokumenty szablonu zmieszczą się z zapasem. Kolumna źródłowa to angielski: jeśli twoja gra jest pisana w innym języku, ustaw tę kolumnę jako źródło, gdy Nodary pokaże role.

## Jak prowadzić tabelę tekstów, na której tłumacze mogą pracować

Tabela tekstów zawodzi, gdy tłumacze muszą zgadywać, co znaczy wiersz albo ile ma miejsca, lub gdy tekst zmienia się po przetłumaczeniu i nikt tego nie zauważa. Te nawyki zapobiegają wszystkim trzem sytuacjom.

### Każdy tekst z kontekstem

Kto to mówi, gdzie się pojawia, na co odpowiada. „Open” na drzwiach to czasownik, a na sklepie przymiotnik: mówi to tylko kontekst.

### Długość ustalaj na podstawie ekranu

Zmierz, ile znaków zmieści przycisk, wiersz albo dymek, i zapisz ten limit, a nie długość angielskiego tekstu.

### Nigdy nie składaj zdań z kawałków

Sklejanie w kodzie „Znalazłeś” i „3 kryształy” psuje szyk i gramatykę w większości języków. Daj każdemu zdaniu własny klucz ze zmiennymi.

### Zmienne zostawiaj nietknięte

Każde tłumaczenie zachowuje każdą {zmienną} i każdy znacznik źródła. Zgubione {count} pokazuje graczowi dziurę albo wysypuje grę.

### Jeden klucz, jedno znaczenie

Nigdy nie używaj klucza ponownie do innego tekstu. Dodaj nowy klucz, a stary usuń, gdy nic już z niego nie korzysta.

### Zamroź źródło przed wysłaniem

Tłumacz tekst ostateczny. Gdy źródło mimo to się zmieni, oznacz jego tłumaczenia jako nieaktualne, żeby zostały sprawdzone ponownie.

## Pytania o tabelę lokalizacji

### Czym jest tabela lokalizacji?

Tabela lokalizacji (tabela tekstów) zawiera każdy tekst, który pokazuje gra, jeden wiersz na tekst: klucz używany w kodzie, tekst źródłowy, uwagi dla tłumaczy, limit długości i jedną kolumnę na język. Gra wczytuje tekst po kluczu w języku gracza, więc tekst można zmieniać i tłumaczyć bez dotykania kodu.

### Jakie kolumny powinna mieć tabela tekstów?

Co najmniej klucz i tekst źródłowy, a potem kolumnę na każdy język. Kolumna kontekstu i kolumna maksymalnej długości oszczędzają większość pytań tłumaczy. Ten szablon ma wszystkie pięć rodzajów, z angielskim jako źródłem oraz francuskim, niemieckim, hiszpańskim i polskim.

### Jak nazywać klucze tekstów?

Według miejsca, w którym żyje tekst, od ogółu do szczegółu, na przykład menu.play albo hud.tide.warning: małymi literami, z kropkami między częściami. Powiązane teksty układają się wtedy obok siebie, a klucz mówi, gdzie szukać w grze.

### Jak radzić sobie z liczbą mnogą?

Języki liczą różnie: polski ma trzy formy liczby mnogiej tam, gdzie angielski ma dwie. Umieść liczbę po etykiecie, na przykład „Sól: {count}”, albo użyj systemu liczby mnogiej swojego silnika z jednym tekstem na formę.

### Jak otworzyć plik CSV w Excelu?

Google Sheets, LibreOffice Calc, Numbers i Nodary otwierają go bez zmian. Excel otwiera go dwuklikiem tylko wtedy, gdy separatorem listy w systemie jest przecinek; przy polskich ustawieniach jest nim średnik i każdy wiersz trafia do jednej kolumny. Wtedy zaimportuj plik: na karcie Dane wybierz import z pliku tekstowego/CSV, wskaż plik, ustaw pochodzenie pliku na UTF-8, a ogranicznik na przecinek, i załaduj.

### Czy Unity, Unreal albo Godot odczytają ten plik CSV?

CSV z szablonu jest przeznaczony dla arkuszy kalkulacyjnych i importu w Nodary. Każdy silnik czyta własny format: z tej samej tabeli tabela tłumaczeń Nodary eksportuje CSV dla Godota i Unity, gettext .po dla Unreala i Godota, JSON dla większości silników i XLIFF dla narzędzi tłumaczeniowych.

### Czy mogę dodać języki?

Tak. Dodaj kolumnę nazwaną kodem języka, na przykład ja albo pt-BR. Nodary rozpoznaje kody i nazwy języków w nagłówkach, a jego tabela tłumaczeń potrafi też sama dodać kolumnę dla języka.

Strona: https://nodary.ai/pl/templates/localization-string-table
