From 63891eb4b4f93d90f659a00dfde2f232a0f87184 Mon Sep 17 00:00:00 2001 From: LY Date: Fri, 16 May 2025 17:40:15 +0800 Subject: [PATCH] =?UTF-8?q?sample=E7=A4=BA=E4=BE=8B=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E8=A1=A5=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: LY --- .../Internationalization/README_zh.md | 2 +- .../Internationalization/build-profile.json5 | 6 +- .../ets/i18napplication/CalendarSetting.ets | 29 ++- .../i18napplication/CharacterProcessing.ets | 78 +++++-- .../i18napplication/DateTimeFormatting.ets | 6 +- .../NumberMeasurementFormatting.ets | 213 ++++++++++++------ .../base/element/strCharacterProcessing.json | 18 +- .../base/element/strDateTimeFormat.json | 2 +- .../base/element/strNumberMeasure.json | 28 +++ .../main/resources/base/element/strValue.json | 12 - 10 files changed, 271 insertions(+), 123 deletions(-) diff --git a/code/DocsSample/International/Internationalization/README_zh.md b/code/DocsSample/International/Internationalization/README_zh.md index 898520a4d7..28bd80ad04 100644 --- a/code/DocsSample/International/Internationalization/README_zh.md +++ b/code/DocsSample/International/Internationalization/README_zh.md @@ -65,7 +65,7 @@ entry/src/main/ets ### 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:RK3568。 -2. 本示例为Stage模型,支持API14版本SDK,版本号:5.0.2。 +2. 本示例为Stage模型,支持API18版本SDK,版本号:5.1.0。 3. 支持的IDE版本:本示例已支持DevEco Studio 5.0.1 Release (构建版本:5.0.5.306,构建 2024年12月6日)编译运行。 4. 本示例涉及[ohos.permission.UPDATE_CONFIGURATION](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/AccessToken/permissions-for-system-apps.md#ohospermissionupdate_configuration)为system_core级别,需要配置高权限签名,可参考[特殊权限配置方法](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/hapsigntool-overview.md)。 5. 本示例涉及系统接口,需要配置系统应用签名,可以参考[特殊权限配置方法](https://gitee.com/openharmony/docs/blob/OpenHarmony-5.0.1-Release/zh-cn/application-dev/security/hapsigntool-overview.md),把配置文件中的“app-feature”字段信息改为“hos_system_app”。 diff --git a/code/DocsSample/International/Internationalization/build-profile.json5 b/code/DocsSample/International/Internationalization/build-profile.json5 index 9b050d3379..1855454a5f 100644 --- a/code/DocsSample/International/Internationalization/build-profile.json5 +++ b/code/DocsSample/International/Internationalization/build-profile.json5 @@ -19,9 +19,9 @@ { "name": "default", "signingConfig": "default", - "compatibleSdkVersion": 14, - "compileSdkVersion": 14, - "targetSdkVersion": 14, + "compatibleSdkVersion": 18, + "compileSdkVersion": 18, + "targetSdkVersion": 18, "runtimeOS": "OpenHarmony" } ], diff --git a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CalendarSetting.ets b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CalendarSetting.ets index ec1ad135d9..a8933c6284 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CalendarSetting.ets +++ b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CalendarSetting.ets @@ -59,21 +59,18 @@ let isWeekend: boolean = calendar.isWeekend(new Date(2023, 9, 15)); // true // 在日历的给定字段进行加减操作 calendar.set(2023, 10, 15); calendar.add('date', 2); -calendar.get('date'); // 17 +let day: number = calendar.get('date'); // day = 17 // 比较日历和指定日期相差的天数 -calendar.compareDays(new Date(2023, 10, 15)); // -3 - -// 获取公历对应的农历日期 -let calendarCh: i18n.Calendar = i18n.getCalendar('zh-Hans', 'chinese'); - -// 将公历信息设置到calendar对象 -calendarCh.setTime(new Date(2023, 6, 25, 8, 0, 0)); +let daysDifference: number = calendar.compareDays(new Date(2023, 10, 15)); // daysDifference = -3 +let calendarChinese: i18n.Calendar = i18n.getCalendar('zh-Hans', 'chinese'); +// 将公历日期设置到calendar对象,时间日期为2023.07.25 08:00:00 +calendarChinese.setTime(new Date(2023, 6, 25, 8, 0, 0)); // 获取农历年月日 -calendarCh.get('year'); // 返回干支纪年40,范围1-60 -calendarCh.get('month'); // 结果为5,指6月 -calendarCh.get('date'); // 8日 +let yearChinese: number = calendarChinese.get('year'); // year = 40,指干支纪年40,范围1-60 +let monthChinese: number = calendarChinese.get('month'); // month = 5,指6月 +let dayChinese: number = calendarChinese.get('date'); // day = 8,指8日 const expectedTimezone = 'Asia/Shanghai'; const expectedFirstDayOfWeek = 1; @@ -119,18 +116,18 @@ struct CalendarSetting { .textStyle() Text(assertEqual(isWeekend, expectedIsWeekend, $r('app.string.IsWeekend'))) .textStyle() - Text(assertEqual(calendar.get('date'), expectedDateAddTwoDays, $r('app.string.DateAfterAddingDays'))) + Text(assertEqual(day, expectedDateAddTwoDays, $r('app.string.DateAfterAddingDays'))) .textStyle() - Text(assertEqual(calendar.compareDays(new Date(2023, 10, 15)), expectedCompareDays, + Text(assertEqual(daysDifference, expectedCompareDays, $r('app.string.DaysBetweenDates'))) .textStyle() Text($r('app.string.LunarCalendar')) .textStyle().fontWeight(FontWeight.Bold) - Text(assertEqual(calendarCh.get('year'), expectedCalendarYear, $r('app.string.LunarYear'))) + Text(assertEqual(yearChinese, expectedCalendarYear, $r('app.string.LunarYear'))) .textStyle() - Text(assertEqual(calendarCh.get('month'), expectedCalendarMonth, $r('app.string.LunarMonth'))) + Text(assertEqual(monthChinese, expectedCalendarMonth, $r('app.string.LunarMonth'))) .textStyle() - Text(assertEqual(calendarCh.get('date'), expectedCalendarDate, $r('app.string.LunarDate'))) + Text(assertEqual(dayChinese, expectedCalendarDate, $r('app.string.LunarDate'))) .textStyle() }.width('100%').height('100%').alignItems(HorizontalAlign.Start) } diff --git a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CharacterProcessing.ets b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CharacterProcessing.ets index b86d180826..1d885f7839 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CharacterProcessing.ets +++ b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/CharacterProcessing.ets @@ -16,7 +16,8 @@ import TitleBar from '../component/TitleBar'; import { assertEqual, assertEqualLong } from '../component/AssertEqual'; import { resourceToString } from '../component/ResourceToString'; -import { i18n } from '@kit.LocalizationKit'; +import { i18n, intl } from '@kit.LocalizationKit'; +import { BusinessError } from '@kit.BasicServicesKit'; /********************************************************************************************************************** * 字符属性开发参考步骤 @@ -54,23 +55,16 @@ let type = i18n.Unicode.getType('a'); // type: U_LOWERCASE_LETTER // 音译成Latn格式 let transliterator = i18n.Transliterator.getInstance('Any-Latn'); -let wordArray = - [resourceToString($r('app.string.CountryWordChina')), resourceToString($r('app.string.CountryWordGermany')), - resourceToString($r('app.string.CountryWordUSA')), resourceToString($r('app.string.CountryWordFrance'))] -let transRes: string[] = []; -for (let i = 0; i < wordArray.length; i++) { - let res = transliterator.transform(wordArray[i]); // res: zhōng guó, dé guó, měi guó, fǎ guó - transRes.push(res); -} +let text = resourceToString($r('app.string.CountryWordChina')); +let translatedText: string = transliterator.transform(text); // translatedText = 'zhōng guó' // 汉语音译去声调 -let transliter = i18n.Transliterator.getInstance('Any-Latn;Latin-Ascii'); -let result = transliter.transform(resourceToString($r('app.string.CountryWordChina'))); // result: zhong guo +let toneLessTransliterator = i18n.Transliterator.getInstance('Any-Latn;Latin-Ascii'); +let toneTranslatedText: string = toneLessTransliterator.transform(resourceToString($r('app.string.CountryWordChina'))); // result: zhong guo // 汉语姓氏读音 -let nameTransliter = i18n.Transliterator.getInstance('Han-Latin/Names'); -let result1 = nameTransliter.transform(resourceToString($r('app.string.TeacherShan'))); // result1: shàn lǎo shī -let result2 = nameTransliter.transform(resourceToString($r('app.string.ZhangSunWuJi'))); // result2: zhǎng sūn wú jì +let nameTransliterator = i18n.Transliterator.getInstance('Han-Latin/Names'); +let nameTranslatedText: string = nameTransliterator.transform(resourceToString($r('app.string.TeacherShan'))); // result1: shàn lǎo shī // 获取音译支持的ID列表 let ids = i18n.Transliterator.getAvailableIDs(); // ids: ['ASCII-Latin', 'Accents-Any', ...] @@ -128,14 +122,39 @@ let isBoundary = iterator.isBoundary(9); // isBoundary: true // 获取BreakIterator对象处理的文本 let breakText = iterator.getLineBreakText(); // breakText: Apple is my favorite fruit. +/********************************************************************************************************************** + * 文件路径镜像处理开发步骤参考 + * 1. 导入模块 + * import { i18n, intl } from '@kit.LocalizationKit'; + * 2. 文件路径镜像处理 + * let mirrorPath: string = i18n.I18NUtil.getUnicodeWrappedFilePath(path: string, delimiter?: string, locale?: intl.Locale); + *********************************************************************************************************************/ + +let mirrorPath: string = ""; +let unMirrorPath: string = ""; +// 传入镜像语言,对路径进行镜像处理 +let originPath: string = 'data/out/tmp'; + +try { + let delimiter: string = '/'; + let locale: intl.Locale = new intl.Locale('ar'); + // mirrorPath = 'tmp/out/data/' + mirrorPath = i18n.I18NUtil.getUnicodeWrappedFilePath(originPath, delimiter, locale); + // 传入非镜像语言,不处理路径 + let localeZh: intl.Locale = new intl.Locale('zh'); + // unMirrorPath = 'data/out/tmp' + unMirrorPath = i18n.I18NUtil.getUnicodeWrappedFilePath(originPath, delimiter, localeZh); +} catch (error) { + console.error(`call I18NUtil.getUnicodeWrappedFilePath failed, error code: ${error.code}, message: ${error.message}.`); +} + const expectedIsDigit = true; const expectedIsRTL = false; const expectedIsIdeograph = true; const expectedType = 'U_LOWERCASE_LETTER'; -const expectedTransResult = 'zhōng guó,dé guó,měi guó,fǎ guó'; -const expectedResult = 'zhong guo'; -const expectedResult1 = 'shàn lǎo shī'; -const expectedResult2 = 'zhǎng sūn wú jì'; +const expectedTransResult = 'zhōng guó'; +const expectedToneTranslatedText = 'zhong guo'; +const expectedNameTranslatedText = 'shàn lǎo shī'; const expectedIds = ['ASCII-Latin', 'Accents-Any']; const expectedNormalizedText = 'ẛ̣'; const expectedFirstPos = 0; @@ -171,13 +190,11 @@ export default struct CharacterProcessing { Text($r('app.string.ResultsOfTrans')) .textStyle() .fontWeight(FontWeight.Bold) - Text(assertEqual(transRes.join(','), expectedTransResult, $r('app.string.CharacterTransResult'))) - .textStyle() - Text(assertEqual(result, expectedResult, $r('app.string.ChinaTrans'))) + Text(assertEqual(translatedText, expectedTransResult, $r('app.string.CharacterTransResult'))) .textStyle() - Text(assertEqual(result1, expectedResult1, $r('app.string.TeachersSurnameTrans'))) + Text(assertEqual(toneTranslatedText, expectedToneTranslatedText, $r('app.string.ChinaTrans'))) .textStyle() - Text(assertEqual(result2, expectedResult2, $r('app.string.ZhangSunWuJiTrans'))) + Text(assertEqual(nameTranslatedText, expectedNameTranslatedText, $r('app.string.TeachersSurnameTrans'))) .textStyle() Text(assertEqualLong(ids.join(', '), expectedIds, $r('app.string.ResultsOfSupportedId'))) .textStyle() @@ -213,6 +230,21 @@ export default struct CharacterProcessing { .textStyle() Text(assertEqual(breakText, expectedBreakText, $r('app.string.BreakText'))) .textStyle() + Text($r('app.string.ResultsOfMirror')) + .textStyle() + .fontWeight(FontWeight.Bold) + Text($r('app.string.originPath')) + .textStyle() + Text(originPath) + .textStyle() + Text($r('app.string.MirrorLanguage')) + .textStyle() + Text(mirrorPath) + .textStyle() + Text($r('app.string.UnMirrorLanguage')) + .textStyle() + Text(unMirrorPath) + .textStyle() Blank().height('10%') } .alignItems(HorizontalAlign.Start) diff --git a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/DateTimeFormatting.ets b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/DateTimeFormatting.ets index 6738933d12..1034383668 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/DateTimeFormatting.ets +++ b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/DateTimeFormatting.ets @@ -134,9 +134,9 @@ const expectedFormattedRelativeTime2 = 'yesterday'; const expectedFormattedRelativeTime3 = 'il y a 1 jour'; const expectedFormattedRelativeTime4 = '-1 j'; const expectedCustomFormat = - '[{\"type\":\"literal\",\"value\":\"in \"},' + - '{\"type\":\"integer\",\"value\":\"1\",\"unit\":\"day\"},' + - '{\"type\":\"literal\",\"value\":\" day\"}]'; + '[{\"value\":\"in \",\"type\":\"literal\"},' + + '{\"value\":\"1\",\"unit\":\"day\",\"type\":\"integer\"},' + + '{\"value\":\" day\",\"type\":\"literal\"}]'; const expectedNumeric = 'auto'; @Extend(Text) diff --git a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/NumberMeasurementFormatting.ets b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/NumberMeasurementFormatting.ets index 517dad7efb..e21b2a033a 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/NumberMeasurementFormatting.ets +++ b/code/DocsSample/International/Internationalization/entry/src/main/ets/i18napplication/NumberMeasurementFormatting.ets @@ -33,37 +33,94 @@ import { i18n, intl } from '@kit.LocalizationKit'; // 数字格式化开发示实例 // 用科学计数法显示数字 -let numberFormat1 = new intl.NumberFormat('zh-CN', { notation: 'scientific', maximumSignificantDigits: 3 }); -let formattedNumber1 = numberFormat1.format(123400); // formattedNumber1: 1.23E5 +let scientificFormat: intl.NumberFormat = new intl.NumberFormat('zh-CN', + { + notation: 'scientific', + maximumSignificantDigits: 3 + }); +let scientificNumber: string = scientificFormat.format(123400); // scientificNumber = '1.23E5' // 用紧凑的格式显示数字 -let numberFormat2 = new intl.NumberFormat('zh-CN', { notation: 'compact', compactDisplay: 'short' }); -let formattedNumber2 = numberFormat2.format(123400); // formattedNumber2: 12万 +let compactFormat: intl.NumberFormat = new intl.NumberFormat('zh-CN', + { + notation: 'compact', + compactDisplay: 'short' + }); +let compactNumber: string = compactFormat.format(123400); // compactNumber = '12万' // 显示数字的符号 -let numberFormat3 = new intl.NumberFormat('zh-CN', { signDisplay: 'always' }); -let formattedNumber3 = numberFormat3.format(123400); // formattedNumber3: +123,400 +let signFormat: intl.NumberFormat = new intl.NumberFormat('zh-CN', { signDisplay: 'always' }); +let signNumber: string = signFormat.format(123400); // signNumber = '+123,400' // 显示百分数 -let numberFormat4 = new intl.NumberFormat('zh-CN', { style: 'percent' }); -let formattedNumber4 = numberFormat4.format(0.25); // formattedNumber4: 25% +let percentFormat: intl.NumberFormat = new intl.NumberFormat('zh-CN', { style: 'percent' }); +let percentNumber: string = percentFormat.format(0.25); // percentNumber = '25%' + +// 舍入模式 +let truncFormat: intl.NumberFormat = new intl.NumberFormat('en', + { + roundingMode: 'trunc', + maximumSignificantDigits: 2 + }); +let truncPositiveNumber: string = truncFormat.format(2.28); // truncPositiveNumber = '2.2' +let truncNegativeNumber: string = truncFormat.format(-2.25); // truncNegativeNumber = '-2.2' + +// 舍入优先级 +let lessPrecisionOptions: intl.NumberOptions = { + roundingPriority: 'lessPrecision', + maximumFractionDigits: 3, + maximumSignificantDigits: 2 +}; +let lessPrecisionFormat: intl.NumberFormat = new intl.NumberFormat('en', lessPrecisionOptions); +let lessPrecisionNumber: string = lessPrecisionFormat.format(1.23456); // lessPrecisionNumber = '1.2' + +// 舍入增量 +let halfCeilNumOptions: intl.NumberOptions = { + style: 'currency', + currency: 'USD', + roundingIncrement: 5, + maximumFractionDigits: 2, + roundingMode: 'halfCeil' +}; +let halfCeilFormat: intl.NumberFormat = new intl.NumberFormat('en-US', halfCeilNumOptions); +let halfCeilNumber: string = halfCeilFormat.format(11.21); // halfCeilNumber = '$11.20' + +// 数字范围格式化 +let options: intl.NumberOptions = { + style: 'currency', + currency: 'EUR', + maximumFractionDigits: 0 +}; +let numberRangeFormat: intl.NumberFormat = new intl.NumberFormat('es-ES', options); +let integerFormattedRange: string = numberRangeFormat.formatRange(2, 8); // integerFormattedRange = '2-8 €' +let fractionFormattedRange: string = numberRangeFormat.formatRange(2.9, 3.1); // fractionFormattedRange = '~3 €' // 货币和单位格式化开发实例 // 格式化货币 -let numberFormat5 = new intl.NumberFormat('zh-CN', { style: 'currency', currency: 'USD' }); -let formattedNumber5 = numberFormat5.format(123400); // formattedNumber5: US$123,400.00 +let currencyFormat: intl.NumberFormat = new intl.NumberFormat('zh-CN', { style: 'currency', currency: 'USD' }); +let currencyNumber: string = currencyFormat.format(123400); // currencyNumber = 'US$123,400.00' // 用名称表示货币 -let numberFormat6 = new intl.NumberFormat('zh-CN', { style: 'currency', currency: 'USD', currencyDisplay: 'name' }); -let formattedNumber6 = numberFormat6.format(123400); // formattedNumber6: 123,400.00美元 +let currencyNameFormat: intl.NumberFormat = new intl.NumberFormat('zh-CN', + { + style: 'currency', + currency: 'USD', + currencyDisplay: 'name' + }); +let currencyDisplayNumber: string = currencyNameFormat.format(123400); // currencyDisplayNumber = '123,400.00美元' // 格式化度量衡 -let numberFormat7 = new intl.NumberFormat('en-GB', { style: 'unit', unit: 'hectare' }); -let formattedNumber7 = numberFormat7.format(123400); // formattedNumber7: 123,400 ha +let unitFormat: intl.NumberFormat = new intl.NumberFormat('en-GB', { style: 'unit', unit: 'hectare' }); +let unitNumber: string = unitFormat.format(123400); // unitNumber = '123,400 ha' // 格式化特定场景下度量衡,如面积-土地-农业 -let numberFormat8 = new intl.NumberFormat('en-GB', { style: 'unit', unit: 'hectare', unitUsage: 'area-land-agricult' }); -let formattedNumber8 = numberFormat8.format(123400); // formattedNumber8: 304,928.041 ac +let unitUsageFormat: intl.NumberFormat = new intl.NumberFormat('en-GB', + { + style: 'unit', + unit: 'hectare', + unitUsage: 'area-land-agricult' + }); +let unitUsageNumber = unitUsageFormat.format(123400); // unitUsageNumber = '304,928.041 ac' /********************************************************************************************************************** * 度量衡转换开发参考步骤 @@ -80,22 +137,28 @@ let fromUnit: i18n.UnitInfo = { unit: 'cup', measureSystem: 'US' }; let toUnit: i18n.UnitInfo = { unit: 'liter', measureSystem: 'SI' }; // 以en-US区域参数转换度量衡 -let convertedUnit1 = i18n.I18NUtil.unitConvert(fromUnit, toUnit, 1000, 'en-US'); // convertedUnit1: 236.588 L +let simplifyConvertedUnit: string = i18n.I18NUtil.unitConvert(fromUnit, toUnit, 1000, 'en-US'); // simplifyConvertedUnit: 236.588 L // 显示完整的度量衡 -let convertedUnit2 = +let convertedUnit = i18n.I18NUtil.unitConvert(fromUnit, toUnit, 1000, 'en-US', 'long'); // convertedUnit2: 236.588 liters -const expectedFormattedNumber1 = '1.23E5'; -const expectedFormattedNumber2 = resourceToString($r('app.string.ExpectedFormattedNumber2')); -const expectedFormattedNumber3 = '+123,400'; -const expectedFormattedNumber4 = '25%'; -const expectedFormattedNumber5 = 'US$123,400.00' -const expectedFormattedNumber6 = resourceToString($r('app.string.ExpectedFormattedNumber6')); -const expectedFormattedNumber7 = '123,400 ha'; -const expectedFormattedNumber8 = '304,928.041 ac'; -const expectedConvertedUnit1 = '236.588 L'; -const expectedconvertedUnit2 = '236.588 liters'; +const expectedScientificNumber = '1.23E5'; +const expectedCompactNumber = resourceToString($r('app.string.ExpectedFormattedNumber2')); +const expectedSignNumber = '+123,400'; +const expectedPercentNumber = '25%'; +const expectedTruncPositiveNumber = '2.2'; +const expectedTruncNegativeNumber = '-2.2'; +const expectedLessPrecisionNumber = '1.2'; +const expectedHalfCeilNumber = '$11.20'; +const expectedIntegerFormattedRange = '2-8 €'; +const expectedFractionFormattedRange = '~3 €'; +const expectedCurrencyNumber= 'US$123,400.00' +const expectedCurrencyDisplayNumber = resourceToString($r('app.string.ExpectedFormattedNumber6')); +const expectedUnitNumber = '123,400 ha'; +const expectedUnitUsageNumber = '304,928.041 ac'; +const expectedSimplifyConvertedUnit = '236.588 L'; +const expectedConvertedUnit = '236.588 liters'; @Extend(Text) function textStyle() { @@ -107,40 +170,64 @@ function textStyle() { @Component struct NumberMeasurementFormatting { build() { - Column() { - TitleBar({ hasBackPress: true, title: $r('app.string.NumberMeasurementFormatting') }) - Text($r('app.string.ResultsOfNumberFormat')) - .textStyle() - .fontWeight(FontWeight.Bold) - Text(assertEqual(formattedNumber1, expectedFormattedNumber1, $r('app.string.ScientificDisplayNumber'))) - .textStyle() - Text(assertEqual(formattedNumber2, expectedFormattedNumber2, $r('app.string.CompactDisplayNumber'))) - .textStyle() - Text(assertEqual(formattedNumber3, expectedFormattedNumber3, $r('app.string.SignDisplayNumber'))) - .textStyle() - Text(assertEqual(formattedNumber4, expectedFormattedNumber4, $r('app.string.PercentDisplayNumber'))) - .textStyle() - Text($r('app.string.ResultsOfCurrencyAndUnit')) - .textStyle() - .fontWeight(FontWeight.Bold) - Text(assertEqual(formattedNumber5, expectedFormattedNumber5, $r('app.string.DisplayCurrency'))) - .textStyle() - Text(assertEqual(formattedNumber6, expectedFormattedNumber6, $r('app.string.DisplayCurrencyName'))) - .textStyle() - Text(assertEqual(formattedNumber7, expectedFormattedNumber7, $r('app.string.DisplayUnit'))) - .textStyle() - Text(assertEqual(formattedNumber8, expectedFormattedNumber8, $r('app.string.DisplayUnitLand'))) - .textStyle() - Text($r('app.string.ResultsOfMeasureTrans')) - .textStyle() - .fontWeight(FontWeight.Bold) - Text(`${assertEqual(convertedUnit1, expectedConvertedUnit1, $r('app.string.MeasureTrans'))}`) - .textStyle() - Text(`${assertEqual(convertedUnit2, expectedconvertedUnit2, $r('app.string.LongMeasureTrans'))}`) - .textStyle() - } - .height('100%') - .width('100%') - .alignItems(HorizontalAlign.Start) + Column() { + TitleBar({ hasBackPress: true, title: $r('app.string.NumberMeasurementFormatting') }) + Scroll() { + Column() { + Text($r('app.string.ResultsOfNumberFormat')) + .textStyle() + .fontWeight(FontWeight.Bold) + Text(assertEqual(scientificNumber, expectedScientificNumber, $r('app.string.ScientificDisplayNumber'))) + .textStyle() + Text(assertEqual(compactNumber, expectedCompactNumber, $r('app.string.CompactDisplayNumber'))) + .textStyle() + Text(assertEqual(signNumber, expectedSignNumber, $r('app.string.SignDisplayNumber'))) + .textStyle() + Text(assertEqual(percentNumber, expectedPercentNumber, $r('app.string.PercentDisplayNumber'))) + .textStyle() + Text(assertEqual(truncPositiveNumber, expectedTruncPositiveNumber, $r('app.string.RoundingModePositive'))) + .textStyle() + Text(assertEqual(truncNegativeNumber, expectedTruncNegativeNumber, $r('app.string.RoundingModeNegative'))) + .textStyle() + Text(assertEqual(lessPrecisionNumber, expectedLessPrecisionNumber, $r('app.string.RoundingPriority'))) + .textStyle() + Text(assertEqual(halfCeilNumber, expectedHalfCeilNumber, $r('app.string.RoundingMode'))) + .textStyle() + Text($r('app.string.ResultsOfCurrencyAndUnit')) + .textStyle() + .fontWeight(FontWeight.Bold) + Text(assertEqual(integerFormattedRange, expectedIntegerFormattedRange, + $r('app.string.IntegerFormattedRange'))) + .textStyle() + Text(assertEqual(fractionFormattedRange, expectedFractionFormattedRange, + $r('app.string.FractionFormattedRange'))) + .textStyle() + Text($r('app.string.FormatRange')) + .textStyle() + .fontWeight(FontWeight.Bold) + Text(assertEqual(currencyNumber, expectedCurrencyNumber, $r('app.string.DisplayCurrency'))) + .textStyle() + Text(assertEqual(currencyDisplayNumber, expectedCurrencyDisplayNumber, + $r('app.string.DisplayCurrencyName'))) + .textStyle() + Text(assertEqual(unitNumber, expectedUnitNumber, $r('app.string.DisplayUnit'))) + .textStyle() + Text(assertEqual(unitUsageNumber, expectedUnitUsageNumber, $r('app.string.DisplayUnitLand'))) + .textStyle() + Text($r('app.string.ResultsOfMeasureTrans')) + .textStyle() + .fontWeight(FontWeight.Bold) + Text(`${assertEqual(simplifyConvertedUnit, expectedSimplifyConvertedUnit, $r('app.string.MeasureTrans'))}`) + .textStyle() + Text(`${assertEqual(convertedUnit, expectedConvertedUnit, $r('app.string.LongMeasureTrans'))}`) + .textStyle() + Blank().height('10%') + }.alignItems(HorizontalAlign.Start) + } + } + .height('100%') + .width('100%') + .alignItems(HorizontalAlign.Start) + } } \ No newline at end of file diff --git a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strCharacterProcessing.json b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strCharacterProcessing.json index ebd916e6a4..44979270f0 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strCharacterProcessing.json +++ b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strCharacterProcessing.json @@ -26,7 +26,7 @@ }, { "name": "CharacterTransResult", - "value": "中国,德国,美国,法国音译结果: " + "value": "中国音译结果: " }, { "name": "ChinaTrans", @@ -71,6 +71,22 @@ { "name": "BreakText", "value": "断句文本: " + }, + { + "name": "ResultsOfMirror", + "value": "文件路径镜像处理测试结果: " + }, + { + "name": "originPath", + "value": "原始路径: " + }, + { + "name": "MirrorLanguage", + "value": "镜像语言: " + }, + { + "name": "UnMirrorLanguage", + "value": "非镜像语言: " } ] } diff --git a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strDateTimeFormat.json b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strDateTimeFormat.json index b752cd0358..d5def94c7d 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strDateTimeFormat.json +++ b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strDateTimeFormat.json @@ -2,7 +2,7 @@ "string": [ { "name": "ResultsOfDateTimeFormat", - "value": "时间日期格式化结果: " + "value": "系统时制为24小时制条件下时间日期格式化结果: " }, { "name": "FullDateStyle", diff --git a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strNumberMeasure.json b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strNumberMeasure.json index 651f052764..67ee89a781 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strNumberMeasure.json +++ b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strNumberMeasure.json @@ -20,6 +20,34 @@ "name": "PercentDisplayNumber", "value": "显示百分数: " }, + { + "name": "RoundingModePositive", + "value": "舍入模式(正数): " + }, + { + "name": "RoundingModeNegative", + "value": "舍入模式(负数): " + }, + { + "name": "RoundingPriority", + "value": "舍入优先级: " + }, + { + "name": "RoundingMode", + "value": "舍入增量: " + }, + { + "name": "FormatRange", + "value": "数字范围格式化: " + }, + { + "name": "IntegerFormattedRange", + "value": "整数范围格式化: " + }, + { + "name": "FractionFormattedRange", + "value": "小数舍入范围格式化: " + }, { "name": "ResultsOfCurrencyAndUnit", "value": "货币和单位格式化结果: " diff --git a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strValue.json b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strValue.json index c0fc5ea743..20587043c5 100644 --- a/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strValue.json +++ b/code/DocsSample/International/Internationalization/entry/src/main/resources/base/element/strValue.json @@ -12,18 +12,6 @@ "name": "CountryWordChina", "value": "中国" }, - { - "name": "CountryWordGermany", - "value": "德国" - }, - { - "name": "CountryWordUSA", - "value": "美国" - }, - { - "name": "CountryWordFrance", - "value": "法国" - }, { "name": "TeacherShan", "value": "单老师" -- Gitee