• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023-2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "i18n_hilog.h"
17 #include "i18n_service_ability_load_manager.h"
18 #include "ii18n_service_ability.h"
19 #include "iremote_object.h"
20 #include "system_ability_definition.h"
21 #include "i18n_service_ability_client.h"
22 
23 namespace OHOS {
24 namespace Global {
25 namespace I18n {
GetProxy(I18nErrorCode & err)26 sptr<II18nServiceAbility> I18nServiceAbilityClient::GetProxy(I18nErrorCode &err)
27 {
28     sptr<IRemoteObject> proxy = I18nServiceAbilityLoadManager::GetInstance()->GetI18nServiceAbility(I18N_SA_ID);
29     if (proxy == nullptr) {
30         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetProxy load sa failed, try again.");
31         proxy = I18nServiceAbilityLoadManager::GetInstance()->GetI18nServiceAbility(I18N_SA_ID);
32     }
33     if (proxy == nullptr) {
34         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetProxy load sa failed.");
35         err = I18nErrorCode::LOAD_SA_FAILED;
36         return nullptr;
37     }
38     return iface_cast<II18nServiceAbility>(proxy);
39 }
40 
SetSystemLanguage(const std::string & language)41 I18nErrorCode I18nServiceAbilityClient::SetSystemLanguage(const std::string &language)
42 {
43     I18nErrorCode err = I18nErrorCode::SUCCESS;
44     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
45     if (i18nServiceAbilityObj == nullptr) {
46         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLanguage: Get proxy failed.");
47         return err;
48     }
49     int32_t code = 0;
50     ErrCode errCode = i18nServiceAbilityObj->SetSystemLanguage(language, code);
51     if (errCode != ERR_OK) {
52         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLanguage: Set language failed, errCode is %{public}d.",
53             static_cast<int32_t>(errCode));
54         return I18nErrorCode::FAILED;
55     }
56     return static_cast<I18nErrorCode>(code);
57 }
58 
SetSystemRegion(const std::string & region)59 I18nErrorCode I18nServiceAbilityClient::SetSystemRegion(const std::string &region)
60 {
61     I18nErrorCode err = I18nErrorCode::SUCCESS;
62     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
63     if (i18nServiceAbilityObj == nullptr) {
64         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemRegion: Get proxy failed.");
65         return err;
66     }
67     int32_t code = 0;
68     ErrCode errCode = i18nServiceAbilityObj->SetSystemRegion(region, code);
69     if (errCode != ERR_OK) {
70         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemRegion: Set region failed, errCode is %{public}d.",
71             static_cast<int32_t>(errCode));
72         return I18nErrorCode::FAILED;
73     }
74     return static_cast<I18nErrorCode>(code);
75 }
76 
SetSystemLocale(const std::string & locale)77 I18nErrorCode I18nServiceAbilityClient::SetSystemLocale(const std::string &locale)
78 {
79     I18nErrorCode err = I18nErrorCode::SUCCESS;
80     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
81     if (i18nServiceAbilityObj == nullptr) {
82         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLocale: Get proxy failed.");
83         return err;
84     }
85     int32_t code = 0;
86     ErrCode errCode = i18nServiceAbilityObj->SetSystemLocale(locale, code);
87     if (errCode != ERR_OK) {
88         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemLocale: Set locale failed, errCode is %{public}d.",
89             static_cast<int32_t>(errCode));
90         return I18nErrorCode::FAILED;
91     }
92     return static_cast<I18nErrorCode>(code);
93 }
94 
Set24HourClock(const std::string & flag)95 I18nErrorCode I18nServiceAbilityClient::Set24HourClock(const std::string &flag)
96 {
97     I18nErrorCode err = I18nErrorCode::SUCCESS;
98     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
99     if (i18nServiceAbilityObj == nullptr) {
100         HILOG_ERROR_I18N("I18nServiceAbilityClient::Set24HourClock: Get proxy failed.");
101         return err;
102     }
103     int32_t code = 0;
104     ErrCode errCode = i18nServiceAbilityObj->Set24HourClock(flag, code);
105     if (errCode != ERR_OK) {
106         HILOG_ERROR_I18N("I18nServiceAbilityClient::Set24HourClock: Set 24HourClock failed, errCode is %{public}d.",
107             static_cast<int32_t>(errCode));
108         return I18nErrorCode::FAILED;
109     }
110     return static_cast<I18nErrorCode>(code);
111 }
112 
SetUsingLocalDigit(bool flag)113 I18nErrorCode I18nServiceAbilityClient::SetUsingLocalDigit(bool flag)
114 {
115     I18nErrorCode err = I18nErrorCode::SUCCESS;
116     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
117     if (i18nServiceAbilityObj == nullptr) {
118         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetUsingLocalDigit: Get proxy failed.");
119         return err;
120     }
121     int32_t code = 0;
122     ErrCode errCode = i18nServiceAbilityObj->SetUsingLocalDigit(flag, code);
123     if (errCode != ERR_OK) {
124         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetUsingLocalDigit: Set local digit failed, "
125             "errCode is %{public}d.", static_cast<int32_t>(errCode));
126         return I18nErrorCode::FAILED;
127     }
128     return static_cast<I18nErrorCode>(code);
129 }
130 
AddPreferredLanguage(const std::string & language,int32_t index)131 I18nErrorCode I18nServiceAbilityClient::AddPreferredLanguage(const std::string &language, int32_t index)
132 {
133     I18nErrorCode err = I18nErrorCode::SUCCESS;
134     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
135     if (i18nServiceAbilityObj == nullptr) {
136         HILOG_ERROR_I18N("I18nServiceAbilityClient::AddPreferredLanguage: Get proxy failed.");
137         return err;
138     }
139     int32_t code = 0;
140     ErrCode errCode = i18nServiceAbilityObj->AddPreferredLanguage(language, index, code);
141     if (errCode != ERR_OK) {
142         HILOG_ERROR_I18N("I18nServiceAbilityClient::AddPreferredLanguage: Add preferred language failed, "
143             "errCode is %{public}d.", static_cast<int32_t>(errCode));
144         return I18nErrorCode::FAILED;
145     }
146     return static_cast<I18nErrorCode>(code);
147 }
148 
RemovePreferredLanguage(int32_t index)149 I18nErrorCode I18nServiceAbilityClient::RemovePreferredLanguage(int32_t index)
150 {
151     I18nErrorCode err = I18nErrorCode::SUCCESS;
152     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
153     if (i18nServiceAbilityObj == nullptr) {
154         HILOG_ERROR_I18N("I18nServiceAbilityClient::RemovePreferredLanguage: Get proxy failed.");
155         return err;
156     }
157     int32_t code = 0;
158     ErrCode errCode = i18nServiceAbilityObj->RemovePreferredLanguage(index, code);
159     if (errCode != ERR_OK) {
160         HILOG_ERROR_I18N("I18nServiceAbilityClient::RemovePreferredLanguage: Remove preferred language failed, "
161             "errCode is %{public}d.", static_cast<int32_t>(errCode));
162         return I18nErrorCode::FAILED;
163     }
164     return static_cast<I18nErrorCode>(code);
165 }
166 
SetTemperatureType(TemperatureType type)167 I18nErrorCode I18nServiceAbilityClient::SetTemperatureType(TemperatureType type)
168 {
169     I18nErrorCode err = I18nErrorCode::SUCCESS;
170     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
171     if (i18nServiceAbilityObj == nullptr) {
172         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetTemperatureType: Get proxy failed.");
173         return err;
174     }
175     int32_t code = 0;
176     ErrCode errCode = i18nServiceAbilityObj->SetTemperatureType(static_cast<int32_t>(type), code);
177     if (errCode != ERR_OK) {
178         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetTemperatureType: Set temperature type failed, "
179             "errCode is %{public}d.", static_cast<int32_t>(errCode));
180         return I18nErrorCode::FAILED;
181     }
182     return static_cast<I18nErrorCode>(code);
183 }
184 
SetFirstDayOfWeek(WeekDay type)185 I18nErrorCode I18nServiceAbilityClient::SetFirstDayOfWeek(WeekDay type)
186 {
187     I18nErrorCode err = I18nErrorCode::SUCCESS;
188     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
189     if (i18nServiceAbilityObj == nullptr) {
190         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetFirstDayOfWeek: Get proxy failed.");
191         return err;
192     }
193     int32_t code = 0;
194     ErrCode errCode = i18nServiceAbilityObj->SetFirstDayOfWeek(static_cast<int32_t>(type), code);
195     if (errCode != ERR_OK) {
196         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetFirstDayOfWeek: Set first day of week failed, "
197             "errCode is %{public}d.", static_cast<int32_t>(errCode));
198         return I18nErrorCode::FAILED;
199     }
200     return static_cast<I18nErrorCode>(code);
201 }
202 
GetSystemCollations(std::unordered_map<std::string,std::string> & systemCollations)203 I18nErrorCode I18nServiceAbilityClient::GetSystemCollations(
204     std::unordered_map<std::string, std::string>& systemCollations)
205 {
206     I18nErrorCode err = I18nErrorCode::SUCCESS;
207     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
208     if (i18nServiceAbilityObj == nullptr) {
209         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemCollations: Get proxy failed.");
210         return err;
211     }
212     int32_t code = 0;
213     ErrCode errCode = i18nServiceAbilityObj->GetSystemCollations(systemCollations, code);
214     if (errCode != ERR_OK) {
215         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemCollations: Get system collations failed, "
216             "errCode is %{public}d.", static_cast<int32_t>(errCode));
217         return I18nErrorCode::FAILED;
218     }
219     return static_cast<I18nErrorCode>(code);
220 }
221 
GetUsingCollation(std::string & usingCollation)222 I18nErrorCode I18nServiceAbilityClient::GetUsingCollation(std::string& usingCollation)
223 {
224     I18nErrorCode err = I18nErrorCode::SUCCESS;
225     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
226     if (i18nServiceAbilityObj == nullptr) {
227         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingCollation: Get proxy failed.");
228         return err;
229     }
230     int32_t code = 0;
231     ErrCode errCode = i18nServiceAbilityObj->GetUsingCollation(usingCollation, code);
232     if (errCode != ERR_OK) {
233         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingCollation: Get using collations failed, "
234             "errCode is %{public}d.", static_cast<int32_t>(errCode));
235         return I18nErrorCode::FAILED;
236     }
237     return static_cast<I18nErrorCode>(code);
238 }
239 
SetSystemCollation(const std::string & identifier)240 I18nErrorCode I18nServiceAbilityClient::SetSystemCollation(const std::string& identifier)
241 {
242     I18nErrorCode err = I18nErrorCode::SUCCESS;
243     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
244     if (i18nServiceAbilityObj == nullptr) {
245         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemCollation: Get proxy failed.");
246         return err;
247     }
248     int32_t code = 0;
249     ErrCode errCode = i18nServiceAbilityObj->SetSystemCollation(identifier, code);
250     if (errCode != ERR_OK) {
251         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemCollation: Set system collations failed, "
252             "errCode is %{public}d.", static_cast<int32_t>(errCode));
253         return I18nErrorCode::FAILED;
254     }
255     return static_cast<I18nErrorCode>(code);
256 }
257 
GetSystemNumberingSystems(std::unordered_map<std::string,std::string> & systemNumberingSystems)258 I18nErrorCode I18nServiceAbilityClient::GetSystemNumberingSystems(
259     std::unordered_map<std::string, std::string>& systemNumberingSystems)
260 {
261     I18nErrorCode err = I18nErrorCode::SUCCESS;
262     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
263     if (i18nServiceAbilityObj == nullptr) {
264         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberingSystems: Get proxy failed.");
265         return err;
266     }
267     int32_t code = 0;
268     ErrCode errCode = i18nServiceAbilityObj->GetSystemNumberingSystems(systemNumberingSystems, code);
269     if (errCode != ERR_OK) {
270         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberingSystems: Get system numbering systems failed, "
271             "errCode is %{public}d.", static_cast<int32_t>(errCode));
272         return I18nErrorCode::FAILED;
273     }
274     return static_cast<I18nErrorCode>(code);
275 }
276 
GetUsingNumberingSystem(std::string & usingNumberingSystem)277 I18nErrorCode I18nServiceAbilityClient::GetUsingNumberingSystem(std::string& usingNumberingSystem)
278 {
279     I18nErrorCode err = I18nErrorCode::SUCCESS;
280     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
281     if (i18nServiceAbilityObj == nullptr) {
282         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberingSystem: Get proxy failed.");
283         return err;
284     }
285     int32_t code = 0;
286     ErrCode errCode = i18nServiceAbilityObj->GetUsingNumberingSystem(usingNumberingSystem, code);
287     if (errCode != ERR_OK) {
288         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberingSystem: Get using numbering system failed, "
289             "errCode is %{public}d.", static_cast<int32_t>(errCode));
290         return I18nErrorCode::FAILED;
291     }
292     return static_cast<I18nErrorCode>(code);
293 }
294 
SetSystemNumberingSystem(const std::string & identifier)295 I18nErrorCode I18nServiceAbilityClient::SetSystemNumberingSystem(const std::string& identifier)
296 {
297     I18nErrorCode err = I18nErrorCode::SUCCESS;
298     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
299     if (i18nServiceAbilityObj == nullptr) {
300         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberingSystem: Get proxy failed.");
301         return err;
302     }
303     int32_t code = 0;
304     ErrCode errCode = i18nServiceAbilityObj->SetSystemNumberingSystem(identifier, code);
305     if (errCode != ERR_OK) {
306         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberingSystem: Set system numbering system failed, "
307             "errCode is %{public}d.", static_cast<int32_t>(errCode));
308         return I18nErrorCode::FAILED;
309     }
310     return static_cast<I18nErrorCode>(code);
311 }
312 
GetSystemNumberPatterns(std::unordered_map<std::string,std::string> & systemNumberPatterns)313 I18nErrorCode I18nServiceAbilityClient::GetSystemNumberPatterns(
314     std::unordered_map<std::string, std::string>& systemNumberPatterns)
315 {
316     I18nErrorCode err = I18nErrorCode::SUCCESS;
317     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
318     if (i18nServiceAbilityObj == nullptr) {
319         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberPatterns: Get proxy failed.");
320         return err;
321     }
322     int32_t code = 0;
323     ErrCode errCode = i18nServiceAbilityObj->GetSystemNumberPatterns(systemNumberPatterns, code);
324     if (errCode != ERR_OK) {
325         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumberPatterns: Get system number patterns failed, "
326             "errCode is %{public}d.", static_cast<int32_t>(errCode));
327         return I18nErrorCode::FAILED;
328     }
329     return static_cast<I18nErrorCode>(code);
330 }
331 
GetUsingNumberPattern(std::string & usingNumberPattern)332 I18nErrorCode I18nServiceAbilityClient::GetUsingNumberPattern(std::string& usingNumberPattern)
333 {
334     I18nErrorCode err = I18nErrorCode::SUCCESS;
335     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
336     if (i18nServiceAbilityObj == nullptr) {
337         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberPattern: Get proxy failed.");
338         return err;
339     }
340     int32_t code = 0;
341     ErrCode errCode = i18nServiceAbilityObj->GetUsingNumberPattern(usingNumberPattern, code);
342     if (errCode != ERR_OK) {
343         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumberPattern: Get using number pattern failed, "
344             "errCode is %{public}d.", static_cast<int32_t>(errCode));
345         return I18nErrorCode::FAILED;
346     }
347     return static_cast<I18nErrorCode>(code);
348 }
349 
SetSystemNumberPattern(const std::string & pattern)350 I18nErrorCode I18nServiceAbilityClient::SetSystemNumberPattern(const std::string& pattern)
351 {
352     I18nErrorCode err = I18nErrorCode::SUCCESS;
353     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
354     if (i18nServiceAbilityObj == nullptr) {
355         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberPattern: Get proxy failed.");
356         return err;
357     }
358     int32_t code = 0;
359     ErrCode errCode = i18nServiceAbilityObj->SetSystemNumberPattern(pattern, code);
360     if (errCode != ERR_OK) {
361         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumberPattern: Set system number pattern failed, "
362             "errCode is %{public}d.", static_cast<int32_t>(errCode));
363         return I18nErrorCode::FAILED;
364     }
365     return static_cast<I18nErrorCode>(code);
366 }
367 
GetSystemMeasurements(std::unordered_map<std::string,std::string> & systemMeasurements)368 I18nErrorCode I18nServiceAbilityClient::GetSystemMeasurements(
369     std::unordered_map<std::string, std::string>& systemMeasurements)
370 {
371     I18nErrorCode err = I18nErrorCode::SUCCESS;
372     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
373     if (i18nServiceAbilityObj == nullptr) {
374         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemMeasurements: Get proxy failed.");
375         return err;
376     }
377     int32_t code = 0;
378     ErrCode errCode = i18nServiceAbilityObj->GetSystemMeasurements(systemMeasurements, code);
379     if (errCode != ERR_OK) {
380         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemMeasurements: Get system measurements failed, "
381             "errCode is %{public}d.", static_cast<int32_t>(errCode));
382         return I18nErrorCode::FAILED;
383     }
384     return static_cast<I18nErrorCode>(code);
385 }
386 
GetUsingMeasurement(std::string & identifier)387 I18nErrorCode I18nServiceAbilityClient::GetUsingMeasurement(std::string& identifier)
388 {
389     I18nErrorCode err = I18nErrorCode::SUCCESS;
390     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
391     if (i18nServiceAbilityObj == nullptr) {
392         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingMeasurement: Get proxy failed.");
393         return err;
394     }
395     int32_t code = 0;
396     ErrCode errCode = i18nServiceAbilityObj->GetUsingMeasurement(identifier, code);
397     if (errCode != ERR_OK) {
398         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingMeasurement: Get using measurement failed, "
399             "errCode is %{public}d.", static_cast<int32_t>(errCode));
400         return I18nErrorCode::FAILED;
401     }
402     return static_cast<I18nErrorCode>(code);
403 }
404 
SetSystemMeasurement(const std::string & identifier)405 I18nErrorCode I18nServiceAbilityClient::SetSystemMeasurement(const std::string& identifier)
406 {
407     I18nErrorCode err = I18nErrorCode::SUCCESS;
408     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
409     if (i18nServiceAbilityObj == nullptr) {
410         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemMeasurement: Get proxy failed.");
411         return err;
412     }
413     int32_t code = 0;
414     ErrCode errCode = i18nServiceAbilityObj->SetSystemMeasurement(identifier, code);
415     if (errCode != ERR_OK) {
416         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemMeasurement: Set system measurement failed, "
417             "errCode is %{public}d.", static_cast<int32_t>(errCode));
418         return I18nErrorCode::FAILED;
419     }
420     return static_cast<I18nErrorCode>(code);
421 }
422 
GetSystemNumericalDatePatterns(std::unordered_map<std::string,std::string> & numericalDatePatterns)423 I18nErrorCode I18nServiceAbilityClient::GetSystemNumericalDatePatterns(
424     std::unordered_map<std::string, std::string>& numericalDatePatterns)
425 {
426     I18nErrorCode err = I18nErrorCode::SUCCESS;
427     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
428     if (i18nServiceAbilityObj == nullptr) {
429         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumericalDatePatterns: Get proxy failed.");
430         return err;
431     }
432     int32_t code = 0;
433     ErrCode errCode = i18nServiceAbilityObj->GetSystemNumericalDatePatterns(numericalDatePatterns, code);
434     if (errCode != ERR_OK) {
435         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetSystemNumericalDatePatterns: Get system numerical date pattern "
436             "failed, errCode is %{public}d.", static_cast<int32_t>(errCode));
437         return I18nErrorCode::FAILED;
438     }
439     return static_cast<I18nErrorCode>(code);
440 }
441 
GetUsingNumericalDatePattern(std::string & identifier)442 I18nErrorCode I18nServiceAbilityClient::GetUsingNumericalDatePattern(std::string& identifier)
443 {
444     I18nErrorCode err = I18nErrorCode::SUCCESS;
445     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
446     if (i18nServiceAbilityObj == nullptr) {
447         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumericalDatePattern: Get proxy failed.");
448         return err;
449     }
450     int32_t code = 0;
451     ErrCode errCode = i18nServiceAbilityObj->GetUsingNumericalDatePattern(identifier, code);
452     if (errCode != ERR_OK) {
453         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetUsingNumericalDatePattern: Get using numerical date pattern "
454             "failed, errCode is %{public}d.", static_cast<int32_t>(errCode));
455         return I18nErrorCode::FAILED;
456     }
457     return static_cast<I18nErrorCode>(code);
458 }
459 
SetSystemNumericalDatePattern(const std::string & identifier)460 I18nErrorCode I18nServiceAbilityClient::SetSystemNumericalDatePattern(const std::string& identifier)
461 {
462     I18nErrorCode err = I18nErrorCode::SUCCESS;
463     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
464     if (i18nServiceAbilityObj == nullptr) {
465         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumericalDatePattern: Get proxy failed.");
466         return err;
467     }
468     int32_t code = 0;
469     ErrCode errCode = i18nServiceAbilityObj->SetSystemNumericalDatePattern(identifier, code);
470     if (errCode != ERR_OK) {
471         HILOG_ERROR_I18N("I18nServiceAbilityClient::SetSystemNumericalDatePattern: Set system numerical date pattern "
472             "failed, errCode is %{public}d.", static_cast<int32_t>(errCode));
473         return I18nErrorCode::FAILED;
474     }
475     return static_cast<I18nErrorCode>(code);
476 }
477 
GetLanguageFromUserId(int32_t userId)478 std::string I18nServiceAbilityClient::GetLanguageFromUserId(int32_t userId)
479 {
480     I18nErrorCode err = I18nErrorCode::SUCCESS;
481     sptr<II18nServiceAbility> i18nServiceAbilityObj = GetProxy(err);
482     if (i18nServiceAbilityObj == nullptr) {
483         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetLanguageFromUserId: Get proxy failed.");
484         return "";
485     }
486     std::string language;
487     ErrCode errCode = i18nServiceAbilityObj->GetLanguageFromUserId(userId, language);
488     if (errCode != ERR_OK) {
489         HILOG_ERROR_I18N("I18nServiceAbilityClient::GetLanguageFromUserId: Get language from userID failed, "
490             "errCode is %{public}d.", static_cast<int32_t>(errCode));
491         return "";
492     }
493     return language;
494 }
495 } // namespace I18n
496 } // namespace Global
497 } // namespace OHOS