Compare commits

...

4 Commits

Author SHA1 Message Date
b23c21d05b Merge pull request 'fix/lang' (#4) from fix/lang into main
Reviewed-on: #4
2026-02-04 09:12:58 +00:00
65a24f25bb fix(lang): 提取getCurrentLocale为独立函数并优化代码格式
将getCurrentLocale方法提取为独立函数以避免重复代码
移除多余的空格并保持代码风格一致
2026-02-04 17:10:12 +08:00
2a0935b581 Merge pull request 'docs: 更新readme文档结构和内容' (#2) from dev/1.0 into main
Reviewed-on: #2
2026-01-24 09:41:36 +00:00
b31197a8b4 Merge pull request 'dev/1.0' (#1) from dev/1.0 into main
Reviewed-on: #1
2026-01-24 09:24:05 +00:00

View File

@@ -30,12 +30,12 @@ function processRoutePath(route) {
} }
} }
// ---- 处理页面目录映射 <end>---- // ---- 处理页面目录映射 <end>----
// 去掉pages目录只保留子目录 // 去掉pages目录只保留子目录
if (routeParts[0] === 'pages') { if (routeParts[0] === 'pages') {
routeParts = routeParts.slice(1); routeParts = routeParts.slice(1);
} }
return routeParts.join("/"); return routeParts.join("/");
} }
@@ -54,6 +54,14 @@ function loadLangPackSync(lang, path) {
} }
} }
/**
* 获得当前本地语言
* @returns
*/
function getCurrentLocale() {
return uni.getStorageSync('lang') || "zh-cn";
}
export default { export default {
langList: langConfig.langList, langList: langConfig.langList,
@@ -61,9 +69,7 @@ export default {
* 获得当前本地语言 * 获得当前本地语言
* @returns * @returns
*/ */
getCurrentLocale() { getCurrentLocale,
return uni.getStorageSync('lang') || "zh-cn";
},
/** /**
* * 解析多语言 * * 解析多语言
@@ -73,7 +79,7 @@ export default {
let _page = getCurrentPages()[getCurrentPages().length - 1]; let _page = getCurrentPages()[getCurrentPages().length - 1];
if (!_page) return; if (!_page) return;
const locale = this.getCurrentLocale(); // 获得当前本地语言 const locale = getCurrentLocale(); // 获得当前本地语言
let value = ''; // 存放解析后的语言值 let value = ''; // 存放解析后的语言值
let langPath = ''; // 存放当前页面语言包路径 let langPath = ''; // 存放当前页面语言包路径
@@ -81,11 +87,11 @@ export default {
try { try {
//公共语言包(同步加载) //公共语言包(同步加载)
var lang = loadLangPackSync(locale, 'common'); var lang = loadLangPackSync(locale, 'common');
//当前页面语言包(同步加载) //当前页面语言包(同步加载)
let route = _page.route; let route = _page.route;
langPath = processRoutePath(route); langPath = processRoutePath(route);
// 加载当前页面语言包 // 加载当前页面语言包
let currentPageLang = loadLangPackSync(locale, langPath); let currentPageLang = loadLangPackSync(locale, langPath);
@@ -110,7 +116,7 @@ export default {
} else { } else {
value = mergedLang[field] !== undefined ? mergedLang[field] : field; value = mergedLang[field] !== undefined ? mergedLang[field] : field;
} }
} catch (e) { } catch (e) {
console.error('解析语言包失败:', e, { langPath, field, locale }); console.error('解析语言包失败:', e, { langPath, field, locale });
value = field; value = field;
@@ -126,7 +132,7 @@ export default {
// 多语言调试,注释后可以关闭控制台输出 // 多语言调试,注释后可以关闭控制台输出
if (field == value) { if (field == value) {
console.warn(`警告: 字段 ${field} 在语言包 ${langPath} 中未找到对应值,使用默认值 ${field} 当前语言: ${locale}`); console.warn(`警告: 字段 ${field} 在语言包 ${langPath} 中未找到对应值,使用默认值 ${field} 当前语言: ${locale}`);
} }
return value; return value;
@@ -141,7 +147,7 @@ export default {
if (!_page) return; if (!_page) return;
uni.setStorageSync("lang", value); uni.setStorageSync("lang", value);
const locale = this.getCurrentLocale(); const locale = getCurrentLocale();
// 清空已加载的语言包缓存 // 清空已加载的语言包缓存
for (let key in loadedLangPacks) { for (let key in loadedLangPacks) {
@@ -161,8 +167,8 @@ export default {
let _page = getCurrentPages()[getCurrentPages().length - 1]; let _page = getCurrentPages()[getCurrentPages().length - 1];
if (!_page) return; if (!_page) return;
const locale = this.getCurrentLocale(); const locale = getCurrentLocale();
this.title(this.lang("title")); this.title(this.lang("title"));
//设置tabbar的文字语言 //设置tabbar的文字语言