Próbuję zlokalizować odpowiedzi z mojego interfejsu API.Jak bezpiecznie uzyskać zlokalizowany łańcuch w kontrolerach Web Api?
Utworzono plik zasobów (Messges.resx) w moim projekcie zawierającym wszystkie znalezione ciągi. Używając nagłówka Accept-Language, aby zidentyfikować język użytkownika.
W odpowiedzi mogę ustawić ciąg jako:
response = Messages.KEY_GOOD_MORNING
który będzie uzyskać ciąg dla tej nazwy w języku obecnej kulturze gwintu. Będę musiał zmienić bieżącą kulturę wątku na kulturę znalezioną z nagłówka Accept-Language. Ale nie chcę zmieniać kultury wątku, ponieważ spowoduje to również zmianę formatowania liczb/daty, co jest dla mnie problematyczne.
Inną alternatywą widzę IS- użyciu ResourceManager i przekazywanie kultury as-
Messages.ResourceManager.GetString("KEY_GOOD_MORNING", CultureInfo.CreateSpecificCulture(lang.value))
ten sposób nie będę musiał zmienić kulturę wątku. Ale problem z tym podejściem jest następujący: nazwy łańcuchów nie są już bezpieczne pod względem typów. Literówka w nazwie ciągu przekazywana do GetString() może spowodować zwracanie wartości pustych.
Czy istnieje inne podejście, które mogę zastosować, aby uniknąć obu powyższych problemów?