123b3eb3cSopenharmony_ci/* 223b3eb3cSopenharmony_ci * Copyright (c) 2021-2022 Huawei Device Co., Ltd. 323b3eb3cSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 423b3eb3cSopenharmony_ci * you may not use this file except in compliance with the License. 523b3eb3cSopenharmony_ci * You may obtain a copy of the License at 623b3eb3cSopenharmony_ci * 723b3eb3cSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 823b3eb3cSopenharmony_ci * 923b3eb3cSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1023b3eb3cSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1123b3eb3cSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1223b3eb3cSopenharmony_ci * See the License for the specific language governing permissions and 1323b3eb3cSopenharmony_ci * limitations under the License. 1423b3eb3cSopenharmony_ci */ 1523b3eb3cSopenharmony_ci 1623b3eb3cSopenharmony_ci#include "base/i18n/localization.h" 1723b3eb3cSopenharmony_ci 1823b3eb3cSopenharmony_cinamespace OHOS::Ace { 1923b3eb3cSopenharmony_cinamespace { 2023b3eb3cSopenharmony_ciconstexpr int32_t DAY_COUNTS_OF_WEEK = 7; 2123b3eb3cSopenharmony_ciconstexpr int32_t MONTH_COUNTS_OF_YEAR = 12; 2223b3eb3cSopenharmony_ci} // namespace 2323b3eb3cSopenharmony_ci 2423b3eb3cSopenharmony_cistruct LocaleProxy final {}; 2523b3eb3cSopenharmony_ciLocalization::~Localization() = default; 2623b3eb3cSopenharmony_ci 2723b3eb3cSopenharmony_civoid Localization::SetLocaleImpl(const std::string& language, const std::string& countryOrRegion, 2823b3eb3cSopenharmony_ci const std::string& script, const std::string& selectLanguage, const std::string& keywordsAndValues) 2923b3eb3cSopenharmony_ci{ 3023b3eb3cSopenharmony_ci languageTag_ = language; 3123b3eb3cSopenharmony_ci} 3223b3eb3cSopenharmony_ci 3323b3eb3cSopenharmony_cistd::string Localization::GetFontLocale() 3423b3eb3cSopenharmony_ci{ 3523b3eb3cSopenharmony_ci return fontLocale_; 3623b3eb3cSopenharmony_ci} 3723b3eb3cSopenharmony_ci 3823b3eb3cSopenharmony_cistd::shared_ptr<Localization> Localization::GetInstance() 3923b3eb3cSopenharmony_ci{ 4023b3eb3cSopenharmony_ci static auto instance = std::make_shared<Localization>(); 4123b3eb3cSopenharmony_ci return instance; 4223b3eb3cSopenharmony_ci} 4323b3eb3cSopenharmony_ci 4423b3eb3cSopenharmony_cibool Localization::GetDateOrder(std::vector<std::string>& outOrder) 4523b3eb3cSopenharmony_ci{ 4623b3eb3cSopenharmony_ci outOrder.clear(); 4723b3eb3cSopenharmony_ci if (languageTag_ == "ug") { 4823b3eb3cSopenharmony_ci outOrder.emplace_back("month"); 4923b3eb3cSopenharmony_ci outOrder.emplace_back("day"); 5023b3eb3cSopenharmony_ci outOrder.emplace_back("year"); 5123b3eb3cSopenharmony_ci } else if (languageTag_ == "zh") { 5223b3eb3cSopenharmony_ci outOrder.emplace_back("year"); 5323b3eb3cSopenharmony_ci outOrder.emplace_back("month"); 5423b3eb3cSopenharmony_ci outOrder.emplace_back("day"); 5523b3eb3cSopenharmony_ci } else if (languageTag_ == "false") { 5623b3eb3cSopenharmony_ci return false; 5723b3eb3cSopenharmony_ci } 5823b3eb3cSopenharmony_ci return true; 5923b3eb3cSopenharmony_ci} 6023b3eb3cSopenharmony_ci 6123b3eb3cSopenharmony_cistd::string Localization::FormatDuration(uint32_t duration, const std::string& format) 6223b3eb3cSopenharmony_ci{ 6323b3eb3cSopenharmony_ci return "08:00:00"; 6423b3eb3cSopenharmony_ci} 6523b3eb3cSopenharmony_ci 6623b3eb3cSopenharmony_ciconst std::string Localization::FormatDateTime(DateTime dateTime, const std::string& format) 6723b3eb3cSopenharmony_ci{ 6823b3eb3cSopenharmony_ci return "08:00:00"; 6923b3eb3cSopenharmony_ci} 7023b3eb3cSopenharmony_ci 7123b3eb3cSopenharmony_ciconst std::string Localization::FormatDateTime(DateTime dateTime, DateTimeStyle dateStyle, DateTimeStyle timeStyle) 7223b3eb3cSopenharmony_ci{ 7323b3eb3cSopenharmony_ci return "08:00:00"; 7423b3eb3cSopenharmony_ci} 7523b3eb3cSopenharmony_ci 7623b3eb3cSopenharmony_cistd::string Localization::GetEntryLetters(const std::string& lettersIndex) 7723b3eb3cSopenharmony_ci{ 7823b3eb3cSopenharmony_ci return ""; 7923b3eb3cSopenharmony_ci} 8023b3eb3cSopenharmony_ci 8123b3eb3cSopenharmony_cistd::string Localization::GetErrorDescription(const std::string& errorIndex) 8223b3eb3cSopenharmony_ci{ 8323b3eb3cSopenharmony_ci return ""; 8423b3eb3cSopenharmony_ci} 8523b3eb3cSopenharmony_ci 8623b3eb3cSopenharmony_ciconst std::string Localization::FormatDuration(uint32_t duration, bool needShowHour) 8723b3eb3cSopenharmony_ci{ 8823b3eb3cSopenharmony_ci return "08:00:00"; 8923b3eb3cSopenharmony_ci} 9023b3eb3cSopenharmony_ci 9123b3eb3cSopenharmony_cistd::vector<std::string> Localization::GetMonths(bool isShortType, const std::string& calendarType) 9223b3eb3cSopenharmony_ci{ 9323b3eb3cSopenharmony_ci std::vector<std::string> months; 9423b3eb3cSopenharmony_ci for (int32_t i = 0; i < MONTH_COUNTS_OF_YEAR; i++) { 9523b3eb3cSopenharmony_ci months.push_back(std::to_string(i)); 9623b3eb3cSopenharmony_ci } 9723b3eb3cSopenharmony_ci return months; 9823b3eb3cSopenharmony_ci} 9923b3eb3cSopenharmony_ci 10023b3eb3cSopenharmony_cistd::string Localization::GetLanguage() 10123b3eb3cSopenharmony_ci{ 10223b3eb3cSopenharmony_ci return "Chinese"; 10323b3eb3cSopenharmony_ci} 10423b3eb3cSopenharmony_ci 10523b3eb3cSopenharmony_cistd::string Localization::GetLunarMonth(uint32_t month, bool isLeapMonth) 10623b3eb3cSopenharmony_ci{ 10723b3eb3cSopenharmony_ci return ""; 10823b3eb3cSopenharmony_ci} 10923b3eb3cSopenharmony_ci 11023b3eb3cSopenharmony_cistd::string Localization::GetLunarDay(uint32_t dayOfMonth) 11123b3eb3cSopenharmony_ci{ 11223b3eb3cSopenharmony_ci return ""; 11323b3eb3cSopenharmony_ci} 11423b3eb3cSopenharmony_ci 11523b3eb3cSopenharmony_ciLunarDate Localization::GetLunarDate(Date date) 11623b3eb3cSopenharmony_ci{ 11723b3eb3cSopenharmony_ci LunarDate dateRet; 11823b3eb3cSopenharmony_ci dateRet.year = date.year; 11923b3eb3cSopenharmony_ci dateRet.month = date.month; 12023b3eb3cSopenharmony_ci dateRet.day = date.day; 12123b3eb3cSopenharmony_ci return dateRet; 12223b3eb3cSopenharmony_ci} 12323b3eb3cSopenharmony_ci 12423b3eb3cSopenharmony_cistd::vector<std::string> Localization::GetAmPmStrings() 12523b3eb3cSopenharmony_ci{ 12623b3eb3cSopenharmony_ci std::vector<std::string> amPms; 12723b3eb3cSopenharmony_ci return amPms; 12823b3eb3cSopenharmony_ci} 12923b3eb3cSopenharmony_ci 13023b3eb3cSopenharmony_cibool Localization::GetHourFormat(bool& isAmPm, bool& hasZero) 13123b3eb3cSopenharmony_ci{ 13223b3eb3cSopenharmony_ci return false; 13323b3eb3cSopenharmony_ci} 13423b3eb3cSopenharmony_ci 13523b3eb3cSopenharmony_ci// Mock get weekdays, 7 days in a week. 13623b3eb3cSopenharmony_cistd::vector<std::string> Localization::GetWeekdays(bool isShortType) 13723b3eb3cSopenharmony_ci{ 13823b3eb3cSopenharmony_ci std::vector<std::string> weekdays; 13923b3eb3cSopenharmony_ci for (int32_t i = 0; i < DAY_COUNTS_OF_WEEK; i++) { 14023b3eb3cSopenharmony_ci weekdays.push_back(std::to_string(i)); 14123b3eb3cSopenharmony_ci } 14223b3eb3cSopenharmony_ci return weekdays; 14323b3eb3cSopenharmony_ci} 14423b3eb3cSopenharmony_ci 14523b3eb3cSopenharmony_cistd::string Localization::NumberFormat(double number) 14623b3eb3cSopenharmony_ci{ 14723b3eb3cSopenharmony_ci return std::to_string(number); 14823b3eb3cSopenharmony_ci} 14923b3eb3cSopenharmony_ci} // namespace OHOS::Ace 150