1/*
2 * Copyright (c) Meta Platforms, Inc. and affiliates.
3 *
4 * This source code is licensed under the MIT license found in the
5 * LICENSE file in the root directory of this source tree.
6 */
7
8#import "ABI48_0_0RCTLocalizationProvider.h"
9
10#import <Foundation/Foundation.h>
11
12static id<ABI48_0_0RCTLocalizationProtocol> _delegate = nil;
13static NSDictionary<NSString *, NSString *> *_languagePack = nil;
14
15void setLocalizationDelegate(id<ABI48_0_0RCTLocalizationProtocol> delegate)
16{
17  _delegate = delegate;
18}
19
20void setLocalizationLanguagePack(NSDictionary<NSString *, NSString *> *pack)
21{
22  _languagePack = pack;
23}
24
25@implementation ABI48_0_0RCTLocalizationProvider
26
27+ (NSString *)ABI48_0_0RCTLocalizedString:(NSString *)oldString withDescription:(NSString *)description
28{
29  NSString *candidate = nil;
30
31  if (_delegate != nil) {
32    candidate = [_delegate localizedString:oldString withDescription:description];
33  }
34
35  if (candidate == nil && _languagePack != nil) {
36    candidate = _languagePack[oldString];
37  }
38
39  if (candidate == nil) {
40    candidate = oldString;
41  }
42
43  return candidate;
44}
45
46@end
47