1 | // © 2016 and later: Unicode, Inc. and others. |
2 | // License & terms of use: http://www.unicode.org/copyright.html |
3 | /* |
4 | ******************************************************************************* |
5 | * |
6 | * Copyright (C) 1997-2006, International Business Machines |
7 | * Corporation and others. All Rights Reserved. |
8 | * |
9 | ******************************************************************************* |
10 | * file name: resbund_cnv.cpp |
11 | * encoding: UTF-8 |
12 | * tab size: 8 (not used) |
13 | * indentation:4 |
14 | * |
15 | * created on: 2004aug25 |
16 | * created by: Markus W. Scherer |
17 | * |
18 | * Character conversion functions moved here from resbund.cpp |
19 | */ |
20 | |
21 | #include "unicode/utypes.h" |
22 | #include "unicode/resbund.h" |
23 | #include "uinvchar.h" |
24 | |
25 | U_NAMESPACE_BEGIN |
26 | |
27 | ResourceBundle::ResourceBundle( const UnicodeString& path, |
28 | const Locale& locale, |
29 | UErrorCode& error) |
30 | :UObject(), fLocale(nullptr) |
31 | { |
32 | constructForLocale(path, locale, error); |
33 | } |
34 | |
35 | ResourceBundle::ResourceBundle( const UnicodeString& path, |
36 | UErrorCode& error) |
37 | :UObject(), fLocale(nullptr) |
38 | { |
39 | constructForLocale(path, Locale::getDefault(), error); |
40 | } |
41 | |
42 | void |
43 | ResourceBundle::constructForLocale(const UnicodeString& path, |
44 | const Locale& locale, |
45 | UErrorCode& error) |
46 | { |
47 | if (path.isEmpty()) { |
48 | fResource = ures_open(nullptr, locale.getName(), &error); |
49 | } |
50 | else { |
51 | UnicodeString nullTerminatedPath(path); |
52 | nullTerminatedPath.append((char16_t)0); |
53 | fResource = ures_openU(nullTerminatedPath.getBuffer(), locale.getName(), &error); |
54 | } |
55 | } |
56 | |
57 | U_NAMESPACE_END |
58 | |