@umituz/react-native-localization 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -1
- package/lib/index.js.map +1 -1
- package/lib/infrastructure/config/languages.d.ts +5 -0
- package/lib/infrastructure/config/languages.d.ts.map +1 -1
- package/lib/infrastructure/config/languages.js +12 -2
- package/lib/infrastructure/config/languages.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +2 -0
- package/src/infrastructure/config/languages.ts +17 -2
package/lib/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { LocalizationProvider } from './infrastructure/components/LocalizationPr
|
|
|
7
7
|
export { LanguageSwitcher } from './infrastructure/components/LanguageSwitcher';
|
|
8
8
|
export { useLanguageNavigation } from './infrastructure/components/useLanguageNavigation';
|
|
9
9
|
export { default as i18n } from './infrastructure/config/i18n';
|
|
10
|
-
export { SUPPORTED_LANGUAGES,
|
|
10
|
+
export { SUPPORTED_LANGUAGES, LANGUAGES, // Alias for SUPPORTED_LANGUAGES (backward compatibility)
|
|
11
|
+
DEFAULT_LANGUAGE, getLanguageByCode, isLanguageSupported, getDefaultLanguage, getDeviceLocale, searchLanguages, } from './infrastructure/config/languages';
|
|
11
12
|
export type { Language, ILocalizationRepository } from './domain/repositories/ILocalizationRepository';
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAGnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAGnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAG1F,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,SAAS,EAAE,yDAAyD;AACpE,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAG3C,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -10,5 +10,6 @@ export { LanguageSwitcher } from './infrastructure/components/LanguageSwitcher';
|
|
|
10
10
|
export { useLanguageNavigation } from './infrastructure/components/useLanguageNavigation';
|
|
11
11
|
// Configuration
|
|
12
12
|
export { default as i18n } from './infrastructure/config/i18n';
|
|
13
|
-
export { SUPPORTED_LANGUAGES,
|
|
13
|
+
export { SUPPORTED_LANGUAGES, LANGUAGES, // Alias for SUPPORTED_LANGUAGES (backward compatibility)
|
|
14
|
+
DEFAULT_LANGUAGE, getLanguageByCode, isLanguageSupported, getDefaultLanguage, getDeviceLocale, searchLanguages, } from './infrastructure/config/languages';
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEnG,aAAa;AACb,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,gBAAgB;AAChB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,QAAQ;AACR,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAEnG,aAAa;AACb,OAAO,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAC;AACxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,mDAAmD,CAAC;AAE1F,gBAAgB;AAChB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,SAAS,EAAE,yDAAyD;AACpE,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,eAAe,GAChB,MAAM,mCAAmC,CAAC"}
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { Language } from '../../domain/repositories/ILocalizationRepository';
|
|
16
16
|
export declare const SUPPORTED_LANGUAGES: Language[];
|
|
17
|
+
export declare const LANGUAGES: Language[];
|
|
17
18
|
export declare const DEFAULT_LANGUAGE = "en-US";
|
|
18
19
|
export declare const getLanguageByCode: (code: string) => Language | undefined;
|
|
19
20
|
export declare const isLanguageSupported: (code: string) => boolean;
|
|
@@ -31,4 +32,8 @@ export declare const getDefaultLanguage: () => Language;
|
|
|
31
32
|
* - Device: "de" → Returns: "en-US" (not supported, fallback)
|
|
32
33
|
*/
|
|
33
34
|
export declare const getDeviceLocale: () => string;
|
|
35
|
+
/**
|
|
36
|
+
* Search languages by name or native name
|
|
37
|
+
*/
|
|
38
|
+
export declare const searchLanguages: (query: string) => Language[];
|
|
34
39
|
//# sourceMappingURL=languages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/languages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAG7E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"languages.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/config/languages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,mDAAmD,CAAC;AAG7E,eAAO,MAAM,mBAAmB,EAAE,QAAQ,EAAmB,CAAC;AAG9D,eAAO,MAAM,SAAS,YAAsB,CAAC;AAE7C,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAoKxC,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,QAAQ,GAAG,SAE3D,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,OAElD,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,QAErC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,QAAO,MAkClC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,KAAG,QAAQ,EAOvD,CAAC"}
|
|
@@ -13,9 +13,11 @@
|
|
|
13
13
|
* - User choice: Persists after manual language selection
|
|
14
14
|
*/
|
|
15
15
|
import * as Localization from 'expo-localization';
|
|
16
|
-
import { LANGUAGES } from './languagesData';
|
|
16
|
+
import { LANGUAGES as LANGUAGES_DATA } from './languagesData';
|
|
17
17
|
// Single source of truth for supported languages
|
|
18
|
-
export const SUPPORTED_LANGUAGES =
|
|
18
|
+
export const SUPPORTED_LANGUAGES = LANGUAGES_DATA;
|
|
19
|
+
// Export LANGUAGES as alias for SUPPORTED_LANGUAGES for backward compatibility
|
|
20
|
+
export const LANGUAGES = SUPPORTED_LANGUAGES;
|
|
19
21
|
export const DEFAULT_LANGUAGE = 'en-US';
|
|
20
22
|
/**
|
|
21
23
|
* Locale mapping for device locales to supported app locales
|
|
@@ -197,4 +199,12 @@ export const getDeviceLocale = () => {
|
|
|
197
199
|
return DEFAULT_LANGUAGE;
|
|
198
200
|
}
|
|
199
201
|
};
|
|
202
|
+
/**
|
|
203
|
+
* Search languages by name or native name
|
|
204
|
+
*/
|
|
205
|
+
export const searchLanguages = (query) => {
|
|
206
|
+
const lowerQuery = query.toLowerCase();
|
|
207
|
+
return SUPPORTED_LANGUAGES.filter((lang) => lang.name.toLowerCase().includes(lowerQuery) ||
|
|
208
|
+
lang.nativeName.toLowerCase().includes(lowerQuery));
|
|
209
|
+
};
|
|
200
210
|
//# sourceMappingURL=languages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/infrastructure/config/languages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/infrastructure/config/languages.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@umituz/react-native-localization",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.8",
|
|
4
4
|
"description": "Universal localization system for React Native apps with i18n support",
|
|
5
|
-
"main": "./
|
|
6
|
-
"types": "./
|
|
5
|
+
"main": "./src/index.ts",
|
|
6
|
+
"types": "./src/index.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"build": "tsc",
|
|
9
9
|
"typecheck": "tsc --noEmit",
|
package/src/index.ts
CHANGED
|
@@ -15,11 +15,13 @@ export { useLanguageNavigation } from './infrastructure/components/useLanguageNa
|
|
|
15
15
|
export { default as i18n } from './infrastructure/config/i18n';
|
|
16
16
|
export {
|
|
17
17
|
SUPPORTED_LANGUAGES,
|
|
18
|
+
LANGUAGES, // Alias for SUPPORTED_LANGUAGES (backward compatibility)
|
|
18
19
|
DEFAULT_LANGUAGE,
|
|
19
20
|
getLanguageByCode,
|
|
20
21
|
isLanguageSupported,
|
|
21
22
|
getDefaultLanguage,
|
|
22
23
|
getDeviceLocale,
|
|
24
|
+
searchLanguages,
|
|
23
25
|
} from './infrastructure/config/languages';
|
|
24
26
|
|
|
25
27
|
// Types
|
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import * as Localization from 'expo-localization';
|
|
17
|
-
import { LANGUAGES } from './languagesData';
|
|
17
|
+
import { LANGUAGES as LANGUAGES_DATA } from './languagesData';
|
|
18
18
|
import { Language } from '../../domain/repositories/ILocalizationRepository';
|
|
19
19
|
|
|
20
20
|
// Single source of truth for supported languages
|
|
21
|
-
export const SUPPORTED_LANGUAGES: Language[] =
|
|
21
|
+
export const SUPPORTED_LANGUAGES: Language[] = LANGUAGES_DATA;
|
|
22
|
+
|
|
23
|
+
// Export LANGUAGES as alias for SUPPORTED_LANGUAGES for backward compatibility
|
|
24
|
+
export const LANGUAGES = SUPPORTED_LANGUAGES;
|
|
22
25
|
|
|
23
26
|
export const DEFAULT_LANGUAGE = 'en-US';
|
|
24
27
|
|
|
@@ -243,3 +246,15 @@ export const getDeviceLocale = (): string => {
|
|
|
243
246
|
return DEFAULT_LANGUAGE;
|
|
244
247
|
}
|
|
245
248
|
};
|
|
249
|
+
|
|
250
|
+
/**
|
|
251
|
+
* Search languages by name or native name
|
|
252
|
+
*/
|
|
253
|
+
export const searchLanguages = (query: string): Language[] => {
|
|
254
|
+
const lowerQuery = query.toLowerCase();
|
|
255
|
+
return SUPPORTED_LANGUAGES.filter(
|
|
256
|
+
(lang) =>
|
|
257
|
+
lang.name.toLowerCase().includes(lowerQuery) ||
|
|
258
|
+
lang.nativeName.toLowerCase().includes(lowerQuery)
|
|
259
|
+
);
|
|
260
|
+
};
|