2009-10-12 20 views
7

Mam wiele plików zasobów w wielu różnych językach.Złap brakujące zasoby lokalne w plikach Resx

Pozwala przypuszczać, na przykład jesteśmy nośnej 3 językach (EN, DE, FR), i mają ten plik

common.resx common.de.resx common.fr.resx

I chciałby wykryć zdarzenia, gdy na przykład zasób jest żądany w pliku de, ale go brakuje, a więc powraca do domyślnego języka. Czy jest jakiś sposób na złapanie tego? (więc mogę go zalogować, a następnie dodać brakujący zasób).

Dzięki

Odpowiedz

5

Jeśli chcesz złapać różnice, użyj RESX Synchronizer. Jest to aplikacja typu open source, która może zsynchronizować wszystkie różnice między głównym resxem a zlokalizowanym (dodaje i/lub usuwa klucze w zlokalizowanym zasobie).

Można go używać w następujący sposób skopiować wszystkie zmiany z common.resx do common.de.resx:

resxsync /v common.resx common.de.resx 

/V listy opcji wszystkie zmiany, które są wszystkie klucze, które zostały dodane lub usunięte z de resx.

+0

+1 automatyzację, która wydaje proste i użyteczne! – Greg

+0

To narzędzie zostało przerwane. Projekt, do którego się odwołuje jako alternatywa, również przestaje istnieć. – LueTm

+0

Link już nie działa. – Dominik

0

Nie ma nic w istniejącym API czytania zasobem, który naraża fallbacks zewnętrznie. Jednak System.Resources.ResourceManager nie jest zaplombowany, więc nic nie powstrzyma cię przed jego podklasowaniem w celu wywołania zdarzenia, gdy wymagany jest powrót.

2

Zakładając, że wszystkie zmiany w plikach zasobów zaczynają się w fazie rozwoju i trafiają do produkcji, wydaje się, że jest to zadanie dla jakiejś formy analizy statycznej.

Używam Zeta Resource Editor, ponieważ podświetla obszary, w których brakuje tłumaczeń, a także elementy zastępcze (np. {0}).

Powiązane problemy