@@ -81,32 +81,33 @@ export function isChineseUser() {
8181}
8282
8383// 匹配语言
84- export async function matchLanguage ( ) {
85- const acceptLanguages = await chrome . i18n . getAcceptLanguages ( ) ;
86- // 遍历数组寻找匹配语言
87- for ( let i = 0 ; i < acceptLanguages . length ; i += 1 ) {
88- const lng = acceptLanguages [ i ] ;
89- if ( i18n . hasResourceBundle ( lng , "translation" ) ) {
90- return lng ;
84+ export function matchLanguage ( ) : Promise < string > {
85+ return chrome . i18n . getAcceptLanguages ( ) . then ( ( acceptLanguages ) => {
86+ // 遍历数组寻找匹配语言
87+ for ( let i = 0 ; i < acceptLanguages . length ; i += 1 ) {
88+ const lng = acceptLanguages [ i ] ;
89+ if ( i18n . hasResourceBundle ( lng , "translation" ) ) {
90+ return lng ;
91+ }
9192 }
92- }
93- // 根据前缀去匹配
94- const prefixMap = { } as Partial < Record < string , string [ ] > > ;
95- for ( const lng of i18n . languages ) {
96- const prefix = lng . split ( "-" ) [ 0 ] ;
97- if ( ! prefixMap [ prefix ] ) {
98- prefixMap [ prefix ] = [ ] ;
93+ // 根据前缀去匹配
94+ const prefixMap = { } as Partial < Record < string , string [ ] > > ;
95+ for ( const lng of i18n . languages ) {
96+ const prefix = lng . split ( "-" ) [ 0 ] ;
97+ if ( ! prefixMap [ prefix ] ) {
98+ prefixMap [ prefix ] = [ ] ;
99+ }
100+ prefixMap [ prefix ] . push ( lng ) ;
99101 }
100- prefixMap [ prefix ] . push ( lng ) ;
101- }
102- for ( let i = 0 ; i < acceptLanguages . length ; i += 1 ) {
103- const lng = acceptLanguages [ i ] ;
104- const prefix = lng . split ( "-" ) [ 0 ] ;
105- if ( prefixMap [ prefix ] && prefixMap [ prefix ] . length > 0 ) {
106- return prefixMap [ prefix ] [ 0 ] ; // 返回第一个匹配的语言
102+ for ( let i = 0 ; i < acceptLanguages . length ; i += 1 ) {
103+ const lng = acceptLanguages [ i ] ;
104+ const prefix = lng . split ( "-" ) [ 0 ] ;
105+ if ( prefixMap [ prefix ] && prefixMap [ prefix ] . length > 0 ) {
106+ return prefixMap [ prefix ] [ 0 ] ; // 返回第一个匹配的语言
107+ }
107108 }
108- }
109- return "" ;
109+ return "" ;
110+ } ) ;
110111}
111112
112113export { t } ;
0 commit comments