Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lzb_79
uni-app
提交
cd03dc19
U
uni-app
项目概览
lzb_79
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cd03dc19
编写于
9月 08, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(i18n): add resolveLocale
上级
ddc767ef
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
112 addition
and
10 deletion
+112
-10
packages/uni-app-plus/dist/uni-app-service.es.js
packages/uni-app-plus/dist/uni-app-service.es.js
+3
-2
packages/uni-app-plus/dist/uni-app-view.umd.js
packages/uni-app-plus/dist/uni-app-view.umd.js
+1
-1
packages/uni-i18n/__tests__/locale.spec.ts
packages/uni-i18n/__tests__/locale.spec.ts
+32
-0
packages/uni-i18n/dist/uni-i18n.cjs.js
packages/uni-i18n/dist/uni-i18n.cjs.js
+22
-2
packages/uni-i18n/dist/uni-i18n.d.ts
packages/uni-i18n/dist/uni-i18n.d.ts
+4
-0
packages/uni-i18n/dist/uni-i18n.es.js
packages/uni-i18n/dist/uni-i18n.es.js
+22
-3
packages/uni-i18n/src/I18n.ts
packages/uni-i18n/src/I18n.ts
+2
-2
packages/uni-i18n/src/index.ts
packages/uni-i18n/src/index.ts
+1
-0
packages/uni-i18n/src/locale/index.ts
packages/uni-i18n/src/locale/index.ts
+25
-0
未找到文件。
packages/uni-app-plus/dist/uni-app-service.es.js
浏览文件 @
cd03dc19
...
...
@@ -1387,10 +1387,10 @@ var serviceContext = (function (vue) {
}
locale = locale.toLowerCase();
if (locale.indexOf('zh') === 0) {
if (locale.indexOf('-hans')
!==
-1) {
if (locale.indexOf('-hans')
>
-1) {
return LOCALE_ZH_HANS;
}
if (locale.indexOf('-hant')
!==
-1) {
if (locale.indexOf('-hant')
>
-1) {
return LOCALE_ZH_HANT;
}
if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {
...
...
@@ -7607,6 +7607,7 @@ var serviceContext = (function (vue) {
plus.zip.compressVideo({
src: tempFilePath,
filename,
quality: 'medium',
}, ({ tempFilePath }) => {
resolve(tempFilePath);
}, () => {
...
...
packages/uni-app-plus/dist/uni-app-view.umd.js
浏览文件 @
cd03dc19
因为 它太大了无法显示 source diff 。你可以改为
查看blob
。
packages/uni-i18n/__tests__/locale.spec.ts
0 → 100644
浏览文件 @
cd03dc19
import
{
LOCALE_ZH_HANS
,
LOCALE_ZH_HANT
,
LOCALE_EN
,
LOCALE_ES
,
LOCALE_FR
,
}
from
'
../src/I18n
'
import
{
resolveLocale
}
from
'
../src/locale
'
const
resolve
=
resolveLocale
([
LOCALE_ZH_HANS
,
LOCALE_ZH_HANT
,
LOCALE_EN
,
LOCALE_ES
,
LOCALE_FR
,
])
describe
(
'
resolveLocale
'
,
()
=>
{
test
(
'
zh=>zh-Hans
'
,
()
=>
{
expect
(
resolve
(
'
zh
'
)).
toBe
(
'
zh-Hans
'
)
})
test
(
'
zh-CN=>zh-Hans
'
,
()
=>
{
expect
(
resolve
(
'
zh-CN
'
)).
toBe
(
'
zh-Hans
'
)
expect
(
resolve
(
'
zh_CN
'
)).
toBe
(
'
zh-Hans
'
)
})
test
(
'
en-US=>en
'
,
()
=>
{
expect
(
resolve
(
'
en-US
'
)).
toBe
(
'
en
'
)
expect
(
resolveLocale
([
'
en
'
])(
'
en-US
'
)).
toBe
(
'
en
'
)
})
test
(
'
a-b-c=>a-b
'
,
()
=>
{
expect
(
resolveLocale
([
'
a-b
'
,
'
a
'
])(
'
a-b-c
'
)).
toBe
(
'
a-b
'
)
})
})
packages/uni-i18n/dist/uni-i18n.cjs.js
浏览文件 @
cd03dc19
...
...
@@ -126,10 +126,10 @@ function normalizeLocale(locale, messages) {
}
locale
=
locale
.
toLowerCase
();
if
(
locale
.
indexOf
(
'
zh
'
)
===
0
)
{
if
(
locale
.
indexOf
(
'
-hans
'
)
!==
-
1
)
{
if
(
locale
.
indexOf
(
'
-hans
'
)
>
-
1
)
{
return
LOCALE_ZH_HANS
;
}
if
(
locale
.
indexOf
(
'
-hant
'
)
!==
-
1
)
{
if
(
locale
.
indexOf
(
'
-hant
'
)
>
-
1
)
{
return
LOCALE_ZH_HANT
;
}
if
(
include
(
locale
,
[
'
-tw
'
,
'
-hk
'
,
'
-mo
'
,
'
-cht
'
]))
{
...
...
@@ -429,6 +429,25 @@ function walkJsonObj(jsonObj, walk) {
return
false
;
}
function
resolveLocale
(
locales
)
{
return
(
locale
)
=>
{
if
(
!
locale
)
{
return
locale
;
}
locale
=
normalizeLocale
(
locale
)
||
locale
;
return
resolveLocaleChain
(
locale
).
find
((
locale
)
=>
locales
.
indexOf
(
locale
)
>
-
1
);
};
}
function
resolveLocaleChain
(
locale
)
{
const
chain
=
[];
const
tokens
=
locale
.
split
(
'
-
'
);
while
(
tokens
.
length
)
{
chain
.
push
(
tokens
.
join
(
'
-
'
));
tokens
.
pop
();
}
return
chain
;
}
exports
.
Formatter
=
BaseFormatter
;
exports
.
I18n
=
I18n
;
exports
.
LOCALE_EN
=
LOCALE_EN
;
...
...
@@ -443,3 +462,4 @@ exports.isI18nStr = isI18nStr;
exports
.
isString
=
isString
;
exports
.
normalizeLocale
=
normalizeLocale
;
exports
.
parseI18nJson
=
parseI18nJson
;
exports
.
resolveLocale
=
resolveLocale
;
packages/uni-i18n/dist/uni-i18n.d.ts
浏览文件 @
cd03dc19
...
...
@@ -59,6 +59,8 @@ export declare function isI18nStr(value: string, delimiters: [string, string]):
export
declare
const
isString
:
(
val
:
unknown
)
=>
val
is
string
;
declare
type
Locale
=
string
;
export
declare
const
LOCALE_EN
=
"
en
"
;
export
declare
const
LOCALE_ES
=
"
es
"
;
...
...
@@ -77,6 +79,8 @@ export declare function normalizeLocale(locale: string, messages?: LocaleMessage
export
declare
function
parseI18nJson
(
jsonObj
:
unknown
,
values
:
Record
<
string
,
string
>
,
delimiters
:
[
string
,
string
]):
unknown
;
export
declare
function
resolveLocale
(
locales
:
Locale
[]):
(
locale
:
Locale
)
=>
string
|
undefined
;
declare
type
Token
=
{
type
:
'
text
'
|
'
named
'
|
'
list
'
|
'
unknown
'
;
value
:
string
;
...
...
packages/uni-i18n/dist/uni-i18n.es.js
浏览文件 @
cd03dc19
...
...
@@ -122,10 +122,10 @@ function normalizeLocale(locale, messages) {
}
locale
=
locale
.
toLowerCase
();
if
(
locale
.
indexOf
(
'
zh
'
)
===
0
)
{
if
(
locale
.
indexOf
(
'
-hans
'
)
!==
-
1
)
{
if
(
locale
.
indexOf
(
'
-hans
'
)
>
-
1
)
{
return
LOCALE_ZH_HANS
;
}
if
(
locale
.
indexOf
(
'
-hant
'
)
!==
-
1
)
{
if
(
locale
.
indexOf
(
'
-hant
'
)
>
-
1
)
{
return
LOCALE_ZH_HANT
;
}
if
(
include
(
locale
,
[
'
-tw
'
,
'
-hk
'
,
'
-mo
'
,
'
-cht
'
]))
{
...
...
@@ -425,4 +425,23 @@ function walkJsonObj(jsonObj, walk) {
return
false
;
}
export
{
BaseFormatter
as
Formatter
,
I18n
,
LOCALE_EN
,
LOCALE_ES
,
LOCALE_FR
,
LOCALE_ZH_HANS
,
LOCALE_ZH_HANT
,
compileI18nJsonStr
,
hasI18nJson
,
initVueI18n
,
isI18nStr
,
isString
,
normalizeLocale
,
parseI18nJson
};
function
resolveLocale
(
locales
)
{
return
(
locale
)
=>
{
if
(
!
locale
)
{
return
locale
;
}
locale
=
normalizeLocale
(
locale
)
||
locale
;
return
resolveLocaleChain
(
locale
).
find
((
locale
)
=>
locales
.
indexOf
(
locale
)
>
-
1
);
};
}
function
resolveLocaleChain
(
locale
)
{
const
chain
=
[];
const
tokens
=
locale
.
split
(
'
-
'
);
while
(
tokens
.
length
)
{
chain
.
push
(
tokens
.
join
(
'
-
'
));
tokens
.
pop
();
}
return
chain
;
}
export
{
BaseFormatter
as
Formatter
,
I18n
,
LOCALE_EN
,
LOCALE_ES
,
LOCALE_FR
,
LOCALE_ZH_HANS
,
LOCALE_ZH_HANT
,
compileI18nJsonStr
,
hasI18nJson
,
initVueI18n
,
isI18nStr
,
isString
,
normalizeLocale
,
parseI18nJson
,
resolveLocale
};
packages/uni-i18n/src/I18n.ts
浏览文件 @
cd03dc19
...
...
@@ -60,10 +60,10 @@ export function normalizeLocale(
}
locale
=
locale
.
toLowerCase
()
if
(
locale
.
indexOf
(
'
zh
'
)
===
0
)
{
if
(
locale
.
indexOf
(
'
-hans
'
)
!==
-
1
)
{
if
(
locale
.
indexOf
(
'
-hans
'
)
>
-
1
)
{
return
LOCALE_ZH_HANS
}
if
(
locale
.
indexOf
(
'
-hant
'
)
!==
-
1
)
{
if
(
locale
.
indexOf
(
'
-hant
'
)
>
-
1
)
{
return
LOCALE_ZH_HANT
}
if
(
include
(
locale
,
[
'
-tw
'
,
'
-hk
'
,
'
-mo
'
,
'
-cht
'
]))
{
...
...
packages/uni-i18n/src/index.ts
浏览文件 @
cd03dc19
export
*
from
'
./I18n
'
export
*
from
'
./vue-i18n
'
export
*
from
'
./json
'
export
{
resolveLocale
}
from
'
./locale
'
export
{
default
as
Formatter
}
from
'
./format
'
packages/uni-i18n/src/locale/index.ts
0 → 100644
浏览文件 @
cd03dc19
import
{
normalizeLocale
}
from
'
../I18n
'
type
Locale
=
string
export
function
resolveLocale
(
locales
:
Locale
[])
{
return
(
locale
:
Locale
)
=>
{
if
(
!
locale
)
{
return
locale
}
locale
=
normalizeLocale
(
locale
)
||
locale
return
resolveLocaleChain
(
locale
).
find
(
(
locale
)
=>
locales
.
indexOf
(
locale
)
>
-
1
)
}
}
function
resolveLocaleChain
(
locale
:
Locale
):
Locale
[]
{
const
chain
:
Locale
[]
=
[]
const
tokens
=
locale
.
split
(
'
-
'
)
while
(
tokens
.
length
)
{
chain
.
push
(
tokens
.
join
(
'
-
'
))
tokens
.
pop
()
}
return
chain
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录