1+ // PLLocalization.h
2+ #ifndef PLLocalization_h
3+ #define PLLocalization_h
4+
5+ #import < Foundation/Foundation.h>
6+
7+ /* *
8+ * Современный менеджер локализации для PojavLauncher.
9+ * Разработан для обеспечения надежного доступа к строкам локализации
10+ * с защитой от ошибок и кэшированием для производительности.
11+ */
12+ @interface PLLocalization : NSObject
13+
14+ /* *
15+ * Получить локализованную строку.
16+ * @param key Ключ локализации
17+ * @param defaultValue Значение по умолчанию, если строка не найдена
18+ * @return Локализованную строку или defaultValue
19+ */
20+ + (NSString *)stringForKey : (NSString *)key defaultValue : (NSString *)defaultValue ;
21+
22+ /* *
23+ * Метод-обертка для поддержания обратной совместимости с текущим кодом
24+ * @param key Ключ локализации
25+ * @param comment Комментарий (используется как fallback)
26+ * @return Локализованную строку
27+ */
28+ + (NSString *)localizeKey : (NSString *)key comment : (NSString *)comment ;
29+
30+ /* *
31+ * Принудительно перезагрузить все кэши локализаций
32+ */
33+ + (void )reloadLocalizations ;
34+
35+ /* *
36+ * Проверить и исправить файл локализации
37+ * @param path Путь к файлу локализации
38+ * @return YES если файл валиден или был исправлен, NO если не удалось исправить
39+ */
40+ + (BOOL )validateAndFixLocalizationFile : (NSString *)path ;
41+
42+ /* *
43+ * Получить доступные языки
44+ * @return Массив доступных языковых кодов
45+ */
46+ + (NSArray <NSString *> *)availableLanguages ;
47+
48+ /* *
49+ * Получить текущий язык
50+ * @return Код текущего языка
51+ */
52+ + (NSString *)currentLanguage ;
53+
54+ /* *
55+ * Добавить резервную локализованную строку
56+ * @param value Значение строки
57+ * @param key Ключ строки
58+ */
59+ + (void )registerFallbackString : (NSString *)value forKey : (NSString *)key ;
60+
61+ /* *
62+ * Экспортировать отсутствующие ключи для перевода
63+ * @param language Код языка
64+ * @return Путь к созданному файлу с ключами или nil при ошибке
65+ */
66+ + (NSString *)exportMissingKeysForLanguage : (NSString *)language ;
67+
68+ /* *
69+ * Безопасный метод форматирования строк
70+ */
71+ + (NSString *)stringWithFormat : (NSString *)format , ...;
72+
73+ @end
74+
75+ // Макрос для упрощенного доступа к локализованным строкам
76+ #define PLLocalizedString (key, comment ) [PLLocalization stringForKey: (key) defaultValue: (comment)]
77+
78+ #endif /* PLLocalization_h */
0 commit comments