XML - różne wersje językowe
Ostatnio zmodyfikowano 2017-09-09 14:26
PL_Andrev Temat założony przez niniejszego użytkownika |
XML - różne wersje językowe » 2017-09-08 17:14:19 Witam, W wyniku procedury "collision" uzyskuję wyłącznie dwie dane końcowe np. x1 = 20 oraz x2 = 30. Procedura prezentująca wynik: 1) wywołuje odpowiedni plik XML w oparciu o wybraną wersję językową, 2) wczytuje pętlą wszystkie elementy <collision>, 3) sprawdza czy element to tekst = x1 albo x2, 4) dla tekstów = x1 i x2 podmienia je na wyliczone wcześniej wartości, 5) wyświetlana następnie cały tekst jako komunikat w grze. < collision > < Stracono > < x1 > < kT uranu oraz > < x2 > < kT plutonu.> </ collision >
Stracono 20 kT uranu oraz 30 kT plutonu. W angielskiej wersji zapis gramatyczny byłby inny: < collision > < x1 > < kT uranuium and > < x2 > < kT plutonium were lost.> </ collision >
20 kT uranium and 30 kT plutonium were lost. Sposób powyższy wydaje się być mało elegancki, wprowadzając za każdym razem instrukcję warunkową sprawdzającą tekst każdego elementu czy pasuje do zmiennej. Pytanie: czy istnieje łatwiejszy sposób na zaprojektowanie XMLa aby wykluczyć punkty 3-4 z instrukcji powyżej? Problem jest taki, że jak pokazałem na przykładzie wyżej lokalizacja x1 i x2 może ulegać zmianie w zależności od wersji językowej. |
|
jankowalski25 |
» 2017-09-08 22:29:28 instrukcję warunkową sprawdzającą tekst każdego elementu czy pasuje do zmiennej |
Dlaczego? Nie próbuj parametryzować wszystkiego - tylko same dane powinny występować jako parametry. Jeśli masz dwie wartości do wstawienia, to tylko to należy podmieniać. Cała reszta powinna zostać bez zmian. Chyba że w danym języku zmienia się jakiś tekst w zależności od wartości, na przykład "1 bajt", "2 bajty", "5 bajtów". Podmieniaj tylko to, co w obrębie jednego języka dla różnych danych rzeczywiście się zmienia. czy istnieje łatwiejszy sposób na zaprojektowanie XMLa aby wykluczyć punkty 3-4 z instrukcji powyżej? |
Przecież pierwsze dwa punkty sprowadzają się do załadowania gotowego tekstu z odpowiedniego pliku! To oznacza, że musiałbyś mieć przygotowane pliki z gotowymi tekstami dla wszystkich możliwych przypadków. Oczywiście - wtedy złożoność może być nawet stała, ale weź pod uwagę koszt wygenerowania tylu plików. Problem jest taki, że jak pokazałem na przykładzie wyżej lokalizacja x1 i x2 może ulegać zmianie w zależności od wersji językowej. |
Nie próbuj tworzyć uniwersalnego przypadku działającego dla wszystkich języków jednocześnie - czasami nawet może zajść potrzeba zmiany kolejności danych (czyli x2 może wystąpić przed x1), a same pozycje niemal zawsze będą różne, bo to wynika ze składni danego języka. |
|
PL_Andrev Temat założony przez niniejszego użytkownika |
» 2017-09-09 11:31:07 Czyli mam rozumieć że metoda podana powyżej dla dwóch różnych języków zawierająca różnice właśnie wynikająca ze składni jest prawidłowa (punkt 3-4) ? Ta procedura będzie działa niezależnie od stylistyki języka (przykład powyżej):
Wczytaj fragment tekstu -> sprawdź czy opisuje poszukiwaną zmienną -> podmień wartość na zmienną -> wygeneruj tekst końcowy
|
|
jankowalski25 |
» 2017-09-09 14:26:04 Jeśli wstawki typu < Stracono > nie będą parametrami, to tak. |
|
« 1 » |