@osano/osano-cmp-react-native 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/lib/commonjs/ConsentManager.js +11 -7
  2. package/lib/commonjs/ConsentManager.js.map +1 -1
  3. package/lib/commonjs/components/Button.js +2 -2
  4. package/lib/commonjs/components/Button.js.map +1 -1
  5. package/lib/commonjs/components/Checkbox.js +1 -1
  6. package/lib/commonjs/components/Checkbox.js.map +1 -1
  7. package/lib/commonjs/components/Divider.js +1 -1
  8. package/lib/commonjs/components/Divider.js.map +1 -1
  9. package/lib/commonjs/components/ExpansionPanel.js +1 -1
  10. package/lib/commonjs/components/ExpansionPanel.js.map +1 -1
  11. package/lib/commonjs/components/Link.js +1 -1
  12. package/lib/commonjs/components/Link.js.map +1 -1
  13. package/lib/commonjs/components/List.js +2 -2
  14. package/lib/commonjs/components/List.js.map +1 -1
  15. package/lib/commonjs/components/Locale.js.map +1 -1
  16. package/lib/commonjs/components/StoragePolicyLink.js +19 -6
  17. package/lib/commonjs/components/StoragePolicyLink.js.map +1 -1
  18. package/lib/commonjs/components/Toggle.js +1 -1
  19. package/lib/commonjs/components/Toggle.js.map +1 -1
  20. package/lib/commonjs/context.js +1 -1
  21. package/lib/commonjs/context.js.map +1 -1
  22. package/lib/commonjs/hooks/useThunkReducer.js +1 -1
  23. package/lib/commonjs/hooks/useThunkReducer.js.map +1 -1
  24. package/lib/commonjs/iab/actions.js.map +1 -1
  25. package/lib/commonjs/iab/gpp/api.js.map +1 -1
  26. package/lib/commonjs/iab/gpp/consent.js.map +1 -1
  27. package/lib/commonjs/iab/gpp/encoders/AbstractBase64UrlEncoder.js.map +1 -1
  28. package/lib/commonjs/iab/gpp/encoders/EncodableOptimizedFixedRange.js +1 -1
  29. package/lib/commonjs/iab/gpp/encoders/EncodableOptimizedFixedRange.js.map +1 -1
  30. package/lib/commonjs/iab/gpp/encoders/FixedIdBitMapEncoder.js +1 -1
  31. package/lib/commonjs/iab/gpp/encoders/FixedIdBitMapEncoder.js.map +1 -1
  32. package/lib/commonjs/iab/gpp/encoders/errors.js.map +1 -1
  33. package/lib/commonjs/iab/gpp/encoders/index.js +1 -1
  34. package/lib/commonjs/iab/gpp/encoders/index.js.map +1 -1
  35. package/lib/commonjs/iab/gpp/index.js +1 -1
  36. package/lib/commonjs/iab/gpp/index.js.map +1 -1
  37. package/lib/commonjs/iab/gpp/selectors.js.map +1 -1
  38. package/lib/commonjs/iab/gpp/v1/index.js +1 -1
  39. package/lib/commonjs/iab/gpp/v1/index.js.map +1 -1
  40. package/lib/commonjs/iab/reducer.js.map +1 -1
  41. package/lib/commonjs/iab/tcf/actions.js.map +1 -1
  42. package/lib/commonjs/iab/tcf/consent.js.map +1 -1
  43. package/lib/commonjs/iab/tcf/constants.js.map +1 -1
  44. package/lib/commonjs/iab/tcf/helpers.js.map +1 -1
  45. package/lib/commonjs/iab/tcf/index.js +1 -1
  46. package/lib/commonjs/iab/tcf/index.js.map +1 -1
  47. package/lib/commonjs/iab/tcf/middleware.js.map +1 -1
  48. package/lib/commonjs/iab/tcf/reducer.js.map +1 -1
  49. package/lib/commonjs/iab/tcf/selectors.js.map +1 -1
  50. package/lib/commonjs/iab/tcf/v2.0/index.js +1 -1
  51. package/lib/commonjs/iab/tcf/v2.0/index.js.map +1 -1
  52. package/lib/commonjs/iab/tcf/v2.0/tcfcav1-constants.js +1 -1
  53. package/lib/commonjs/iab/tcf/v2.0/tcfcav1-constants.js.map +1 -1
  54. package/lib/commonjs/iab/tcf/v2.0/tcfeuv2-constants.js +1 -1
  55. package/lib/commonjs/iab/tcf/v2.0/tcfeuv2-constants.js.map +1 -1
  56. package/lib/commonjs/iab/usp/consent.js.map +1 -1
  57. package/lib/commonjs/iab/usp/index.js +1 -1
  58. package/lib/commonjs/iab/usp/index.js.map +1 -1
  59. package/lib/commonjs/iab/usp/reducer.js.map +1 -1
  60. package/lib/commonjs/iab/usp/selectors.js.map +1 -1
  61. package/lib/commonjs/iab/usp/v1/index.js +1 -1
  62. package/lib/commonjs/iab/usp/v1/index.js.map +1 -1
  63. package/lib/commonjs/index.js +1 -1
  64. package/lib/commonjs/index.js.map +1 -1
  65. package/lib/commonjs/locale/af.json +33 -6
  66. package/lib/commonjs/locale/ar.json +36 -9
  67. package/lib/commonjs/locale/bg.json +38 -11
  68. package/lib/commonjs/locale/ca.json +33 -6
  69. package/lib/commonjs/locale/cs.json +33 -6
  70. package/lib/commonjs/locale/da.json +33 -6
  71. package/lib/commonjs/locale/de-at.json +33 -6
  72. package/lib/commonjs/locale/de.json +33 -6
  73. package/lib/commonjs/locale/el.json +36 -9
  74. package/lib/commonjs/locale/en-au.json +33 -6
  75. package/lib/commonjs/locale/en-ca.json +33 -6
  76. package/lib/commonjs/locale/en-gb.json +33 -6
  77. package/lib/commonjs/locale/en.json +33 -6
  78. package/lib/commonjs/locale/es-mx.json +34 -7
  79. package/lib/commonjs/locale/es.json +34 -7
  80. package/lib/commonjs/locale/et.json +33 -6
  81. package/lib/commonjs/locale/fa.json +34 -7
  82. package/lib/commonjs/locale/fi.json +33 -6
  83. package/lib/commonjs/locale/fr-ca.json +33 -6
  84. package/lib/commonjs/locale/fr.json +33 -6
  85. package/lib/commonjs/locale/gd.json +33 -6
  86. package/lib/commonjs/locale/he.json +33 -6
  87. package/lib/commonjs/locale/hi.json +33 -6
  88. package/lib/commonjs/locale/hr.json +33 -6
  89. package/lib/commonjs/locale/hu.json +34 -7
  90. package/lib/commonjs/locale/hy.json +33 -6
  91. package/lib/commonjs/locale/id.json +33 -6
  92. package/lib/commonjs/locale/index.js +1 -1
  93. package/lib/commonjs/locale/index.js.map +1 -1
  94. package/lib/commonjs/locale/is.json +33 -6
  95. package/lib/commonjs/locale/it.json +33 -6
  96. package/lib/commonjs/locale/ja.json +36 -9
  97. package/lib/commonjs/locale/kk.json +34 -7
  98. package/lib/commonjs/locale/ko.json +33 -6
  99. package/lib/commonjs/locale/lt.json +35 -8
  100. package/lib/commonjs/locale/lv.json +34 -7
  101. package/lib/commonjs/locale/mi.json +33 -6
  102. package/lib/commonjs/locale/ms.json +33 -6
  103. package/lib/commonjs/locale/nb.json +33 -6
  104. package/lib/commonjs/locale/nl-be.json +33 -6
  105. package/lib/commonjs/locale/nl.json +33 -6
  106. package/lib/commonjs/locale/nn.json +33 -6
  107. package/lib/commonjs/locale/no.json +33 -6
  108. package/lib/commonjs/locale/pl.json +34 -7
  109. package/lib/commonjs/locale/pt-br.json +33 -6
  110. package/lib/commonjs/locale/pt.json +33 -6
  111. package/lib/commonjs/locale/ro.json +33 -6
  112. package/lib/commonjs/locale/ru.json +34 -7
  113. package/lib/commonjs/locale/sk.json +33 -6
  114. package/lib/commonjs/locale/sl.json +33 -6
  115. package/lib/commonjs/locale/sq.json +33 -6
  116. package/lib/commonjs/locale/sr.json +33 -6
  117. package/lib/commonjs/locale/sv.json +33 -6
  118. package/lib/commonjs/locale/th.json +33 -6
  119. package/lib/commonjs/locale/tl.json +33 -6
  120. package/lib/commonjs/locale/tr.json +35 -8
  121. package/lib/commonjs/locale/uk.json +38 -11
  122. package/lib/commonjs/locale/vi.json +33 -6
  123. package/lib/commonjs/locale/zh-hk.json +33 -6
  124. package/lib/commonjs/locale/zh-tw.json +34 -7
  125. package/lib/commonjs/locale/zh.json +33 -6
  126. package/lib/commonjs/locale/zu.json +33 -6
  127. package/lib/commonjs/native/OsanoCmp.js.map +1 -1
  128. package/lib/commonjs/reducer.js.map +1 -1
  129. package/lib/commonjs/selectors.js.map +1 -1
  130. package/lib/commonjs/services/consent.js +3 -2
  131. package/lib/commonjs/services/consent.js.map +1 -1
  132. package/lib/commonjs/services/disclosures.js +1 -1
  133. package/lib/commonjs/services/disclosures.js.map +1 -1
  134. package/lib/commonjs/services/locale.js +1 -1
  135. package/lib/commonjs/services/locale.js.map +1 -1
  136. package/lib/commonjs/styles.js.map +1 -1
  137. package/lib/commonjs/utils/API.js +3 -2
  138. package/lib/commonjs/utils/API.js.map +1 -1
  139. package/lib/commonjs/utils/Color.js.map +1 -1
  140. package/lib/commonjs/utils/Translator.js.map +1 -1
  141. package/lib/commonjs/utils/index.js.map +1 -1
  142. package/lib/commonjs/views/Dialog/FirstLayerUsage.js +1 -1
  143. package/lib/commonjs/views/Dialog/FirstLayerUsage.js.map +1 -1
  144. package/lib/commonjs/views/Dialog/Message.js +16 -3
  145. package/lib/commonjs/views/Dialog/Message.js.map +1 -1
  146. package/lib/commonjs/views/Dialog/PreferenceManagementDeepLinks.js +1 -1
  147. package/lib/commonjs/views/Dialog/PreferenceManagementDeepLinks.js.map +1 -1
  148. package/lib/commonjs/views/Dialog/index.js +11 -3
  149. package/lib/commonjs/views/Dialog/index.js.map +1 -1
  150. package/lib/commonjs/views/Drawer/Drawer.ConsentCategories.js +11 -3
  151. package/lib/commonjs/views/Drawer/Drawer.ConsentCategories.js.map +1 -1
  152. package/lib/commonjs/views/Drawer/Drawer.Header.js +1 -1
  153. package/lib/commonjs/views/Drawer/Drawer.Header.js.map +1 -1
  154. package/lib/commonjs/views/Drawer/Drawer.Iab.Disclosures.js +1 -1
  155. package/lib/commonjs/views/Drawer/Drawer.Iab.Disclosures.js.map +1 -1
  156. package/lib/commonjs/views/Drawer/Drawer.Iab.Vendors.js +2 -2
  157. package/lib/commonjs/views/Drawer/Drawer.Iab.Vendors.js.map +1 -1
  158. package/lib/commonjs/views/Drawer/index.js +1 -1
  159. package/lib/commonjs/views/Drawer/index.js.map +1 -1
  160. package/lib/module/ConsentManager.js +10 -6
  161. package/lib/module/ConsentManager.js.map +1 -1
  162. package/lib/module/components/Button.js +1 -1
  163. package/lib/module/components/Button.js.map +1 -1
  164. package/lib/module/components/Link.js +1 -1
  165. package/lib/module/components/List.js +1 -1
  166. package/lib/module/components/Locale.js.map +1 -1
  167. package/lib/module/components/StoragePolicyLink.js +19 -6
  168. package/lib/module/components/StoragePolicyLink.js.map +1 -1
  169. package/lib/module/components/Toggle.js.map +1 -1
  170. package/lib/module/iab/actions.js.map +1 -1
  171. package/lib/module/iab/gpp/api.js.map +1 -1
  172. package/lib/module/iab/gpp/consent.js.map +1 -1
  173. package/lib/module/iab/gpp/encoders/AbstractBase64UrlEncoder.js.map +1 -1
  174. package/lib/module/iab/gpp/encoders/EncodableOptimizedFixedRange.js.map +1 -1
  175. package/lib/module/iab/gpp/encoders/errors.js.map +1 -1
  176. package/lib/module/iab/gpp/selectors.js.map +1 -1
  177. package/lib/module/iab/reducer.js.map +1 -1
  178. package/lib/module/iab/tcf/actions.js.map +1 -1
  179. package/lib/module/iab/tcf/consent.js.map +1 -1
  180. package/lib/module/iab/tcf/constants.js.map +1 -1
  181. package/lib/module/iab/tcf/helpers.js.map +1 -1
  182. package/lib/module/iab/tcf/middleware.js.map +1 -1
  183. package/lib/module/iab/tcf/reducer.js.map +1 -1
  184. package/lib/module/iab/tcf/selectors.js.map +1 -1
  185. package/lib/module/iab/usp/consent.js.map +1 -1
  186. package/lib/module/iab/usp/reducer.js.map +1 -1
  187. package/lib/module/iab/usp/selectors.js.map +1 -1
  188. package/lib/module/locale/af.json +33 -6
  189. package/lib/module/locale/ar.json +36 -9
  190. package/lib/module/locale/bg.json +38 -11
  191. package/lib/module/locale/ca.json +33 -6
  192. package/lib/module/locale/cs.json +33 -6
  193. package/lib/module/locale/da.json +33 -6
  194. package/lib/module/locale/de-at.json +33 -6
  195. package/lib/module/locale/de.json +33 -6
  196. package/lib/module/locale/el.json +36 -9
  197. package/lib/module/locale/en-au.json +33 -6
  198. package/lib/module/locale/en-ca.json +33 -6
  199. package/lib/module/locale/en-gb.json +33 -6
  200. package/lib/module/locale/en.json +33 -6
  201. package/lib/module/locale/es-mx.json +34 -7
  202. package/lib/module/locale/es.json +34 -7
  203. package/lib/module/locale/et.json +33 -6
  204. package/lib/module/locale/fa.json +34 -7
  205. package/lib/module/locale/fi.json +33 -6
  206. package/lib/module/locale/fr-ca.json +33 -6
  207. package/lib/module/locale/fr.json +33 -6
  208. package/lib/module/locale/gd.json +33 -6
  209. package/lib/module/locale/he.json +33 -6
  210. package/lib/module/locale/hi.json +33 -6
  211. package/lib/module/locale/hr.json +33 -6
  212. package/lib/module/locale/hu.json +34 -7
  213. package/lib/module/locale/hy.json +33 -6
  214. package/lib/module/locale/id.json +33 -6
  215. package/lib/module/locale/is.json +33 -6
  216. package/lib/module/locale/it.json +33 -6
  217. package/lib/module/locale/ja.json +36 -9
  218. package/lib/module/locale/kk.json +34 -7
  219. package/lib/module/locale/ko.json +33 -6
  220. package/lib/module/locale/lt.json +35 -8
  221. package/lib/module/locale/lv.json +34 -7
  222. package/lib/module/locale/mi.json +33 -6
  223. package/lib/module/locale/ms.json +33 -6
  224. package/lib/module/locale/nb.json +33 -6
  225. package/lib/module/locale/nl-be.json +33 -6
  226. package/lib/module/locale/nl.json +33 -6
  227. package/lib/module/locale/nn.json +33 -6
  228. package/lib/module/locale/no.json +33 -6
  229. package/lib/module/locale/pl.json +34 -7
  230. package/lib/module/locale/pt-br.json +33 -6
  231. package/lib/module/locale/pt.json +33 -6
  232. package/lib/module/locale/ro.json +33 -6
  233. package/lib/module/locale/ru.json +34 -7
  234. package/lib/module/locale/sk.json +33 -6
  235. package/lib/module/locale/sl.json +33 -6
  236. package/lib/module/locale/sq.json +33 -6
  237. package/lib/module/locale/sr.json +33 -6
  238. package/lib/module/locale/sv.json +33 -6
  239. package/lib/module/locale/th.json +33 -6
  240. package/lib/module/locale/tl.json +33 -6
  241. package/lib/module/locale/tr.json +35 -8
  242. package/lib/module/locale/uk.json +38 -11
  243. package/lib/module/locale/vi.json +33 -6
  244. package/lib/module/locale/zh-hk.json +33 -6
  245. package/lib/module/locale/zh-tw.json +34 -7
  246. package/lib/module/locale/zh.json +33 -6
  247. package/lib/module/locale/zu.json +33 -6
  248. package/lib/module/native/OsanoCmp.js.map +1 -1
  249. package/lib/module/reducer.js.map +1 -1
  250. package/lib/module/selectors.js.map +1 -1
  251. package/lib/module/services/consent.js +2 -1
  252. package/lib/module/services/consent.js.map +1 -1
  253. package/lib/module/services/disclosures.js.map +1 -1
  254. package/lib/module/services/locale.js.map +1 -1
  255. package/lib/module/styles.js.map +1 -1
  256. package/lib/module/utils/API.js +3 -2
  257. package/lib/module/utils/API.js.map +1 -1
  258. package/lib/module/utils/Color.js.map +1 -1
  259. package/lib/module/utils/Translator.js.map +1 -1
  260. package/lib/module/utils/index.js.map +1 -1
  261. package/lib/module/views/Dialog/FirstLayerUsage.js.map +1 -1
  262. package/lib/module/views/Dialog/Message.js +15 -2
  263. package/lib/module/views/Dialog/Message.js.map +1 -1
  264. package/lib/module/views/Dialog/index.js +10 -2
  265. package/lib/module/views/Dialog/index.js.map +1 -1
  266. package/lib/module/views/Drawer/Drawer.ConsentCategories.js +10 -2
  267. package/lib/module/views/Drawer/Drawer.ConsentCategories.js.map +1 -1
  268. package/lib/module/views/Drawer/Drawer.Iab.Disclosures.js.map +1 -1
  269. package/lib/module/views/Drawer/Drawer.Iab.Vendors.js +1 -1
  270. package/lib/module/views/Drawer/Drawer.Iab.Vendors.js.map +1 -1
  271. package/lib/typescript/lib/commonjs/ConsentManager.d.ts +3 -0
  272. package/lib/typescript/lib/commonjs/ConsentManager.d.ts.map +1 -1
  273. package/lib/typescript/lib/commonjs/components/StoragePolicyLink.d.ts +1 -1
  274. package/lib/typescript/lib/commonjs/components/StoragePolicyLink.d.ts.map +1 -1
  275. package/lib/typescript/lib/commonjs/services/consent.d.ts.map +1 -1
  276. package/lib/typescript/lib/commonjs/utils/API.d.ts.map +1 -1
  277. package/lib/typescript/lib/commonjs/views/Dialog/Message.d.ts.map +1 -1
  278. package/lib/typescript/lib/commonjs/views/Dialog/index.d.ts.map +1 -1
  279. package/lib/typescript/lib/commonjs/views/Drawer/Drawer.ConsentCategories.d.ts.map +1 -1
  280. package/lib/typescript/lib/module/ConsentManager.d.ts +3 -0
  281. package/lib/typescript/lib/module/ConsentManager.d.ts.map +1 -1
  282. package/lib/typescript/lib/module/components/StoragePolicyLink.d.ts +1 -1
  283. package/lib/typescript/lib/module/components/StoragePolicyLink.d.ts.map +1 -1
  284. package/lib/typescript/lib/module/services/consent.d.ts.map +1 -1
  285. package/lib/typescript/lib/module/utils/API.d.ts.map +1 -1
  286. package/lib/typescript/lib/module/views/Dialog/Message.d.ts.map +1 -1
  287. package/lib/typescript/lib/module/views/Dialog/index.d.ts.map +1 -1
  288. package/lib/typescript/lib/module/views/Drawer/Drawer.ConsentCategories.d.ts.map +1 -1
  289. package/lib/typescript/src/ConsentManager.d.ts +1 -0
  290. package/lib/typescript/src/ConsentManager.d.ts.map +1 -1
  291. package/lib/typescript/src/components/StoragePolicyLink.d.ts +6 -1
  292. package/lib/typescript/src/components/StoragePolicyLink.d.ts.map +1 -1
  293. package/lib/typescript/src/services/consent.d.ts.map +1 -1
  294. package/lib/typescript/src/utils/API.d.ts.map +1 -1
  295. package/lib/typescript/src/views/Dialog/Message.d.ts.map +1 -1
  296. package/lib/typescript/src/views/Dialog/index.d.ts.map +1 -1
  297. package/lib/typescript/src/views/Drawer/Drawer.ConsentCategories.d.ts.map +1 -1
  298. package/package.json +2 -2
  299. package/src/ConsentManager.ts +18 -5
  300. package/src/components/StoragePolicyLink.tsx +22 -6
  301. package/src/locale/af.json +33 -6
  302. package/src/locale/ar.json +36 -9
  303. package/src/locale/bg.json +38 -11
  304. package/src/locale/ca.json +33 -6
  305. package/src/locale/cs.json +33 -6
  306. package/src/locale/da.json +33 -6
  307. package/src/locale/de-at.json +33 -6
  308. package/src/locale/de.json +33 -6
  309. package/src/locale/el.json +36 -9
  310. package/src/locale/en-au.json +33 -6
  311. package/src/locale/en-ca.json +33 -6
  312. package/src/locale/en-gb.json +33 -6
  313. package/src/locale/en.json +33 -6
  314. package/src/locale/es-mx.json +34 -7
  315. package/src/locale/es.json +34 -7
  316. package/src/locale/et.json +33 -6
  317. package/src/locale/fa.json +34 -7
  318. package/src/locale/fi.json +33 -6
  319. package/src/locale/fr-ca.json +33 -6
  320. package/src/locale/fr.json +33 -6
  321. package/src/locale/gd.json +33 -6
  322. package/src/locale/he.json +33 -6
  323. package/src/locale/hi.json +33 -6
  324. package/src/locale/hr.json +33 -6
  325. package/src/locale/hu.json +34 -7
  326. package/src/locale/hy.json +33 -6
  327. package/src/locale/id.json +33 -6
  328. package/src/locale/is.json +33 -6
  329. package/src/locale/it.json +33 -6
  330. package/src/locale/ja.json +36 -9
  331. package/src/locale/kk.json +34 -7
  332. package/src/locale/ko.json +33 -6
  333. package/src/locale/lt.json +35 -8
  334. package/src/locale/lv.json +34 -7
  335. package/src/locale/mi.json +33 -6
  336. package/src/locale/ms.json +33 -6
  337. package/src/locale/nb.json +33 -6
  338. package/src/locale/nl-be.json +33 -6
  339. package/src/locale/nl.json +33 -6
  340. package/src/locale/nn.json +33 -6
  341. package/src/locale/no.json +33 -6
  342. package/src/locale/pl.json +34 -7
  343. package/src/locale/pt-br.json +33 -6
  344. package/src/locale/pt.json +33 -6
  345. package/src/locale/ro.json +33 -6
  346. package/src/locale/ru.json +34 -7
  347. package/src/locale/sk.json +33 -6
  348. package/src/locale/sl.json +33 -6
  349. package/src/locale/sq.json +33 -6
  350. package/src/locale/sr.json +33 -6
  351. package/src/locale/sv.json +33 -6
  352. package/src/locale/th.json +33 -6
  353. package/src/locale/tl.json +33 -6
  354. package/src/locale/tr.json +35 -8
  355. package/src/locale/uk.json +38 -11
  356. package/src/locale/vi.json +33 -6
  357. package/src/locale/zh-hk.json +33 -6
  358. package/src/locale/zh-tw.json +34 -7
  359. package/src/locale/zh.json +33 -6
  360. package/src/locale/zu.json +33 -6
  361. package/src/services/consent.ts +1 -0
  362. package/src/types/consent-config.d.ts +2 -0
  363. package/src/utils/API.ts +4 -3
  364. package/src/views/Dialog/Message.tsx +31 -2
  365. package/src/views/Dialog/index.tsx +20 -6
  366. package/src/views/Drawer/Drawer.ConsentCategories.tsx +22 -12
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "messaging": {
50
50
  "poweredBy": "由奥萨诺提供動力",
51
- "default": "本網站利用Cookie等技術嚟實現基本嘅網站功能,以及用于分析、個性化同有針對性嘅廣告目的。",
51
+ "default": "本網站利用cookie等技術嚟啟用基本嘅網站功能,以及%{analytics}、%{personalization}同%{marketing}。",
52
52
  "categories": "您可隨時更改您的設定或接受既定設定。",
53
53
  "cookieQuestion": "什麼是 cookie?",
54
54
  "timer": "要了解更多信息,請查看以下連結:",
@@ -62,7 +62,11 @@
62
62
  "usageHow": "我哋嘅網站可能會將呢啲cookie用于:",
63
63
  "usageList": "唔透過資料收集而判定我哋網站上廣告嘅受眾\n根據您的導航和個人資料顯示個性化廣告\n根據您的導航個性化我哋嘅編輯內容\n允許你喺我哋嘅網站上嘅社交網絡或平台上共享內容\n根據您的位置向您發送廣告",
64
64
  "viewCookies": "查看Cookies",
65
- "closeButton": "你可以關閉此橫幅,繼續只使用必需嘅Cookie。"
65
+ "closeButton": "你可以關閉此橫幅,繼續只使用必需嘅Cookie。",
66
+ "subjectRightsRequest": "主題權限請求",
67
+ "doNotSellOrShare": "唔好出售或分享我嘅個人信息",
68
+ "securityPolicy": "安全策略",
69
+ "imprint": "印記"
66
70
  },
67
71
  "disclosure": {
68
72
  "day": "日",
@@ -92,11 +96,11 @@
92
96
  "vendor": {
93
97
  "dataRetention": "數據保留期為%{days}日",
94
98
  "title": "第三方",
95
- "preamble": "本網站與以下第三方供應商共享數據。 你可以在本節中更改每個供應商的首選項。 如果您選擇退出供應商,佢哋將唔允許處理您的個人數據。",
99
+ "preamble": "本網站與以下第三方IAB TCF供應商共享數據。 在本節中,你可以更改每個IAB TCF供應商嘅首選項。 如果你選擇退出ICB TCF供應商,佢哋將無法處理您的個人數據。",
96
100
  "maxCookieStorage": "最大餅乾存儲量",
97
101
  "usesNonCookieAccess": "此供應商使用其他存儲方法或訪問已存儲喺用戶設備上嘅信息。"
98
102
  },
99
- "layer1": "我哋同我哋嘅%{vendorCount}合作伙伴喺你嘅設備上存儲同訪問信息,以便投放個性化廣告同內容。 個人數據可能會被處理,例如Cookie標識符、唯一設備標識符和瀏覽器信息。 第三方可能會喺你嘅設備上存儲同訪問信息,並處理呢啲個人數據。 您可以透過點擊cookie圖標或連結來更改或撤回您的偏好; 但是,因此,你可能睇唔到相關嘅廣告或個性化內容。",
103
+ "layer1": "我們和我們的%{vendorCount} IAB TCF合作伙伴出於以下目的在您的設備上存儲和訪問信息:%{stacks}。\n\n個人數據可能會被處理以執行以下操作:%{iab.specialFeatures.1.name}和%{iab.specialFeatures.2.name}。 \n\n我哋嘅第三方IAB TCF合作伙伴可能會根據合法利益或徵得您的同意,在您的設備上存儲和訪問信息並處理呢啲個人數據。 您可以隨時透過點擊cookie圖標或連結來更改或撤銷您的偏好; 但是,因此,你可能睇唔到相關嘅廣告或個性化內容。",
100
104
  "legal": {
101
105
  "title": "所有第三方披露",
102
106
  "preamble": "本網站嘅第三方供應商可以實現以下功能、用途、特殊特性和功能。",
@@ -108,7 +112,9 @@
108
112
  "legIntClaim": "郃灋權益受到威脅",
109
113
  "specialPurposes": "特殊用途:",
110
114
  "features": "特徵:",
111
- "specialFeatures": "特殊特點:"
115
+ "specialFeatures": "特殊特點:",
116
+ "legInt": "郃灋權益",
117
+ "consent": "同意"
112
118
  },
113
119
  "partnerCount": "%{partnerCount}合作伙伴",
114
120
  "partnerCountPlural": "%{partnerCount}合作伙伴",
@@ -215,6 +221,13 @@
215
221
  "illustrations": {
216
222
  "1": "单击文章中的链接通常可能会将您发引导至另一个页面或文章的另一部分。为此,1°) 您的浏览器向链接到网站的服务器发送请求,2°) 服务器回复(“这是您请求的文章”),使用设备发送的请求中自动包含的技术信息,以正确显示您请求的文章中的信息/图像。从技术上讲,这种信息交换对于提供屏幕上出现的内容是必要的。"
217
223
  }
224
+ },
225
+ "3": {
226
+ "name": "保存和传达隐私选择",
227
+ "description": "您就本通知中所列目的和实体做出的选择将被保存并以数字信号(例如字符串)的形式提供给相关实体。这对于确保本服务和相关实体尊重上述选择是必要的。",
228
+ "illustrations": {
229
+ "1": "当您访问一家网站时,如果网站请求您选择同意或不同意将个人资料用于个性化广告,您做出的选择将被保存并提供给广告提供商,以便向您展示的广告尊重该选择。"
230
+ }
218
231
  }
219
232
  },
220
233
  "features": {
@@ -291,6 +304,20 @@
291
304
  "name": "隐私选择",
292
305
  "description": "您在处理您的数据方面的偏好,根据您收到的信息得出。"
293
306
  }
307
+ },
308
+ "stacks": {
309
+ "3": {
310
+ "name": "个性化广告",
311
+ "description": "可以根据您的资料个性化定制广告。您在此服务上的活动可能被用于创建或完善有关您的资料,以便向您展示个性化广告。"
312
+ },
313
+ "20": {
314
+ "name": "ÂπøÂ��äÂíåÂÜÖÂÆπ˰°Èáè„ÄÅÂèó‰ºóÁ†îÁ©∂ÂíåÊúçÂä°ÂºÄÂèë",
315
+ "description": "可以衡量广告及其内容效果。您在该服务上的活动可以帮助开发和改进产品和服务。报告可根据您的活动和其他人的活动生成。"
316
+ },
317
+ "44": {
318
+ "name": "个性化内容",
319
+ "description": "可以根据您的资料个性化定制内容。您在此服务上的活动可能被用于创建或完善有关您的资料,以便向您展示个性化内容。"
320
+ }
294
321
  }
295
322
  },
296
323
  "aria": {
@@ -301,6 +328,6 @@
301
328
  "doNotSell": {
302
329
  "header": "您的私隱選擇",
303
330
  "description": "我哋允許某些在線廣告合作伙伴透過Cookie同類似技術由我哋嘅服務中收集信息,以投放與你更相關嘅廣告,並協助我哋進行與廣告相關嘅分析。 根據某些法律,可能被視為定向在線廣告嘅“銷售”或“共享”。 要選擇退出此活動,請使用下面嘅切換掣。",
304
- "link": "你可以透過查看此連結了解有關我哋嘅私隱慣例嘅更多信息:"
331
+ "link": "你可以透過查看我哋嘅政策嚟詳細了解我哋嘅私隱慣例:"
305
332
  }
306
333
  }
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "messaging": {
50
50
  "poweredBy": "技術支持 Osano",
51
- "default": "本網站使用 cookie 等技術來啟用基本網站功能,以及用於分析、個性化和有針對性的廣告目的。",
51
+ "default": "本網站利用 Cookie 等技術來啟用基本網站功能以及 %{analytics}、%{personalization} 和 %{marketing}。",
52
52
  "categories": "您可以隨時更改您的設定或接受預設設定。",
53
53
  "cookieQuestion": "什麼是Cookie?",
54
54
  "timer": "要了解更多信息,請查看以下鏈接:",
@@ -62,7 +62,11 @@
62
62
  "usageHow": "我們的網站可能會使用這些 cookie 來:",
63
63
  "usageList": "唔透過資料收集而判定我哋網站上廣告嘅受眾\n根據您的導航和個人資料展示個性化廣告\n根據您的導航個性化我們的編輯內容\n允許您在我們網站上的社交網絡或平台上分享內容\n根據您的位置向您發送廣告",
64
64
  "viewCookies": "查看Cookies",
65
- "closeButton": "您可以關閉此橫幅以僅繼續使用必要的 cookie。"
65
+ "closeButton": "您可以關閉此橫幅以僅繼續使用必要的 cookie。",
66
+ "subjectRightsRequest": "主題權利請求",
67
+ "doNotSellOrShare": "請勿出售或分享我的個人信息",
68
+ "securityPolicy": "安全政策",
69
+ "imprint": "印記"
66
70
  },
67
71
  "disclosure": {
68
72
  "day": "日",
@@ -92,11 +96,11 @@
92
96
  "vendor": {
93
97
  "dataRetention": "資料保留時間為 %{days} 天",
94
98
  "title": "第三方",
95
- "preamble": "該網站與以下第三方供應商共享數據。您可以在此部分中更改每個供應商的首選項。如果您選擇退出供應商,則將不允許他們處理您的個人數據。",
99
+ "preamble": "本網站與以下第三方 IAB TCF 供應商分享資料。您可以在此部分中變更每個 IAB TCF 供應商的首選項。如果您選擇退出 IAB TCF 供應商,他們將無權處理您的個人資料。",
96
100
  "maxCookieStorage": "Cookie的最大存儲量",
97
101
  "usesNonCookieAccess": "該供應商使用其他存儲或訪問已存儲在用戶設備上的信息的方法。"
98
102
  },
99
- "layer1": "我們和我們的 %{vendorCount} 合作夥伴在您的裝置上儲存和存取資訊以提供個人化廣告和內容。可能會處理個人數據,例如 cookie 識別碼、唯一裝置識別碼和瀏覽器資訊。第三方可能會在您的裝置上儲存和存取資訊並處理這些個人資料。您可以點擊 cookie 圖示或連結來更改或撤銷您的偏好;但是,因此,您可能看不到相關廣告或個人化內容。",
103
+ "layer1": "我們和我們的 %{vendorCount} IAB TCF 合作夥伴在您的裝置上儲存和存取信息,用於以下目的:%{stacks}。\n\n個人資料可能會被處理以執行以下操作:%{iab.specialFeatures.1.name} 和 %{iab.specialFeatures.2.name}。 \n\n我們的第三方 IAB TCF 合作夥伴可能會在您的裝置上儲存和存取訊息,並基於合法利益或在您同意的情況下處理這些個人資料。您可以隨時透過點擊 cookie 圖示或連結來變更或撤銷您的偏好;但是,因此,您可能看不到相關廣告或個人化內容。",
100
104
  "legal": {
101
105
  "title": "所有第三方披露",
102
106
  "preamble": "本網站上的第三方供應商可能會實現以下功能,目的,特殊功能。",
@@ -108,7 +112,9 @@
108
112
  "legIntClaim": "合法權益受到威脅",
109
113
  "specialPurposes": "特殊用途:",
110
114
  "features": "特徵:",
111
- "specialFeatures": "特殊功能:"
115
+ "specialFeatures": "特殊功能:",
116
+ "legInt": "合法權益",
117
+ "consent": "同意"
112
118
  },
113
119
  "partnerCount": "%{partnerCount} 合作夥伴",
114
120
  "partnerCountPlural": "%{partnerCount} 合作夥伴",
@@ -178,7 +184,7 @@
178
184
  },
179
185
  "9": {
180
186
  "name": "通过统计数据或来自不同来源的数据组合了解受众",
181
- "description": "报告可以根据关于您的互动和其他用户与广告或(非广告)内容���互动的数据集(如用户资料、统计数据、市场研究、分析数据)的组合生成,以识别共同特征(例如,确定哪些目标受众更容易接受广告宣传或特定内容)。",
187
+ "description": "报告可以根据关于您的互动和其他用户与广告或(非广告)内容的互动的数据集(如用户资料、统计数据、市场研究、分析数据)的组合生成,以识别共同特征(例如,确定哪些目标受众更容易接受广告宣传或特定内容)。",
182
188
  "illustrations": {
183
189
  "1": "一家线上书店的店主希望商业报告显示咨询过但没有购买就离开其网站的访客比例,或咨询并购买当月最后一本名人自传的访客比例,以及每个类别访客的平均年龄和男性/女性分布。然后,与您在其网站上浏览相关的数据以及您的个人特征将被使用并与其他此类数据相结合,以生成统计数据。",
184
190
  "2": "广告商希望更好地了解与其广告互动的受众类型。它希望某研究机构将与广告互动的用户的特征与不同设备上类似平台用户的典型特征进行比较。这种对比向广告商表明,其广告受众主要通过移动设备访问广告,并且可能在 45-60 岁之间。"
@@ -215,6 +221,13 @@
215
221
  "illustrations": {
216
222
  "1": "单击文章中的链接通常可能会将您发引导至另一个页面或文章的另一部分。为此,1°) 您的浏览器向链接到网站的服务器发送请求,2°) 服务器回复(“这是您请求的文章”),使用设备发送的请求中自动包含的技术信息,以正确显示您请求的文章中的信息/图像。从技术上讲,这种信息交换对于提供屏幕上出现的内容是必要的。"
217
223
  }
224
+ },
225
+ "3": {
226
+ "name": "保存和传达隐私选择",
227
+ "description": "您就本通知中所列目的和实体做出的选择将被保存并以数字信号(例如字符串)的形式提供给相关实体。这对于确保本服务和相关实体尊重上述选择是必要的。",
228
+ "illustrations": {
229
+ "1": "当您访问一家网站时,如果网站请求您选择同意或不同意将个人资料用于个性化广告,您做出的选择将被保存并提供给广告提供商,以便向您展示的广告尊重该选择。"
230
+ }
218
231
  }
219
232
  },
220
233
  "features": {
@@ -291,6 +304,20 @@
291
304
  "name": "隐私选择",
292
305
  "description": "您在处理您的数据方面的偏好,根据您收到的信息得出。"
293
306
  }
307
+ },
308
+ "stacks": {
309
+ "3": {
310
+ "name": "个性化广告",
311
+ "description": "可以根据您的资料个性化定制广告。您在此服务上的活动可能被用于创建或完善有关您的资料,以便向您展示个性化广告。"
312
+ },
313
+ "20": {
314
+ "name": "广告和内容衡量、受众研究和服务开发",
315
+ "description": "可以衡量广告及其内容效果。您在该服务上的活动可以帮助开发和改进产品和服务。报告可根据您的活动和其他人的活动生成。"
316
+ },
317
+ "44": {
318
+ "name": "个性化内容",
319
+ "description": "可以根据您的资料个性化定制内容。您在此服务上的活动可能被用于创建或完善有关您的资料,以便向您展示个性化内容。"
320
+ }
294
321
  }
295
322
  },
296
323
  "aria": {
@@ -301,6 +328,6 @@
301
328
  "doNotSell": {
302
329
  "header": "您的隱私選擇",
303
330
  "description": "我們允許某些在線廣告合作夥伴通過 Cookie 和類似技術從我們的服務中收集信息,以投放與您更相關的廣告,並協助我們進行廣告相關分析。根據某些法律,這可能被視為針對定向在線廣告的“銷售”或“共享”。要選擇退出此活動,請使用下面的切換按鈕。",
304
- "link": "您可以通過查看此鏈接了解有關我們隱私慣例的更多信息:"
331
+ "link": "您可以透過查看我們的政策來了解有關我們隱私權慣例的更多資訊:"
305
332
  }
306
333
  }
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "messaging": {
50
50
  "poweredBy": "技术支持 Osano",
51
- "default": "本网站使用 cookie 等技术来启用基本网站功能,以及用于分析、个性化和有针对性的广告目的。",
51
+ "default": "本网站利用 Cookie 等技术来启用基本网站功能以及 %{analytics}、%{personalization} 和 %{marketing}。",
52
52
  "categories": "您可随时更改设置或接受默认设置。",
53
53
  "cookieQuestion": "Cookie 是什么?",
54
54
  "timer": "要了解更多信息,请查看以下链接:",
@@ -62,7 +62,11 @@
62
62
  "usageHow": "我们的网站可能会将这些cookie用于:",
63
63
  "usageList": "不通过资料收集而判定我们网站上广告的受众\n根据您的导航和个人资料展示个性化广告\n根据您的导航个性化我们的编辑内容\n允许您在我们网站上的社交网络或平台上分享内容\n根据您的位置向您发送广告",
64
64
  "viewCookies": "查看Cookies",
65
- "closeButton": "您可以关闭此横幅以仅继续使用必要的 cookie。"
65
+ "closeButton": "您可以关闭此横幅以仅继续使用必要的 cookie。",
66
+ "subjectRightsRequest": "主题权利请求",
67
+ "doNotSellOrShare": "请勿出售或分享我的个人信息",
68
+ "securityPolicy": "安全政策",
69
+ "imprint": "印记"
66
70
  },
67
71
  "disclosure": {
68
72
  "day": "日",
@@ -92,11 +96,11 @@
92
96
  "vendor": {
93
97
  "dataRetention": "数据保留时间为 %{days} 天",
94
98
  "title": "第三方",
95
- "preamble": "该网站与以下第三方供应商共享数据。您可以在此部分中为每个单独的供应商更改首选项。",
99
+ "preamble": "本网站与以下第三方 IAB TCF 供应商共享数据。您可以在此部分中更改每个 IAB TCF 供应商的首选项。如果您选择退出 IAB TCF 供应商,他们将无权处理您的个人数据。",
96
100
  "maxCookieStorage": "Cookie的最大存储量",
97
101
  "usesNonCookieAccess": "该供应商使用其他存储或访问已存储在用户设备上的信息的方法。"
98
102
  },
99
- "layer1": "我们和我们的 %{vendorCount} 合作伙伴在您的设备上存储和访问信息以提供个性化广告和内容。可能会处理个人数据,例如 cookie 标识符、唯一设备标识符和浏览器信息。第三方可能会在您的设备上存储和访问信息并处理这些个人数据。您可以通过点击 cookie 图标或链接来更改或撤销您的偏好;但是,因此,您可能看不到相关广告或个性化内容。",
103
+ "layer1": "我们和我们的 %{vendorCount} IAB TCF 合作伙伴在您的设备上存储和访问信息,用于以下目的:%{stacks}。\n\n个人数据可能会被处理以执行以下操作:%{iab.specialFeatures.1.name} 和 %{iab.specialFeatures.2.name}。 \n\n我们的第三方 IAB TCF 合作伙伴可能会在您的设备上存储和访问信息,并基于合法利益或在您同意的情况下处理这些个人数据。您可以随时通过点击 cookie 图标或链接来更改或撤销您的偏好;但是,因此,您可能看不到相关广告或个性化内容。",
100
104
  "legal": {
101
105
  "title": "所有第三方披露",
102
106
  "preamble": "本网站上的第三方供应商可能会实现以下功能,目的,特殊功能。",
@@ -108,7 +112,9 @@
108
112
  "legIntClaim": "合法权益受到威胁",
109
113
  "specialPurposes": "特殊用途:",
110
114
  "features": "特征:",
111
- "specialFeatures": "特殊功能:"
115
+ "specialFeatures": "特殊功能:",
116
+ "legInt": "合法权益",
117
+ "consent": "同意"
112
118
  },
113
119
  "partnerCount": "%{partnerCount} 合作伙伴",
114
120
  "partnerCountPlural": "%{partnerCount} 合作伙伴",
@@ -215,6 +221,13 @@
215
221
  "illustrations": {
216
222
  "1": "单击文章中的链接通常可能会将您发引导至另一个页面或文章的另一部分。为此,1°) 您的浏览器向链接到网站的服务器发送请求,2°) 服务器回复(“这是您请求的文章”),使用设备发送的请求中自动包含的技术信息,以正确显示您请求的文章中的信息/图像。从技术上讲,这种信息交换对于提供屏幕上出现的内容是必要的。"
217
223
  }
224
+ },
225
+ "3": {
226
+ "name": "保存和传达隐私选择",
227
+ "description": "您就本通知中所列目的和实体做出的选择将被保存并以数字信号(例如字符串)的形式提供给相关实体。这对于确保本服务和相关实体尊重上述选择是必要的。",
228
+ "illustrations": {
229
+ "1": "当您访问一家网站时,如果网站请求您选择同意或不同意将个人资料用于个性化广告,您做出的选择将被保存并提供给广告提供商,以便向您展示的广告尊重该选择。"
230
+ }
218
231
  }
219
232
  },
220
233
  "features": {
@@ -291,6 +304,20 @@
291
304
  "name": "隐私选择",
292
305
  "description": "您在处理您的数据方面的偏好,根据您收到的信息得出。"
293
306
  }
307
+ },
308
+ "stacks": {
309
+ "3": {
310
+ "name": "个性化广告",
311
+ "description": "可以根据您的资料个性化定制广告。您在此服务上的活动可能被用于创建或完善有关您的资料,以便向您展示个性化广告。"
312
+ },
313
+ "20": {
314
+ "name": "广告和内容衡量、受众研究和服务开发",
315
+ "description": "可以衡量广告及其内容效果。您在该服务上的活动可以帮助开发和改进产品和服务。报告可根据您的活动和其他人的活动生成。"
316
+ },
317
+ "44": {
318
+ "name": "个性化内容",
319
+ "description": "可以根据您的资料个性化定制内容。您在此服务上的活动可能被用于创建或完善有关您的资料,以便向您展示个性化内容。"
320
+ }
294
321
  }
295
322
  },
296
323
  "aria": {
@@ -301,6 +328,6 @@
301
328
  "doNotSell": {
302
329
  "header": "您的隐私选择",
303
330
  "description": "我们允许某些在线广告合作伙伴通过 Cookie 和类似技术从我们的服务中收集信息,以投放与您更相关的广告,并协助我们进行广告相关分析。根据某些法律,这可能被视为针对定向在线广告的“销售”或“共享”。要选择退出此活动,请使用下面的切换按钮。",
304
- "link": "您可以通过查看此链接了解有关我们隐私惯例的更多信息:"
331
+ "link": "您可以通过查看我们的政策来了解有关我们隐私惯例的更多信息:"
305
332
  }
306
333
  }
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "messaging": {
50
50
  "poweredBy": "Inikwe amandla yi-Osano",
51
- "default": "Le webhusayithi isebenzisa ubuchwepheshe obufana namakhukhi ukunika amandla ukusebenza kwesayithi okubalulekile, kanye nokuhlaziya, ukwenza kube ngokwakho, kanye nezinjongo zokukhangisa eziqondisiwe.",
51
+ "default": "Le webhusayithi isebenzisa ubuchwepheshe obufana namakhukhi ukunika amandla ukusebenza kwesayithi okubalulekile, kanye ne-%{analytics}, %{personalization}, kanye ne-%{marketing}.",
52
52
  "categories": "Ungashintsha izilungiselelo zakho nganoma yisiphi isikhathi noma wamukele izilungiselelo ezizenzakalelayo.",
53
53
  "cookieQuestion": "Liyini ikhukhi?",
54
54
  "timer": "Ukuze ufunde kabanzi, buka isixhumanisi esilandelayo:",
@@ -62,7 +62,11 @@
62
62
  "usageHow": "Iwebhusayithi yethu ingasebenzisa la makhukhi uku:",
63
63
  "usageList": "Linganisa izethameli zokukhangisa kuwebhusayithi yethu, ngaphandle kokwenza iphrofayela\nBonisa izikhangiso eziqondene nawe ngokusekelwe ekuzulazuleni kwakho kanye nephrofayili yakho\nYenza kube ngokwakho okuqukethwe kwethu kokuhlela ngokusekelwe ekuzulazuleni kwakho\nIkuvumela ukuthi wabelane ngokuqukethwe ezinkundleni zokuxhumana noma ezinkundleni ezikhona kuwebhusayithi yethu\nIkuthumelela ukukhangisa ngokusekelwe endaweni yakho",
64
64
  "viewCookies": "Buka Amakhukhi",
65
- "closeButton": "Ungavala lesi sibhengezo ukuze uqhubeke namakhukhi abalulekile kuphela."
65
+ "closeButton": "Ungavala lesi sibhengezo ukuze uqhubeke namakhukhi abalulekile kuphela.",
66
+ "subjectRightsRequest": "Isicelo Samalungelo Esihloko",
67
+ "doNotSellOrShare": "Ungathengisi noma Wabelane Ngolwazi Lwami Lomuntu Siqu",
68
+ "securityPolicy": "Inqubomgomo Yezokuphepha",
69
+ "imprint": "Imprint"
66
70
  },
67
71
  "disclosure": {
68
72
  "day": "usuku",
@@ -92,11 +96,11 @@
92
96
  "vendor": {
93
97
  "dataRetention": "Ukugcinwa kwedatha yizinsuku ezingu-%{days}",
94
98
  "title": "Third Parties",
95
- "preamble": "This website shares data with the following third-party vendors. You may change your preferences for each vendor in this section. If you opt-out of vendors, they will not be allowed to process your personal data.",
99
+ "preamble": "Le webhusayithi yabelana ngedatha nabathengisi be-IAB TCF bezinkampani zangaphandle. Ungashintsha okuncamelayo kwakho kumthengisi ngamunye we-IAB TCF kulesi sigaba. Uma ukhetha ukuphuma kumthengisi we-IAB TCF, ngeke avunyelwe ukucubungula idatha yakho yomuntu siqu.",
96
100
  "maxCookieStorage": "Maximum cookie storage",
97
101
  "usesNonCookieAccess": "This vendor uses other methods of storage or accessing information already stored on a user's device."
98
102
  },
99
- "layer1": "Thina nozakwethu be-%{vendorCount} sigcina futhi sifinyelela ulwazi kudivayisi yakho ukuze uthole izikhangiso eziqondene nawe kanye nokuqukethwe. Idatha yomuntu siqu ingase icutshungulwe, njengezihlonzi zekhukhi, izihlonzi zedivayisi ezihlukile, nolwazi lwesiphequluli. Izinkampani zangaphandle zingagcina futhi zifinyelele ulwazi kudivayisi yakho futhi zicubungule le datha yomuntu siqu. Ungashintsha noma uhoxise izintandokazi zakho ngokuchofoza isithonjana sekhukhi noma isixhumanisi; Nokho, ngenxa yalokho, ungase ungaboni izikhangiso ezifanele noma okuqukethwe komuntu siqu.",
103
+ "layer1": "Thina kanye %{vendorCount} sozakwethu be-IAB TCF sigcina futhi sifinyelela ulwazi kudivayisi yakho ngezinjongo ezilandelayo: %{stacks}.\n\nIdatha yomuntu siqu ingase icutshungulwe ukwenza lokhu okulandelayo: %{iab.specialFeatures.1.name} kanye %{iab.specialFeatures.2.name}. \n\nOzakwethu benkampani yangaphandle ye-IAB TCF bangagcina futhi bafinyelele ulwazi kudivayisi yakho futhi bacubungule le datha yomuntu siqu ngesisekelo sentshisekelo esemthethweni, noma ngemvume yakho. Ungashintsha noma uhoxise izintandokazi zakho nganoma yisiphi isikhathi ngokuchofoza isithonjana sekhukhi noma isixhumanisi; Nokho, ngenxa yalokho, ungase ungaboni izikhangiso ezifanele noma okuqukethwe komuntu siqu.",
100
104
  "legal": {
101
105
  "title": "All Third Party Disclosures",
102
106
  "preamble": "Third-party vendors on this website may implement the following features, purposes, special features, and functionality.",
@@ -108,7 +112,9 @@
108
112
  "legIntClaim": "Izithakazelo Ezisemthethweni Ezisengozini",
109
113
  "specialPurposes": "Special Purposes:",
110
114
  "features": "Features:",
111
- "specialFeatures": "Special Features:"
115
+ "specialFeatures": "Special Features:",
116
+ "legInt": "Inzalo Esemthethweni",
117
+ "consent": "Imvume"
112
118
  },
113
119
  "partnerCount": "%{partnerCount} uzakwethu",
114
120
  "partnerCountPlural": "%{partnerCount} ozakwethu",
@@ -215,6 +221,13 @@
215
221
  "illustrations": {
216
222
  "1": "Clicking on a link in an article might normally send you to another page or part of the article. To achieve this, 1°) your browser sends a request to a server linked to the website, 2°) the server answers back (“here is the article you asked for”), using technical information automatically included in the request sent by your device, to properly display the information / images that are part of the article you asked for. Technically, such exchange of information is necessary to deliver the content that appears on your screen."
217
223
  }
224
+ },
225
+ "3": {
226
+ "name": "Save and communicate privacy choices",
227
+ "description": "The choices you make regarding the purposes and entities listed in this notice are saved and made available to those entities in the form of digital signals (such as a string of characters). This is necessary in order to enable both this service and those entities to respect such choices.",
228
+ "illustrations": {
229
+ "1": "When you visit a website and are offered a choice between consenting to the use of profiles for personalised advertising or not consenting, the choice you make is saved and made available to advertising providers, so that advertising presented to you respects that choice."
230
+ }
218
231
  }
219
232
  },
220
233
  "features": {
@@ -291,6 +304,20 @@
291
304
  "name": "Privacy choices",
292
305
  "description": "Your preferences regarding the processing of your data, based on the information you have received."
293
306
  }
307
+ },
308
+ "stacks": {
309
+ "3": {
310
+ "name": "Personalised advertising",
311
+ "description": "Advertising can be personalised based on your profile. Your activity on this service can be used to build or improve a profile about you for personalised advertising."
312
+ },
313
+ "20": {
314
+ "name": "Advertising and content measurement, audience research, and services development",
315
+ "description": "Advertising and content performance can be measured. Your activity on this service can help develop and improve products and services. Reports can be generated based on your activity and those of others."
316
+ },
317
+ "44": {
318
+ "name": "Personalised content",
319
+ "description": "Content can be personalised based on your profile. Your activity on this service can be used to build or improve a profile about you for personalised content."
320
+ }
294
321
  }
295
322
  },
296
323
  "aria": {
@@ -301,6 +328,6 @@
301
328
  "doNotSell": {
302
329
  "header": "Izinketho Zakho Zobumfihlo",
303
330
  "description": "Sivumela ozakwethu abathile bokukhangisa ku-inthanethi ukuthi baqoqe ulwazi kumasevisi ethu ngamakhukhi kanye nobuchwepheshe obufanayo ukuze balethe izikhangiso ezihambisana kakhulu nawe futhi usisize ngezibalo eziphathelene nokukhangisa. Lokhu kungase kubhekwe \"njengokuthengisa\" noma \"ukwabelana\" ekukhangiseni okuku-inthanethi okuqondisiwe ngaphansi kwemithetho ethile. Ukuze uphume kulo msebenzi, sebenzisa ukuguqula ngezansi.",
304
- "link": "Ungafunda kabanzi mayelana nezinqubo zethu zobumfihlo ngokubuyekeza lesi sixhumanisi:"
331
+ "link": "Ungafunda kabanzi mayelana nezinqubo zethu zobumfihlo ngokubuyekeza izinqubomgomo zethu:"
305
332
  }
306
333
  }
@@ -176,6 +176,7 @@ export const fetchConfig = (customerId: string, configId: string) => {
176
176
  country: headers.get('x-osano-country'),
177
177
  region: headers.get('x-osano-region'),
178
178
  variant: headers.get('x-osano-variant'),
179
+ gdprApplies: headers.get('x-osano-gdpr-applies') === 'true',
179
180
  },
180
181
  overrideConfig,
181
182
  ) as Config;
@@ -73,4 +73,6 @@ export type Config = {
73
73
  region: string;
74
74
  iab: Iab;
75
75
  palette: Palette;
76
+ additionalLinks: string[][];
77
+ iabEnabled: boolean;
76
78
  };
package/src/utils/API.ts CHANGED
@@ -15,17 +15,18 @@ const makeFetch = (
15
15
  return fetch(href, {
16
16
  method: method.toUpperCase(),
17
17
  headers: {
18
- 'Accept': 'application/json',
18
+ Accept: 'application/json',
19
19
  'Content-Type': 'application/json',
20
+ 'Cache-Control': 'no-cache',
20
21
  },
21
22
  mode: 'cors',
22
23
  referrer: 'no-referrer',
23
24
  body: method !== 'GET' ? JSON.stringify(params) : undefined,
24
- }).then(response => {
25
+ }).then((response) => {
25
26
  if (response.status === 204 || response.type === 'opaque') {
26
27
  return '';
27
28
  }
28
- return response.json().then(json => {
29
+ return response.json().then((json) => {
29
30
  if (response.ok) {
30
31
  return returnHeaders ? { headers: response.headers, json } : json;
31
32
  } else {
@@ -4,9 +4,30 @@ import Locale from '../../components/Locale';
4
4
  import { OsanoPrivateContext } from '../../context';
5
5
 
6
6
  export const Message = () => {
7
- const { config } = useContext(OsanoPrivateContext);
7
+ const { config, translate } = useContext(OsanoPrivateContext);
8
8
  const isFirstLayerUsageRequired = config?.firstLayerUsageRequired;
9
9
 
10
+ const analyticsTranslation =
11
+ `${translate('categories.ESSENTIAL.label')}`.toLowerCase();
12
+ const personalizationTranslation =
13
+ `${translate('categories.PERSONALIZATION.label')}`.toLowerCase();
14
+ const marketingTranslation =
15
+ `${translate('categories.MARKETING.label')}`.toLowerCase();
16
+ const stackTranslations = [
17
+ translate('iab.stacks.20.name'),
18
+ translate('iab.stacks.3.name'),
19
+ translate('iab.stacks.44.name'),
20
+ ]
21
+ .join(', ')
22
+ .toLowerCase();
23
+
24
+ const specialFeature1 = translate('iab.specialFeatures.1.name')
25
+ .toString()
26
+ .toLowerCase();
27
+ const specialFeature2 = translate('iab.specialFeatures.2.name')
28
+ .toString()
29
+ .toLowerCase();
30
+
10
31
  const translations = ([] as string[]).concat(
11
32
  config?.tcfIsApplicable
12
33
  ? 'iab.layer1'
@@ -28,7 +49,15 @@ export const Message = () => {
28
49
  <Locale
29
50
  path={translations}
30
51
  options={{
31
- interpolations: { vendorCount: `${config?.disclosedVendorCount}` },
52
+ interpolations: {
53
+ vendorCount: `${config?.disclosedVendorCount}`,
54
+ analytics: analyticsTranslation,
55
+ personalization: personalizationTranslation,
56
+ marketing: marketingTranslation,
57
+ stacks: stackTranslations,
58
+ 'iab.specialFeatures.1.name': specialFeature1,
59
+ 'iab.specialFeatures.2.name': specialFeature2,
60
+ },
32
61
  }}
33
62
  />
34
63
  );
@@ -230,15 +230,28 @@ export const Dialog = (): ReactElement<Modal> => {
230
230
  <View style={dialogStyles}>
231
231
  <View style={styles.dialogContent}>
232
232
  <View style={[styles.row, styles.fitContent]}>
233
- <Text style={dialogForeground} testID='dialog-message'>
233
+ <Text style={dialogForeground} testID="dialog-message">
234
234
  <Message />
235
235
  <Text> </Text>
236
- <StoragePolicyLink />
236
+ <StoragePolicyLink
237
+ testID="dialog-policy-link-1"
238
+ policyLinkText={config?.policyLinkText}
239
+ href={config?.storagePolicyHref}
240
+ />
241
+ {config?.additionalLinks &&
242
+ config?.additionalLinks?.length >= 1 ? (
243
+ <Text> | </Text>
244
+ ) : null}
245
+ <StoragePolicyLink
246
+ testID="dialog-policy-link-2"
247
+ policyLinkText={config?.additionalLinks?.at(0)?.at(0)}
248
+ href={config?.additionalLinks?.at(0)?.at(1)}
249
+ />
237
250
  </Text>
238
251
  </View>
239
252
  {isFirstLayerUsageRequired ? (
240
253
  <View
241
- testID='first-layer-usage'
254
+ testID="first-layer-usage"
242
255
  style={[
243
256
  styles.row,
244
257
  styles.categories,
@@ -250,7 +263,7 @@ export const Dialog = (): ReactElement<Modal> => {
250
263
  ) : null}
251
264
  {useTcf || config?.showManagePreferencesLinkInDialog ? (
252
265
  <View
253
- testID='preference-management-deep-links'
266
+ testID="preference-management-deep-links"
254
267
  style={[
255
268
  styles.row,
256
269
  styles.categories,
@@ -260,9 +273,10 @@ export const Dialog = (): ReactElement<Modal> => {
260
273
  <PreferenceManagementDeepLinks />
261
274
  </View>
262
275
  ) : null}
263
- {useTcf && !config?.showManagePreferencesButtonInDialog ? (
276
+ {(useTcf && !config?.showManagePreferencesButtonInDialog) ||
277
+ config?.showFirstLayerCategories ? (
264
278
  <View
265
- testID='show-first-layer-categories'
279
+ testID="show-first-layer-categories"
266
280
  style={[
267
281
  styles.col,
268
282
  styles.categories,
@@ -294,7 +294,7 @@ const CategoryListItem: React.FC<{
294
294
  onPress: () =>
295
295
  dispatch(showIabDisclosures({ id: purposeId, type: 'purpose' })),
296
296
  })),
297
- [dispatch, category, useTcf]
297
+ [dispatch, category, useTcf],
298
298
  );
299
299
 
300
300
  const ListHeaderComponent = useMemo(
@@ -303,7 +303,7 @@ const CategoryListItem: React.FC<{
303
303
  <Locale path={`iab.basis.consent`} />
304
304
  </Text>
305
305
  ),
306
- [drawerForeground]
306
+ [drawerForeground],
307
307
  );
308
308
  const checked = isCategoryAccepted(state, category);
309
309
  const disabled = isCategoryDisabled(state, category);
@@ -322,7 +322,7 @@ const CategoryListItem: React.FC<{
322
322
  category,
323
323
  configId: config?.configId,
324
324
  customerId: config?.customerId,
325
- })
325
+ }),
326
326
  );
327
327
  }, [config]);
328
328
  return (
@@ -387,18 +387,18 @@ const SpecialFeatureListItem: React.FC<{
387
387
  }, [infoDialogForegroundColor]);
388
388
  const checked = config?.isIabSpecialFeatureAccepted(
389
389
  specialFeatureId,
390
- getState() as any
390
+ getState() as any,
391
391
  );
392
392
  const hasLegalDescription = useMemo(
393
393
  () => translate(descriptionLegal) !== descriptionLegal,
394
- [locale]
394
+ [locale],
395
395
  );
396
396
  const isRTL = Translator.isRTL(locale);
397
397
  const handleValueChange = useBoundCallback(
398
398
  (specialFeatureId, acceptOrDeny: boolean) => {
399
399
  dispatch(setSpecialFeatureConsent(specialFeatureId, acceptOrDeny));
400
400
  },
401
- [specialFeatureId]
401
+ [specialFeatureId],
402
402
  );
403
403
  return (
404
404
  <View>
@@ -461,10 +461,7 @@ const CategoryListHeader: React.FC<{ style: StyleProp<ViewStyle> }> = ({
461
461
  return (
462
462
  <View style={[styles.listItem, styles.listHeader, style]}>
463
463
  <View style={extraLinks ? styles.paragraph : undefined}>
464
- <Text
465
- style={drawerForeground}
466
- testID='drawer-description'
467
- >
464
+ <Text style={drawerForeground} testID="drawer-description">
468
465
  <Locale path="drawer.description" />
469
466
  </Text>
470
467
  </View>
@@ -472,7 +469,20 @@ const CategoryListHeader: React.FC<{ style: StyleProp<ViewStyle> }> = ({
472
469
  <View>
473
470
  {policyLinkInDrawer ? (
474
471
  <Text>
475
- <StoragePolicyLink />
472
+ <StoragePolicyLink
473
+ testID="drawer-policy-link-1"
474
+ policyLinkText={config?.policyLinkText || ''}
475
+ href={config?.storagePolicyHref || ''}
476
+ />
477
+ {config?.additionalLinks &&
478
+ config?.additionalLinks?.length >= 1 ? (
479
+ <Text> | </Text>
480
+ ) : null}
481
+ <StoragePolicyLink
482
+ testID="drawer-policy-link-2"
483
+ policyLinkText={config?.additionalLinks?.at(0)?.at(0)}
484
+ href={config?.additionalLinks?.at(0)?.at(1)}
485
+ />
476
486
  </Text>
477
487
  ) : null}
478
488
  {useTcf ? (
@@ -609,7 +619,7 @@ export const ConsentCategoriesDrawer: React.FC = () => {
609
619
  type: 'specialFeature',
610
620
  id: specialFeatureId,
611
621
  headerHeight,
612
- })
622
+ }),
613
623
  );
614
624
  }
615
625
  newCategories.unshift({