Skip to content
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

Added annotation about importance of stringtable.xml #30

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 25 additions & 2 deletions docs/guides/missionmaking.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,31 @@ _Jeżeli zamierzasz bawić się skryptami to bardzo polecamy `Visual Studio Code

W naszych misjach pojawiają się różne treści. Takie rzeczy można przygotowywać w pliku stringtable.xml. Misja pokazowa ma tam zdefiniowaną nazwę nazwę misji oraz treść intelu. Najprościej przyjąć, że to tablica stałych tekstowych.

**UWAGA**
Nie pomijaj tego punktu. Jeśli nie masz potrzeby niczego zmieniać przynajmniej edytuj nazwę misji. W miejsce `ArmaForces - Preset` wpisz swoją unikalną nazwę misji. Unikniesz dzięki temu problemów z dublowaniem się nazw na serwerze i tym samym brakiem Twojej misji na liście. Najlepiej wyeduj wszystkie pola, oprócz korzyści czysto porządkowych gracze zobaczą większe napracowanko.
W przypadku dłuższych tekstów warto z tego korzystać. Mając wszystkie opisy w jednym miejscu łatwiej je edytować. Jeśli chcesz użyć tego pliku np. w opisach celów, dodawaj kolejne klucze w pliku `stringtable.xml` zgodnie z poniższym przykładem. Kiedy tworzysz nowe klucze to każde `ID` musi być unikalne. Aby jednak wszystko działało fragment `STR_AFP_Scripts_` musi być na początku każdego `ID`.
```xml
<Key ID="STR_AFP_Scripts_Task_NazwaCelu">
<English>Nazwa po angielsku.</English>
<Polish>Nazwa po polsku.</Polish>
</Key>

<Key ID="STR_AFP_Scripts_Task_OpisCelu">
<English>Opis po angielsku.</English>
<Polish>Opis po polsku.</Polish>
</Key>
```
A następnie wywołaj go w innych plikach, np. `tasks.hpp` w ten sposób:
```hpp
title = "STR_AFP_Scripts_Task_NazwaCelu";
description = "STR_AFP_Scripts_Task_OpisCelu";
```

Pierwszy język pojawiający się w kluczu jest uznawany za domyślny, dlatego jeśli robisz misję dla grupy międzynarodowej stawiaj angielski na pierwszym miejscu, wtedy jeśli nie masz tłumaczenia na język gracza tekst wyświetli mu się w języku angielskim.</br>
Oczywiście robiąc misję dla grupy gdzie wszyscy gracze mówią w jednym języku nie ma potrzeby dodawania tłumaczeń. Szczególnie, że wiele osób ma ustawiony język na angielski i widziałoby te opisy po angielsku.

Być może trafisz w internecie na jakieś przykłady gdzie zmienne tekstowe poprzedzane są symbolem `$`. Unikaj używania tego i stosuj przykład pokazany wyżej, bo inaczej możesz mieć problemy z prawidłowym tłumaczeniem tekstów.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not exactly. I think it should be more like:

Suggested change
Być może trafisz w internecie na jakieś przykłady gdzie zmienne tekstowe poprzedzane są symbolem `$`. Unikaj używania tego i stosuj przykład pokazany wyżej, bo inaczej możesz mieć problemy z prawidłowym tłumaczeniem tekstów.
Być może trafisz w internecie na jakieś przykłady gdzie zmienne tekstowe w configu poprzedzane są symbolem `$`. Powoduje to, że tekst jest od razu tłumaczony przy ładowaniu do configu. Dlaczego więc w przykładzie jest bez `$`? Ponieważ serwer tworzy zadania i rozsyła je graczom. Jeżeli tekst będzie już przetłumaczony to gracze będą widzieć zadania w języku serwera. Jeżeli zostawimy bez `$` to gracze otrzymają klucz do stringtable i skrypt przetłumaczy tekst lokalnie u gracza.
TLDR w taskach bez `$`.

Copy link
Collaborator Author

@Smieszkokoleszko Smieszkokoleszko Oct 7, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I edited formatting a bit. And changed ładowaniu do configu to ładowaniu z configu. As this file is read.

Suggested change
Być może trafisz w internecie na jakieś przykłady gdzie zmienne tekstowe poprzedzane są symbolem `$`. Unikaj używania tego i stosuj przykład pokazany wyżej, bo inaczej możesz mieć problemy z prawidłowym tłumaczeniem tekstów.
Być może trafisz w internecie na jakieś przykłady gdzie zmienne tekstowe w configu poprzedzane są symbolem `$`. Powoduje to, że tekst jest od razu tłumaczony przy ładowaniu z configu. Dlaczego więc w przykładzie jest bez `$`? Ponieważ serwer tworzy zadania i rozsyła je graczom. Jeżeli tekst będzie już przetłumaczony to gracze będą widzieć zadania w języku serwera. Jeżeli zostawimy bez `$` to gracze otrzymają klucz do `stringtable` i skrypt przetłumaczy tekst lokalnie u gracza.
**TLDR** w taskach bez `$`.


**UWAGA**</br>
Nie pomijaj tego punktu. Jeśli nie masz potrzeby niczego zmieniać przynajmniej edytuj nazwę misji. W miejsce `ArmaForces - Preset` wpisz swoją unikalną nazwę misji. Unikniesz dzięki temu problemów z dublowaniem się nazw na serwerze i tym samym brakiem Twojej misji na liście. Najlepiej edytuj wszystkie pola, dzięki temu oprócz korzyści czysto porządkowych gracze zobaczą większe napracowanko.
```xml
<Key ID="STR_AFP_Scripts_DisplayName">
<Polish>ArmaForces - Preset</Polish>
Expand Down