Od czasu do czasu tłumaczę niektóre aplikacje na Androida: deweloper wysyła mi plik XML, np.
<string name="foo">Foo</string>
<string name="baz">Baz</string>
i wysyłam mu plik XML, w którym treść każdego elementu została przetłumaczona, np.
<string name="foo">Translated foo</string>
<string name="baz">Translated baz</string>
Problem pojawia się, gdy programista dodaje nowy element tekstowy i wysyła mi nowy plik do przetłumaczenia, np.
<string name="foo">Foo</string>
<string name="bar">Bar</string>
<string name="baz">Baz</string>
Pytanie: Jak mogę porównać to z moim poprzednim przetłumaczonym plikiem, szukając tylko tagów z nowymi atrybutami lub, jeszcze lepiej, czy istnieje prosty (ish) sposób na łączyć dwa pliki, ewentualnie dodanie znacznika na początku nowych linii do przetłumaczenia?
Biorąc pod uwagę poprzedni przykład, oznaczałoby to wygenerowanie takiego pliku
<string name="foo">Translated foo</string>
<!-- new --><string name="bar">Bar</string>
<string name="baz">Translated baz</string>
Odpowiedzi:
Ponieważ nie znalazłem żadnego wcześniej istniejącego rozwiązania, postanowiłem sam napisać mały skrypt Pythona, który jak dotąd wydaje się działać:
Oto obowiązkowe przykładowe wyjście:
Uwaga: Jestem stosunkowo nowy w Pythonie i całkowicie nowy w XML, więc wszelkie komentarze dotyczące ulepszenia powyższego kodu byłyby bardzo mile widziane.
źródło