BTUIKLocalizedString.m 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. #import "BTUIKLocalizedString.h"
  2. @implementation BTUIKLocalizedString
  3. static NSArray *customTranslations;
  4. + (NSBundle *)localizationBundle {
  5. static NSString * bundleName = @"Braintree-UIKit-Localization";
  6. if ([[NSLocale preferredLanguages] count] > 0) {
  7. NSString *language = [[NSLocale preferredLanguages] firstObject];
  8. // Ignore region portion of local ID
  9. language = [[[[language componentsSeparatedByString:@"_"] firstObject] componentsSeparatedByString:@"-"] firstObject];
  10. if (customTranslations && [customTranslations containsObject:language]) {
  11. return [NSBundle mainBundle];
  12. }
  13. }
  14. NSString *localizationBundlePath = [[NSBundle mainBundle] pathForResource:bundleName ofType:@"bundle"];
  15. if (!localizationBundlePath) {
  16. localizationBundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:bundleName ofType:@"bundle"];
  17. }
  18. return localizationBundlePath ? [NSBundle bundleWithPath:localizationBundlePath] : [NSBundle mainBundle];
  19. }
  20. + (NSString *)localizationTable {
  21. return @"BTUI";
  22. }
  23. #pragma mark Localization helpers
  24. + (void)setCustomTranslations:(NSArray *)locales {
  25. customTranslations = [locales copy];
  26. }
  27. + (NSString *)insertIntoLocalizedString:(NSString *)string replacement:(NSString* )replacement {
  28. return [self insertIntoLocalizedString:string replacement:replacement token:@"%s"];
  29. }
  30. + (NSString *)insertIntoLocalizedString:(NSString *)string replacement:(NSString* )replacement token:(NSString *)token {
  31. return [string stringByReplacingOccurrencesOfString:token withString:replacement];
  32. }
  33. #pragma mark Localizations
  34. + (NSString *)CARD_DETAILS_LABEL {
  35. return NSLocalizedStringWithDefaultValue(@"CARD_DETAILS_LABEL", [self localizationTable], [self localizationBundle], @"Card number is required", @"CARD_DETAILS_LABEL");
  36. }
  37. + (NSString *)ENTER_CARD_DETAILS_HELP_LABEL {
  38. return NSLocalizedStringWithDefaultValue(@"ENTER_CARD_DETAILS_HELP_LABEL", [self localizationTable], [self localizationBundle], @"Enter your card details starting with the card number.", @"ENTER_CARD_DETAILS_HELP_LABEL");
  39. }
  40. + (NSString *)VALID_CARD_ERROR_LABEL {
  41. return NSLocalizedStringWithDefaultValue(@"VALID_CARD_ERROR_LABEL", [self localizationTable], [self localizationBundle], @"You must provide a valid Card Number.", @"VALID_CARD_ERROR_LABEL");
  42. }
  43. + (NSString *)CARD_REQUIRED {
  44. return NSLocalizedStringWithDefaultValue(@"CARD_REQUIRED", [self localizationTable], [self localizationBundle], @"Card number is required", @"CARD_REQUIRED");
  45. }
  46. + (NSString *)CARD_INVALID {
  47. return NSLocalizedStringWithDefaultValue(@"CARD_INVALID", [self localizationTable], [self localizationBundle], @"Card number is invalid", @"CARD_INVALID");
  48. }
  49. + (NSString *)EXPIRATION_REQUIRED {
  50. return NSLocalizedStringWithDefaultValue(@"EXPIRATION_REQUIRED", [self localizationTable], [self localizationBundle], @"Expiration date is required", @"EXPIRATION_REQUIRED");
  51. }
  52. + (NSString *)EXPIRATION_INVALID {
  53. return NSLocalizedStringWithDefaultValue(@"EXPIRATION_INVALID", [self localizationTable], [self localizationBundle], @"Expiration date is invalid", @"EXPIRATION_INVALID");
  54. }
  55. + (NSString *)CVV_REQUIRED {
  56. return NSLocalizedStringWithDefaultValue(@"CVV_REQUIRED", [self localizationTable], [self localizationBundle], @"%s is required", @"CVV_REQUIRED");
  57. }
  58. + (NSString *)CVV_INVALID {
  59. return NSLocalizedStringWithDefaultValue(@"CVV_INVALID", [self localizationTable], [self localizationBundle], @"%s is invalid", @"CVV_INVALID");
  60. }
  61. + (NSString *)POSTAL_CODE_HELP_LABEL {
  62. return NSLocalizedStringWithDefaultValue(@"POSTAL_CODE_HELP_LABEL", [self localizationTable], [self localizationBundle], @"You must provide a valid Postal Code.", @"POSTAL_CODE_HELP_LABEL");
  63. }
  64. + (NSString *)POSTAL_CODE_REQUIRED {
  65. return NSLocalizedStringWithDefaultValue(@"POSTAL_CODE_REQUIRED", [self localizationTable], [self localizationBundle], @"Postal code is required", @"POSTAL_CODE_REQUIRED");
  66. }
  67. + (NSString *)POSTAL_CODE_INVALID {
  68. return NSLocalizedStringWithDefaultValue(@"POSTAL_CODE_INVALID", [self localizationTable], [self localizationBundle], @"Postal code is invalid", @"POSTAL_CODE_INVALID");
  69. }
  70. + (NSString *)COUNTRY_CODE_REQUIRED {
  71. return NSLocalizedStringWithDefaultValue(@"COUNTRY_CODE_REQUIRED", [self localizationTable], [self localizationBundle], @"Country code is required", @"COUNTRY_CODE_REQUIRED");
  72. }
  73. + (NSString *)COUNTRY_CODE_INVALID {
  74. return NSLocalizedStringWithDefaultValue(@"COUNTRY_CODE_INVALID", [self localizationTable], [self localizationBundle], @"Country code is invalid", @"COUNTRY_CODE_INVALID");
  75. }
  76. + (NSString *)MOBILE_NUMBER_REQUIRED {
  77. return NSLocalizedStringWithDefaultValue(@"MOBILE_NUMBER_REQUIRED", [self localizationTable], [self localizationBundle], @"Mobile number is required", @"MOBILE_NUMBER_REQUIRED");
  78. }
  79. + (NSString *)MOBILE_NUMBER_INVALID {
  80. return NSLocalizedStringWithDefaultValue(@"MOBILE_NUMBER_INVALID", [self localizationTable], [self localizationBundle], @"Mobile number is invalid", @"MOBILE_NUMBER_INVALID");
  81. }
  82. + (NSString *)ENROLLMENT_WITH_SMS_HELP_LABEL {
  83. return NSLocalizedStringWithDefaultValue(@"ENROLLMENT_WITH_SMS_HELP_LABEL", [self localizationTable], [self localizationBundle], @"Enrollment may be required for this card. An SMS code will be sent to this number if required.", @"ENROLLMENT_WITH_SMS_HELP_LABEL");
  84. }
  85. + (NSString *)SMS_CODE_REQUIRED {
  86. return NSLocalizedStringWithDefaultValue(@"SMS_CODE_REQUIRED", [self localizationTable], [self localizationBundle], @"SMS code is required", @"SMS_CODE_REQUIRED");
  87. }
  88. + (NSString *)SMS_CODE_INVALID {
  89. return NSLocalizedStringWithDefaultValue(@"SMS_CODE_INVALID", [self localizationTable], [self localizationBundle], @"SMS code is invalid", @"SMS_CODE_INVALID");
  90. }
  91. + (NSString *)CANCEL_ACTION {
  92. return NSLocalizedStringWithDefaultValue(@"CANCEL_ACTION", [self localizationTable], [self localizationBundle], @"Cancel", @"CANCEL_ACTION");
  93. }
  94. + (NSString *)RETRY_ACTION {
  95. return NSLocalizedStringWithDefaultValue(@"RETRY_ACTION", [self localizationTable], [self localizationBundle], @"Retry", @"RETRY_ACTION");
  96. }
  97. + (NSString *)CONTINUE_ACTION {
  98. return NSLocalizedStringWithDefaultValue(@"CONTINUE_ACTION", [self localizationTable], [self localizationBundle], @"Continue", @"CONTINUE_ACTION");
  99. }
  100. + (NSString *)ADD_CARD_ACTION {
  101. return NSLocalizedStringWithDefaultValue(@"ADD_CARD_ACTION", [self localizationTable], [self localizationBundle], @"Add Card", @"ADD_CARD_ACTION");
  102. }
  103. + (NSString *)DONE_ACTION {
  104. return NSLocalizedStringWithDefaultValue(@"DONE_ACTION", [self localizationTable], [self localizationBundle], @"Done", @"DONE_ACTION");
  105. }
  106. + (NSString *)EDIT_ACTION {
  107. return NSLocalizedStringWithDefaultValue(@"EDIT_ACTION", [self localizationTable], [self localizationBundle], @"Edit", @"EDIT_ACTION");
  108. }
  109. + (NSString *)NEXT_ACTION {
  110. return NSLocalizedStringWithDefaultValue(@"NEXT_ACTION", [self localizationTable], [self localizationBundle], @"Next", @"NEXT_ACTION");
  111. }
  112. + (NSString *)TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT {
  113. return NSLocalizedStringWithDefaultValue(@"TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"OK", @"TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT");
  114. }
  115. + (NSString *)EDIT_PAYMENT_METHOD {
  116. return NSLocalizedStringWithDefaultValue(@"EDIT_PAYMENT_METHOD", [self localizationTable], [self localizationBundle], @"Edit Payment Methods", @"EDIT_PAYMENT_METHOD");
  117. }
  118. + (NSString *)THERE_WAS_AN_ERROR {
  119. return NSLocalizedStringWithDefaultValue(@"THERE_WAS_AN_ERROR", [self localizationTable], [self localizationBundle], @"Sorry, there was an error.", @"THERE_WAS_AN_ERROR");
  120. }
  121. + (NSString *)REVIEW_AND_TRY_AGAIN {
  122. return NSLocalizedStringWithDefaultValue(@"REVIEW_AND_TRY_AGAIN", [self localizationTable], [self localizationBundle], @"Please review your information and try again.", @"REVIEW_AND_TRY_AGAIN");
  123. }
  124. + (NSString *)INVALID_LABEL {
  125. return NSLocalizedStringWithDefaultValue(@"INVALID_LABEL", [self localizationTable], [self localizationBundle], @"Invalid:", @"INVALID_LABEL");
  126. }
  127. + (NSString *)YEAR_LABEL {
  128. return NSLocalizedStringWithDefaultValue(@"YEAR_LABEL", [self localizationTable], [self localizationBundle], @"Year", @"YEAR_LABEL");
  129. }
  130. + (NSString *)MONTH_LABEL {
  131. return NSLocalizedStringWithDefaultValue(@"MONTH_LABEL", [self localizationTable], [self localizationBundle], @"Month", @"MONTH_LABEL");
  132. }
  133. + (NSString *)OTHER_LABEL {
  134. return NSLocalizedStringWithDefaultValue(@"OTHER_LABEL", [self localizationTable], [self localizationBundle], @"Other", @"OTHER_LABEL");
  135. }
  136. + (NSString *)CREDIT_OR_DEBIT_CARD_LABEL {
  137. return NSLocalizedStringWithDefaultValue(@"CREDIT_OR_DEBIT_CARD_LABEL", [self localizationTable], [self localizationBundle], @"Credit or Debit Card", @"CREDIT_OR_DEBIT_CARD_LABEL");
  138. }
  139. + (NSString *)RECENT_LABEL {
  140. return NSLocalizedStringWithDefaultValue(@"RECENT_LABEL", [self localizationTable], [self localizationBundle], @"Recent", @"RECENT_LABEL");
  141. }
  142. + (NSString *)SELECT_PAYMENT_LABEL {
  143. return NSLocalizedStringWithDefaultValue(@"SELECT_PAYMENT_LABEL", [self localizationTable], [self localizationBundle], @"Select Payment Method", @"SELECT_PAYMENT_LABEL");
  144. }
  145. + (NSString *)CONFIRM_ENROLLMENT_LABEL {
  146. return NSLocalizedStringWithDefaultValue(@"CONFIRM_ENROLLMENT_LABEL", [self localizationTable], [self localizationBundle], @"Confirm Enrollment", @"CONFIRM_ENROLLMENT_LABEL");
  147. }
  148. + (NSString *)CONFIRM_ACTION {
  149. return NSLocalizedStringWithDefaultValue(@"CONFIRM_ACTION", [self localizationTable], [self localizationBundle], @"Confirm", @"CONFIRM_ACTION");
  150. }
  151. + (NSString *)ENTER_SMS_CODE_SENT_HELP_LABEL {
  152. return NSLocalizedStringWithDefaultValue(@"ENTER_SMS_CODE_SENT_HELP_LABEL", [self localizationTable], [self localizationBundle], @"Enter the SMS code sent to %s", @"ENTER_SMS_CODE_SENT_HELP_LABEL");
  153. }
  154. + (NSString *)SMS_CODE_LABEL {
  155. return NSLocalizedStringWithDefaultValue(@"SMS_CODE_LABEL", [self localizationTable], [self localizationBundle], @"SMS Code", @"SMS_CODE_LABEL");
  156. }
  157. + (NSString *)CARD_TYPE_GENERIC_CARD {
  158. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_GENERIC_CARD", [self localizationTable], [self localizationBundle], @"Card", @"CARD_TYPE_GENERIC_CARD");
  159. }
  160. + (NSString *)MOBILE_COUNTRY_CODE_LABEL {
  161. return NSLocalizedStringWithDefaultValue(@"MOBILE_COUNTRY_CODE_LABEL", [self localizationTable], [self localizationBundle], @"Country Code", @"MOBILE_COUNTRY_CODE_LABEL");
  162. }
  163. + (NSString *)SECURITY_CODE_LABEL {
  164. return NSLocalizedStringWithDefaultValue(@"SECURITY_CODE_LABEL", [self localizationTable], [self localizationBundle], @"Security Code", @"SECURITY_CODE_LABEL");
  165. }
  166. + (NSString *)CVV_FIELD_PLACEHOLDER {
  167. return NSLocalizedStringWithDefaultValue(@"CVV_FIELD_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"CVV", @"CVV_FIELD_PLACEHOLDER");
  168. }
  169. + (NSString *)CVC_FIELD_PLACEHOLDER {
  170. return NSLocalizedStringWithDefaultValue(@"CVC_FIELD_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"CVC", @"CVC_FIELD_PLACEHOLDER");
  171. }
  172. + (NSString *)CID_FIELD_PLACEHOLDER {
  173. return NSLocalizedStringWithDefaultValue(@"CID_FIELD_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"CID", @"CID_FIELD_PLACEHOLDER");
  174. }
  175. + (NSString *)CVN_FIELD_PLACEHOLDER {
  176. return NSLocalizedStringWithDefaultValue(@"CVN_FIELD_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"CVN", @"CVN_FIELD_PLACEHOLDER");
  177. }
  178. + (NSString *)POSTAL_CODE_PLACEHOLDER {
  179. return NSLocalizedStringWithDefaultValue(@"POSTAL_CODE_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"Postal Code", @"POSTAL_CODE_PLACEHOLDER");
  180. }
  181. + (NSString *)MOBILE_NUMBER_LABEL {
  182. return NSLocalizedStringWithDefaultValue(@"MOBILE_NUMBER_LABEL", [self localizationTable], [self localizationBundle], @"Mobile Number", @"MOBILE_NUMBER_LABEL");
  183. }
  184. + (NSString *)EXPIRATION_DATE_LABEL {
  185. return NSLocalizedStringWithDefaultValue(@"EXPIRATION_DATE_LABEL", [self localizationTable], [self localizationBundle], @"Expiration Date", @"EXPIRATION_DATE_LABEL");
  186. }
  187. + (NSString *)CARD_NUMBER_PLACEHOLDER {
  188. return NSLocalizedStringWithDefaultValue(@"CARD_NUMBER_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"Card Number", @"CARD_NUMBER_PLACEHOLDER");
  189. }
  190. + (NSString *)EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR {
  191. return NSLocalizedStringWithDefaultValue(@"EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR", [self localizationTable], [self localizationBundle], @"MM / YYYY", @"EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR");
  192. }
  193. + (NSString *)EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR {
  194. return NSLocalizedStringWithDefaultValue(@"EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR", [self localizationTable], [self localizationBundle], @"MM / YY", @"EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR");
  195. }
  196. + (NSString *)CARDHOLDER_NAME_LABEL {
  197. return NSLocalizedStringWithDefaultValue(@"CARDHOLDER_NAME_LABEL", [self localizationTable], [self localizationBundle], @"Cardholder Name", @"CARDHOLDER_NAME_LABEL");
  198. }
  199. + (NSString *)SAVE_CARD_LABEL {
  200. return NSLocalizedStringWithDefaultValue(@"SAVE_CARD_LABEL", [self localizationTable], [self localizationBundle], @"Save card", @"SAVE_CARD_LABEL");
  201. }
  202. + (NSString *)PAYPAL {
  203. return NSLocalizedStringWithDefaultValue(@"PAYPAL", [self localizationTable], [self localizationBundle], @"PayPal", @"PAYPAL");
  204. }
  205. + (NSString *)CARD_TYPE_AMERICAN_EXPRESS {
  206. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_AMERICAN_EXPRESS", [self localizationTable], [self localizationBundle], @"American Express", @"CARD_TYPE_AMERICAN_EXPRESS");
  207. }
  208. + (NSString *)CARD_TYPE_DISCOVER {
  209. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_DISCOVER", [self localizationTable], [self localizationBundle], @"Discover", @"CARD_TYPE_DISCOVER");
  210. }
  211. + (NSString *)CARD_TYPE_DINERS_CLUB {
  212. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_DINERS_CLUB", [self localizationTable], [self localizationBundle], @"Diners Club", @"CARD_TYPE_DINERS_CLUB");
  213. }
  214. + (NSString *)CARD_TYPE_MASTER_CARD {
  215. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_MASTER_CARD", [self localizationTable], [self localizationBundle], @"MasterCard", @"CARD_TYPE_MASTER_CARD");
  216. }
  217. + (NSString *)CARD_TYPE_VISA {
  218. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_VISA", [self localizationTable], [self localizationBundle], @"Visa", @"CARD_TYPE_VISA");
  219. }
  220. + (NSString *)CARD_TYPE_JCB {
  221. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_JCB", [self localizationTable], [self localizationBundle], @"JCB", @"CARD_TYPE_JCB");
  222. }
  223. + (NSString *)CARD_TYPE_MAESTRO {
  224. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_MAESTRO", [self localizationTable], [self localizationBundle], @"Maestro", @"CARD_TYPE_MAESTRO");
  225. }
  226. + (NSString *)CARD_TYPE_UNION_PAY {
  227. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_UNION_PAY", [self localizationTable], [self localizationBundle], @"UnionPay", @"CARD_TYPE_UNION_PAY");
  228. }
  229. + (NSString *)CARD_TYPE_HIPER {
  230. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_HIPER", [self localizationTable], [self localizationBundle], @"Hiper", @"CARD_TYPE_HIPER");
  231. }
  232. + (NSString *)CARD_TYPE_HIPERCARD {
  233. return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_HIPERCARD", [self localizationTable], [self localizationBundle], @"Hipercard", @"CARD_TYPE_HIPERCARD");
  234. }
  235. + (NSString *)BRANDING_COINBASE {
  236. return NSLocalizedStringWithDefaultValue(@"BRANDING_COINBASE", [self localizationTable], [self localizationBundle], @"Coinbase", @"BRANDING_COINBASE");
  237. }
  238. + (NSString *)BRANDING_VENMO {
  239. return NSLocalizedStringWithDefaultValue(@"BRANDING_VENMO", [self localizationTable], [self localizationBundle], @"Venmo", @"BRANDING_VENMO");
  240. }
  241. + (NSString *)BRANDING_APPLE_PAY {
  242. return NSLocalizedStringWithDefaultValue(@"BRANDING_APPLE_PAY", [self localizationTable], [self localizationBundle], @"Apple Pay", @"BRANDING_APPLE_PAY");
  243. }
  244. + (NSString *)USE_DIFFERENT_PHONE_NUMBER_ACTION {
  245. return NSLocalizedStringWithDefaultValue(@"USE_DIFFERENT_PHONE_NUMBER_ACTION", [self localizationTable], [self localizationBundle], @"Use a different phone number", @"USE_DIFFERENT_PHONE_NUMBER_ACTION");
  246. }
  247. + (NSString *)CARD_NOT_ACCEPTED_ERROR_LABEL {
  248. return NSLocalizedStringWithDefaultValue(@"CARD_NOT_ACCEPTED_ERROR_LABEL", [self localizationTable], [self localizationBundle], @"Card not accepted", @"CARD_NOT_ACCEPTED_ERROR_LABEL");
  249. }
  250. #pragma mark Development Strings (usually not localized)
  251. + (NSString *)DEV_SAMPLE_SMS_CODE_TITLE {
  252. return NSLocalizedStringWithDefaultValue(@"DEV_SAMPLE_SMS_CODE_TITLE", [self localizationTable], [self localizationBundle], @"Sandbox Sample SMS Code", @"DEV_SAMPLE_SMS_CODE_TITLE");
  253. }
  254. + (NSString *)DEV_SAMPLE_SMS_CODE_INFO {
  255. return NSLocalizedStringWithDefaultValue(@"DEV_SAMPLE_SMS_CODE_INFO", [self localizationTable], [self localizationBundle], @"Any code passes, example: 12345 \n\nIncorrect code is: 999999", @"DEV_SAMPLE_SMS_CODE_INFO");
  256. }
  257. @end