ignite-parse-auth-kit 1.0.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 (241) hide show
  1. package/CONTRIBUTING.md +0 -0
  2. package/LICENSE +21 -0
  3. package/README.md +492 -0
  4. package/app/app.tsx +116 -0
  5. package/app/components/AlertTongle.tsx +105 -0
  6. package/app/components/AutoImage.tsx +89 -0
  7. package/app/components/Button.tsx +248 -0
  8. package/app/components/Card.tsx +314 -0
  9. package/app/components/EmptyState.tsx +248 -0
  10. package/app/components/Header.tsx +332 -0
  11. package/app/components/Icon.tsx +140 -0
  12. package/app/components/ListItem.tsx +243 -0
  13. package/app/components/ListView.tsx +42 -0
  14. package/app/components/Screen.tsx +305 -0
  15. package/app/components/Text.test.tsx +23 -0
  16. package/app/components/Text.tsx +116 -0
  17. package/app/components/TextField.tsx +292 -0
  18. package/app/components/Toggle/Checkbox.tsx +123 -0
  19. package/app/components/Toggle/Radio.tsx +106 -0
  20. package/app/components/Toggle/Switch.tsx +264 -0
  21. package/app/components/Toggle/Toggle.tsx +285 -0
  22. package/app/components/index copy.ts +15 -0
  23. package/app/components/index.ts +18 -0
  24. package/app/config/config.base.ts +26 -0
  25. package/app/config/config.dev.ts +10 -0
  26. package/app/config/config.prod.ts +10 -0
  27. package/app/config/index.ts +28 -0
  28. package/app/context/AuthContext.tsx +14 -0
  29. package/app/context/EpisodeContext.tsx +136 -0
  30. package/app/context/auth/AuthProvider.tsx +340 -0
  31. package/app/context/auth/hooks.ts +29 -0
  32. package/app/context/auth/index.ts +38 -0
  33. package/app/context/auth/reducer.ts +68 -0
  34. package/app/context/auth/services.ts +394 -0
  35. package/app/context/auth/types.ts +99 -0
  36. package/app/context/auth/validation.ts +45 -0
  37. package/app/devtools/ReactotronClient.ts +9 -0
  38. package/app/devtools/ReactotronClient.web.ts +12 -0
  39. package/app/devtools/ReactotronConfig.ts +139 -0
  40. package/app/i18n/ar.ts +126 -0
  41. package/app/i18n/demo-ar.ts +464 -0
  42. package/app/i18n/demo-en.ts +462 -0
  43. package/app/i18n/demo-es.ts +469 -0
  44. package/app/i18n/demo-fr.ts +471 -0
  45. package/app/i18n/demo-hi.ts +468 -0
  46. package/app/i18n/demo-ja.ts +464 -0
  47. package/app/i18n/demo-ko.ts +457 -0
  48. package/app/i18n/en.ts +146 -0
  49. package/app/i18n/es.ts +132 -0
  50. package/app/i18n/fr.ts +132 -0
  51. package/app/i18n/hi.ts +131 -0
  52. package/app/i18n/index.ts +86 -0
  53. package/app/i18n/ja.ts +130 -0
  54. package/app/i18n/ko.ts +129 -0
  55. package/app/i18n/translate.ts +33 -0
  56. package/app/lib/Parse/index.ts +2 -0
  57. package/app/lib/Parse/parse.ts +62 -0
  58. package/app/navigators/AppNavigator.tsx +145 -0
  59. package/app/navigators/DemoNavigator.tsx +137 -0
  60. package/app/navigators/navigationUtilities.ts +208 -0
  61. package/app/screens/ChooseAuthScreen.tsx +224 -0
  62. package/app/screens/DemoCommunityScreen.tsx +141 -0
  63. package/app/screens/DemoDebugScreen.tsx +192 -0
  64. package/app/screens/DemoPodcastListScreen.tsx +387 -0
  65. package/app/screens/DemoShowroomScreen/DemoDivider.tsx +66 -0
  66. package/app/screens/DemoShowroomScreen/DemoShowroomScreen.tsx +313 -0
  67. package/app/screens/DemoShowroomScreen/DemoUseCase.tsx +52 -0
  68. package/app/screens/DemoShowroomScreen/DrawerIconButton.tsx +120 -0
  69. package/app/screens/DemoShowroomScreen/SectionListWithKeyboardAwareScrollView.tsx +59 -0
  70. package/app/screens/DemoShowroomScreen/demos/DemoAutoImage.tsx +230 -0
  71. package/app/screens/DemoShowroomScreen/demos/DemoButton.tsx +234 -0
  72. package/app/screens/DemoShowroomScreen/demos/DemoCard.tsx +181 -0
  73. package/app/screens/DemoShowroomScreen/demos/DemoEmptyState.tsx +78 -0
  74. package/app/screens/DemoShowroomScreen/demos/DemoHeader.tsx +151 -0
  75. package/app/screens/DemoShowroomScreen/demos/DemoIcon.tsx +115 -0
  76. package/app/screens/DemoShowroomScreen/demos/DemoListItem.tsx +218 -0
  77. package/app/screens/DemoShowroomScreen/demos/DemoText.tsx +144 -0
  78. package/app/screens/DemoShowroomScreen/demos/DemoTextField.tsx +233 -0
  79. package/app/screens/DemoShowroomScreen/demos/DemoToggle.tsx +354 -0
  80. package/app/screens/DemoShowroomScreen/demos/index.ts +12 -0
  81. package/app/screens/ErrorScreen/ErrorBoundary.tsx +76 -0
  82. package/app/screens/ErrorScreen/ErrorDetails.tsx +98 -0
  83. package/app/screens/ForgetPasswordScreen.tsx +180 -0
  84. package/app/screens/LoginScreen.tsx +260 -0
  85. package/app/screens/RegisterScreen.tsx +395 -0
  86. package/app/screens/WelcomeScreen.tsx +114 -0
  87. package/app/services/api/apiProblem.test.ts +73 -0
  88. package/app/services/api/apiProblem.ts +74 -0
  89. package/app/services/api/index.ts +91 -0
  90. package/app/services/api/types.ts +50 -0
  91. package/app/theme/colors.ts +85 -0
  92. package/app/theme/colorsDark.ts +50 -0
  93. package/app/theme/context.tsx +145 -0
  94. package/app/theme/context.utils.ts +25 -0
  95. package/app/theme/spacing.ts +14 -0
  96. package/app/theme/spacingDark.ts +14 -0
  97. package/app/theme/styles.ts +24 -0
  98. package/app/theme/theme.ts +23 -0
  99. package/app/theme/timing.ts +6 -0
  100. package/app/theme/types.ts +64 -0
  101. package/app/theme/typography.ts +71 -0
  102. package/app/utils/crashReporting.ts +62 -0
  103. package/app/utils/delay.ts +6 -0
  104. package/app/utils/formatDate.ts +49 -0
  105. package/app/utils/gestureHandler.native.ts +3 -0
  106. package/app/utils/gestureHandler.ts +6 -0
  107. package/app/utils/hasValidStringProp.ts +11 -0
  108. package/app/utils/openLinkInBrowser.ts +8 -0
  109. package/app/utils/storage/index.ts +82 -0
  110. package/app/utils/storage/storage.test.ts +61 -0
  111. package/app/utils/useHeader.tsx +37 -0
  112. package/app/utils/useIsMounted.ts +18 -0
  113. package/app/utils/useSafeAreaInsetsStyle.ts +46 -0
  114. package/app.config.ts +39 -0
  115. package/app.json +67 -0
  116. package/assets/icons/back.png +0 -0
  117. package/assets/icons/back@2x.png +0 -0
  118. package/assets/icons/back@3x.png +0 -0
  119. package/assets/icons/bell.png +0 -0
  120. package/assets/icons/bell@2x.png +0 -0
  121. package/assets/icons/bell@3x.png +0 -0
  122. package/assets/icons/caretLeft.png +0 -0
  123. package/assets/icons/caretLeft@2x.png +0 -0
  124. package/assets/icons/caretLeft@3x.png +0 -0
  125. package/assets/icons/caretRight.png +0 -0
  126. package/assets/icons/caretRight@2x.png +0 -0
  127. package/assets/icons/caretRight@3x.png +0 -0
  128. package/assets/icons/check.png +0 -0
  129. package/assets/icons/check@2x.png +0 -0
  130. package/assets/icons/check@3x.png +0 -0
  131. package/assets/icons/demo/clap.png +0 -0
  132. package/assets/icons/demo/clap@2x.png +0 -0
  133. package/assets/icons/demo/clap@3x.png +0 -0
  134. package/assets/icons/demo/community.png +0 -0
  135. package/assets/icons/demo/community@2x.png +0 -0
  136. package/assets/icons/demo/community@3x.png +0 -0
  137. package/assets/icons/demo/components.png +0 -0
  138. package/assets/icons/demo/components@2x.png +0 -0
  139. package/assets/icons/demo/components@3x.png +0 -0
  140. package/assets/icons/demo/debug.png +0 -0
  141. package/assets/icons/demo/debug@2x.png +0 -0
  142. package/assets/icons/demo/debug@3x.png +0 -0
  143. package/assets/icons/demo/github.png +0 -0
  144. package/assets/icons/demo/github@2x.png +0 -0
  145. package/assets/icons/demo/github@3x.png +0 -0
  146. package/assets/icons/demo/heart.png +0 -0
  147. package/assets/icons/demo/heart@2x.png +0 -0
  148. package/assets/icons/demo/heart@3x.png +0 -0
  149. package/assets/icons/demo/pin.png +0 -0
  150. package/assets/icons/demo/pin@2x.png +0 -0
  151. package/assets/icons/demo/pin@3x.png +0 -0
  152. package/assets/icons/demo/podcast.png +0 -0
  153. package/assets/icons/demo/podcast@2x.png +0 -0
  154. package/assets/icons/demo/podcast@3x.png +0 -0
  155. package/assets/icons/demo/slack.png +0 -0
  156. package/assets/icons/demo/slack@2x.png +0 -0
  157. package/assets/icons/demo/slack@3x.png +0 -0
  158. package/assets/icons/google.png +0 -0
  159. package/assets/icons/hidden.png +0 -0
  160. package/assets/icons/hidden@2x.png +0 -0
  161. package/assets/icons/hidden@3x.png +0 -0
  162. package/assets/icons/ladybug.png +0 -0
  163. package/assets/icons/ladybug@2x.png +0 -0
  164. package/assets/icons/ladybug@3x.png +0 -0
  165. package/assets/icons/lock.png +0 -0
  166. package/assets/icons/lock@2x.png +0 -0
  167. package/assets/icons/lock@3x.png +0 -0
  168. package/assets/icons/menu.png +0 -0
  169. package/assets/icons/menu@2x.png +0 -0
  170. package/assets/icons/menu@3x.png +0 -0
  171. package/assets/icons/more.png +0 -0
  172. package/assets/icons/more@2x.png +0 -0
  173. package/assets/icons/more@3x.png +0 -0
  174. package/assets/icons/settings.png +0 -0
  175. package/assets/icons/settings@2x.png +0 -0
  176. package/assets/icons/settings@3x.png +0 -0
  177. package/assets/icons/view.png +0 -0
  178. package/assets/icons/view@2x.png +0 -0
  179. package/assets/icons/view@3x.png +0 -0
  180. package/assets/icons/x.png +0 -0
  181. package/assets/icons/x@2x.png +0 -0
  182. package/assets/icons/x@3x.png +0 -0
  183. package/assets/images/app-icon-all.png +0 -0
  184. package/assets/images/app-icon-android-adaptive-background.png +0 -0
  185. package/assets/images/app-icon-android-adaptive-foreground.png +0 -0
  186. package/assets/images/app-icon-android-legacy.png +0 -0
  187. package/assets/images/app-icon-ios.png +0 -0
  188. package/assets/images/app-icon-web-favicon.png +0 -0
  189. package/assets/images/demo/cr-logo.png +0 -0
  190. package/assets/images/demo/cr-logo@2x.png +0 -0
  191. package/assets/images/demo/cr-logo@3x.png +0 -0
  192. package/assets/images/demo/rnl-logo.png +0 -0
  193. package/assets/images/demo/rnl-logo@2x.png +0 -0
  194. package/assets/images/demo/rnl-logo@3x.png +0 -0
  195. package/assets/images/demo/rnn-logo.png +0 -0
  196. package/assets/images/demo/rnn-logo@2x.png +0 -0
  197. package/assets/images/demo/rnn-logo@3x.png +0 -0
  198. package/assets/images/demo/rnr-image-1.png +0 -0
  199. package/assets/images/demo/rnr-image-1@2x.png +0 -0
  200. package/assets/images/demo/rnr-image-1@3x.png +0 -0
  201. package/assets/images/demo/rnr-image-2.png +0 -0
  202. package/assets/images/demo/rnr-image-2@2x.png +0 -0
  203. package/assets/images/demo/rnr-image-2@3x.png +0 -0
  204. package/assets/images/demo/rnr-image-3.png +0 -0
  205. package/assets/images/demo/rnr-image-3@2x.png +0 -0
  206. package/assets/images/demo/rnr-image-3@3x.png +0 -0
  207. package/assets/images/demo/rnr-logo.png +0 -0
  208. package/assets/images/demo/rnr-logo@2x.png +0 -0
  209. package/assets/images/demo/rnr-logo@3x.png +0 -0
  210. package/assets/images/logo.png +0 -0
  211. package/assets/images/logo@2x.png +0 -0
  212. package/assets/images/logo@3x.png +0 -0
  213. package/assets/images/sad-face.png +0 -0
  214. package/assets/images/sad-face@2x.png +0 -0
  215. package/assets/images/sad-face@3x.png +0 -0
  216. package/assets/images/welcome-face.png +0 -0
  217. package/assets/images/welcome-face@2x.png +0 -0
  218. package/assets/images/welcome-face@3x.png +0 -0
  219. package/babel.config.js +7 -0
  220. package/bin/cli.js +196 -0
  221. package/ignite/templates/app-icon/android-adaptive-background.png +0 -0
  222. package/ignite/templates/app-icon/android-adaptive-foreground.png +0 -0
  223. package/ignite/templates/app-icon/android-legacy.png +0 -0
  224. package/ignite/templates/app-icon/ios-universal.png +0 -0
  225. package/ignite/templates/component/NAME.tsx.ejs +39 -0
  226. package/ignite/templates/navigator/NAMENavigator.tsx.ejs +18 -0
  227. package/ignite/templates/screen/NAMEScreen.tsx.ejs +29 -0
  228. package/ignite/templates/splash-screen/logo.png +0 -0
  229. package/index.tsx +9 -0
  230. package/jest.config.js +5 -0
  231. package/metro.config.js +31 -0
  232. package/package.json +166 -0
  233. package/plugins/withSplashScreen.ts +69 -0
  234. package/src/app/_layout.tsx +58 -0
  235. package/src/app/index.tsx +5 -0
  236. package/test/i18n.test.ts +75 -0
  237. package/test/mockFile.ts +6 -0
  238. package/test/setup.ts +58 -0
  239. package/test/test-tsconfig.json +8 -0
  240. package/tsconfig.json +52 -0
  241. package/types/lib.es5.d.ts +25 -0
@@ -0,0 +1,457 @@
1
+ import { DemoTranslations } from "./demo-en"
2
+
3
+ export const demoKo: DemoTranslations = {
4
+ demoIcon: {
5
+ description:
6
+ "등록된 아이콘을 렌더링하는 컴포넌트입니다. `onPress`가 구현되어 있으면 <TouchableOpacity />로, 그렇지 않으면 <View />로 감쌉니다.",
7
+ useCase: {
8
+ icons: {
9
+ name: "아이콘",
10
+ description: "컴포넌트에 등록된 아이콘 목록입니다.",
11
+ },
12
+ size: {
13
+ name: "크기",
14
+ description: "크기 속성이 있습니다.",
15
+ },
16
+ color: {
17
+ name: "색상",
18
+ description: "색상 속성이 있습니다.",
19
+ },
20
+ styling: {
21
+ name: "스타일링",
22
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
23
+ },
24
+ },
25
+ },
26
+ demoTextField: {
27
+ description: "TextField 컴포넌트는 텍스트 입력 및 편집을 허용합니다.",
28
+ useCase: {
29
+ statuses: {
30
+ name: "상태",
31
+ description:
32
+ "다른 컴포넌트의 `preset`과 유사한 상태 속성이 있으며, 컴포넌트의 기능에도 영향을 미칩니다.",
33
+ noStatus: {
34
+ label: "상태 없음",
35
+ helper: "이것이 기본 상태입니다",
36
+ placeholder: "텍스트가 여기에 들어갑니다",
37
+ },
38
+ error: {
39
+ label: "오류 상태",
40
+ helper: "오류가 있을 때 사용하는 상태입니다",
41
+ placeholder: "텍스트가 여기에 들어갑니다",
42
+ },
43
+ disabled: {
44
+ label: "비활성 상태",
45
+ helper: "편집 기능을 비활성화하고 텍스트를 표시하지 않습니다",
46
+ placeholder: "텍스트가 여기에 들어갑니다",
47
+ },
48
+ },
49
+ passingContent: {
50
+ name: "내용 전달",
51
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
52
+ viaLabel: {
53
+ labelTx: "`label` 속성으로",
54
+ helper: "`helper` 속성으로",
55
+ placeholder: "`placeholder` 속성으로",
56
+ },
57
+ rightAccessory: {
58
+ label: "오른쪽 액세서리",
59
+ helper: "이 속성은 React 요소를 반환하는 함수를 받습니다.",
60
+ },
61
+ leftAccessory: {
62
+ label: "왼쪽 액세서리",
63
+ helper: "이 속성은 React 요소를 반환하는 함수를 받습니다.",
64
+ },
65
+ supportsMultiline: {
66
+ label: "멀티라인 지원",
67
+ helper: "멀티라인 텍스트를 위한 더 높은 입력을 활성화합니다.",
68
+ },
69
+ },
70
+ styling: {
71
+ name: "스타일링",
72
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
73
+ styleInput: {
74
+ label: "입력 스타일",
75
+ helper: "`style` 속성으로",
76
+ },
77
+ styleInputWrapper: {
78
+ label: "입력 래퍼 스타일",
79
+ helper: "`inputWrapperStyle` 속성으로",
80
+ },
81
+ styleContainer: {
82
+ label: "컨테이너 스타일",
83
+ helper: "`containerStyle` 속성으로",
84
+ },
85
+ styleLabel: {
86
+ label: "레이블 및 헬퍼 스타일",
87
+ helper: "`LabelTextProps` 및 `HelperTextProps` 스타일 속성으로",
88
+ },
89
+ styleAccessories: {
90
+ label: "액세서리 스타일",
91
+ helper: "`RightAccessory` 및 `LeftAccessory` 스타일 속성으로",
92
+ },
93
+ },
94
+ },
95
+ },
96
+ demoToggle: {
97
+ description:
98
+ "불리언 입력을 렌더링합니다. 사용자가 수행한 작업을 반영하기 위해 값 속성을 업데이트하는 onValueChange 콜백이 필요한 제어된 컴포넌트입니다. 값 속성이 업데이트되지 않으면, 컴포넌트는 사용자 작업의 예상 결과 대신 제공된 값 속성을 계속 렌더링합니다.",
99
+ useCase: {
100
+ variants: {
101
+ name: "변형",
102
+ description:
103
+ "이 컴포넌트는 몇 가지 변형을 지원합니다. 특정 변형을 대폭 커스터마이즈해야 하는 경우에는 쉽게 리팩토링할 수 있습니다. 기본값은 `체크박스`입니다.",
104
+ checkbox: {
105
+ label: "`체크박스` 변형",
106
+ helper: "단일 켜기/끄기 입력에 사용할 수 있습니다.",
107
+ },
108
+ radio: {
109
+ label: "`라디오` 변형",
110
+ helper: "여러 옵션이 있는 경우 사용하십시오.",
111
+ },
112
+ switch: {
113
+ label: "`스위치` 변형",
114
+ helper: "더 눈에 띄는 켜기/끄기 입력입니다. 접근성 지원이 더 좋습니다.",
115
+ },
116
+ },
117
+ statuses: {
118
+ name: "상태",
119
+ description:
120
+ "다른 컴포넌트의 `preset`과 유사한 상태 속성이 있으며, 컴포넌트의 기능에도 영향을 미칩니다.",
121
+ noStatus: "상태 없음 - 기본 상태",
122
+ errorStatus: "오류 상태 - 오류가 있을 때 사용",
123
+ disabledStatus: "비활성 상태 - 편집 기능을 비활성화하고 입력을 표시하지 않음",
124
+ },
125
+ passingContent: {
126
+ name: "내용 전달",
127
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
128
+ useCase: {
129
+ checkBox: {
130
+ label: "`labelTx` 속성으로",
131
+ helper: "`helperTx` 속성으로",
132
+ },
133
+ checkBoxMultiLine: {
134
+ helper: "멀티라인 지원 - 멀티라인 지원을 위한 예제 문장입니다. 하나 둘 셋.",
135
+ },
136
+ radioChangeSides: {
137
+ helper: "양쪽을 변경할 수 있습니다 - 양쪽 변경을 위한 예제 문장입니다. 하나 둘 셋.",
138
+ },
139
+ customCheckBox: {
140
+ label: "맞춤 체크박스 아이콘 전달.",
141
+ },
142
+ switch: {
143
+ label: "스위치는 텍스트로 읽을 수 있습니다",
144
+ helper:
145
+ "기본적으로 이 옵션은 `Text`를 사용하지 않습니다. 폰트에 따라 켜기/끄기 문자가 이상하게 보일 수 있기 때문입니다. 필요에 따라 커스터마이즈하세요.",
146
+ },
147
+ switchAid: {
148
+ label: "또는 아이콘으로 보조",
149
+ },
150
+ },
151
+ },
152
+ styling: {
153
+ name: "스타일링",
154
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
155
+ outerWrapper: "1 - 입력 외부 래퍼 스타일링",
156
+ innerWrapper: "2 - 입력 내부 래퍼 스타일링",
157
+ inputDetail: "3 - 입력 디테일 스타일링",
158
+ labelTx: "labelTx도 스타일링할 수 있습니다",
159
+ styleContainer: "또는 전체 컨테이너 스타일링",
160
+ },
161
+ },
162
+ },
163
+ demoButton: {
164
+ description:
165
+ "사용자가 작업을 수행하고 선택을 할 수 있도록 하는 컴포넌트입니다. Text 컴포넌트를 Pressable 컴포넌트로 감쌉니다.",
166
+ useCase: {
167
+ presets: {
168
+ name: "프리셋",
169
+ description: "사전 구성된 몇 가지 프리셋이 있습니다.",
170
+ },
171
+ passingContent: {
172
+ name: "내용 전달",
173
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
174
+ viaTextProps: "`text` 속성으로 - 예제 문장입니다.",
175
+ children: "자식 - 또 다른 예제 문장입니다.",
176
+ rightAccessory: "오른쪽 액세서리 - 예제 문장입니다.",
177
+ leftAccessory: "왼쪽 액세서리 - 예제 문장입니다.",
178
+ nestedChildren: "중첩 자식 - 별 하나에 추억과 별 하나에 사랑과 별 하나에 쓸쓸함과",
179
+ nestedChildren2: "별 하나에 동경과 별 하나에 시와 ",
180
+ nestedChildren3: "별 하나에 어머니, 어머니.",
181
+ multiLine:
182
+ "멀티라인 - 죽는 날까지 하늘을 우러러 한 점 부끄럼이 없기를, 잎새에 이는 바람에도 나는 괴로워했다. 별을 노래하는 마음으로 모든 죽어 가는 것을 사랑해야지 그리고 나한테 주어진 길을 걸어가야겠다. 오늘 밤에도 별이 바람에 스치운다.",
183
+ },
184
+ styling: {
185
+ name: "스타일링",
186
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
187
+ styleContainer: "스타일 컨테이너 - 예제 문장",
188
+ styleText: "스타일 텍스트 - 예제 문장",
189
+ styleAccessories: "스타일 액세서리 - 또 다른 예제 문장",
190
+ pressedState: "스타일 눌린 상태 - 예제 문장",
191
+ },
192
+ disabling: {
193
+ name: "비활성화",
194
+ description:
195
+ "컴포넌트는 비활성화할 수 있으며, 그에 따라 스타일링할 수 있습니다. 누르는 동작이 비활성화됩니다.",
196
+ standard: "비활성화 - 표준",
197
+ filled: "비활성화 - 채워진",
198
+ reversed: "비활성화 - 역방향",
199
+ accessory: "비활성화된 액세서리 스타일",
200
+ textStyle: "비활성화된 텍스트 스타일",
201
+ },
202
+ },
203
+ },
204
+ demoListItem: {
205
+ description: "FlatList, SectionList 또는 자체적으로 사용할 수 있는 스타일된 행 컴포넌트입니다.",
206
+ useCase: {
207
+ height: {
208
+ name: "높이",
209
+ description: "행은 다른 높이를 가질 수 있습니다.",
210
+ defaultHeight: "기본 높이 (56px)",
211
+ customHeight: "`height` 속성을 통해 사용자 정의 높이",
212
+ textHeight:
213
+ "텍스트 내용에 의해 결정된 높이 - 예제를 위한 긴 문장입니다. 하나 둘 셋. 안녕하세요.",
214
+ longText:
215
+ "긴 텍스트를 한 줄로 제한 - 이것 역시 예제를 위한 긴 문장입니다. 오늘 날씨는 어떤가요?",
216
+ },
217
+ separators: {
218
+ name: "구분선",
219
+ description: "구분선 / 디바이더가 사전 구성되어 있으며 선택 사항입니다.",
220
+ topSeparator: "상단 구분선만",
221
+ topAndBottomSeparator: "상단 및 하단 구분선",
222
+ bottomSeparator: "하단 구분선만",
223
+ },
224
+ icons: {
225
+ name: "아이콘",
226
+ description: "왼쪽 또는 오른쪽 아이콘을 사용자 정의할 수 있습니다.",
227
+ leftIcon: "왼쪽 아이콘",
228
+ rightIcon: "오른쪽 아이콘",
229
+ leftRightIcons: "왼쪽 및 오른쪽 아이콘",
230
+ },
231
+ customLeftRight: {
232
+ name: "사용자 정의 왼쪽/오른쪽 컴포넌트",
233
+ description: "필요시에는 사용자가 정의한 왼쪽/오른쪽 컴포넌트를 전달할 수 있습니다.",
234
+ customLeft: "사용자 정의 왼쪽 컴포넌트",
235
+ customRight: "사용자 정의 오른쪽 컴포넌트",
236
+ },
237
+ passingContent: {
238
+ name: "내용 전달",
239
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
240
+ text: "`text` 속성으로 - 예제 문장입니다.",
241
+ children: "자식 - 또 다른 예제 문장입니다.",
242
+ nestedChildren1: "중첩 자식 - 이것도 예제 문장입니다..",
243
+ nestedChildren2: "또 다른 예제 문장, 중첩이 된 형태입니다.",
244
+ },
245
+ listIntegration: {
246
+ name: "FlatList 및 FlashList 통합",
247
+ description: "이 컴포넌트는 선호하는 리스트 인터페이스와 쉽게 통합할 수 있습니다.",
248
+ },
249
+ styling: {
250
+ name: "스타일링",
251
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
252
+ styledText: "스타일된 텍스트",
253
+ styledContainer: "스타일된 컨테이너 (구분선)",
254
+ tintedIcons: "색이 입혀진 아이콘",
255
+ },
256
+ },
257
+ },
258
+ demoCard: {
259
+ description:
260
+ "카드는 관련 정보를 컨테이너에 담아 표시하는 데 유용합니다. ListItem이 내용을 수평으로 표시한다면, 카드는 내용을 수직으로 표시할 수 있습니다.",
261
+ useCase: {
262
+ presets: {
263
+ name: "프리셋",
264
+ description: "사전 구성된 몇 가지 프리셋이 있습니다.",
265
+ default: {
266
+ heading: "기본 프리셋 (기본값)",
267
+ content: "예제 문장입니다. 그믐밤 반디불은 부서진 달조각",
268
+ footer: "숲으로 가자 달조각을 주으려 숲으로 가자.",
269
+ },
270
+ reversed: {
271
+ heading: "역방향 프리셋",
272
+ content: "예제 문장입니다. 그믐밤 반디불은 부서진 달조각",
273
+ footer: "숲으로 가자 달조각을 주으려 숲으로 가자.",
274
+ },
275
+ },
276
+ verticalAlignment: {
277
+ name: "수직 정렬",
278
+ description: "카드는 필요에 따라 미리 구성된 다양한 정렬방법으로 제공됩니다.",
279
+ top: {
280
+ heading: "상단 (기본값)",
281
+ content: "모든 콘텐츠가 자동으로 상단에 정렬됩니다.",
282
+ footer: "심지어 푸터도",
283
+ },
284
+ center: {
285
+ heading: "중앙",
286
+ content: "콘텐츠는 카드 높이에 상대적으로 중앙에 배치됩니다.",
287
+ footer: "나도!",
288
+ },
289
+ spaceBetween: {
290
+ heading: "공간 사이",
291
+ content: "모든 콘텐츠가 고르게 간격을 둡니다.",
292
+ footer: "나는 내가 있고 싶은 곳에 있어요.",
293
+ },
294
+ reversed: {
295
+ heading: "푸터 강제 하단",
296
+ content: "푸터를 원하는 위치에 밀어 넣습니다.",
297
+ footer: "여기 너무 외로워요.",
298
+ },
299
+ },
300
+ passingContent: {
301
+ name: "내용 전달",
302
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
303
+ heading: "`heading` 속성으로",
304
+ content: "`content` 속성으로",
305
+ footer: "푸터도 외로워요.",
306
+ },
307
+ customComponent: {
308
+ name: "사용자 정의 컴포넌트",
309
+ description:
310
+ "사전 구성된 컴포넌트 중 하나를 직접 만든 자신의 컴포넌트로 대체할 수 있습니다. 추가 컴포넌트도 덧붙여 넣을 수 있습니다.",
311
+ rightComponent: "오른쪽 컴포넌트",
312
+ leftComponent: "왼쪽 컴포넌트",
313
+ },
314
+ style: {
315
+ name: "스타일링",
316
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
317
+ heading: "헤딩 스타일링",
318
+ content: "컨텐츠 스타일링",
319
+ footer: "푸터 스타일링",
320
+ },
321
+ },
322
+ },
323
+ demoAutoImage: {
324
+ description: "원격 또는 data-uri 이미지의 크기를 자동으로 조정하는 Image 컴포넌트입니다.",
325
+ useCase: {
326
+ remoteUri: { name: "원격 URI" },
327
+ base64Uri: { name: "Base64 URI" },
328
+ scaledToFitDimensions: {
329
+ name: "치수에 맞게 조정",
330
+ description:
331
+ "`maxWidth` 단독으로, 혹은 `maxHeight` 속성과 함께 제공하면, 이미지는 비율을 유지하면서 자동으로 크기가 조정됩니다. 이것이 `resizeMode: 'contain'`과 다른 점은 무엇일까요? 첫째, 한쪽 크기만 지정할 수 있습니다. 둘째, 이미지가 이미지 컨테이너 내에 포함되는 대신 원하는 치수에 맞게 조정됩니다.",
332
+ heightAuto: "너비: 60 / 높이: 자동",
333
+ widthAuto: "너비: 자동 / 높이: 32",
334
+ bothManual: "너비: 60 / 높이: 60",
335
+ },
336
+ },
337
+ },
338
+ demoText: {
339
+ description:
340
+ "텍스트 표시가 필요한 경우를 위해, 이 컴포넌트는 기본 React Native 컴포넌트 위에 HOC로 제작되었습니다.",
341
+ useCase: {
342
+ presets: {
343
+ name: "프리셋",
344
+ description: "사전 구성된 몇 가지 프리셋이 있습니다.",
345
+ default: "기본 프리셋 - 예제 문장입니다. 하나 둘 셋.",
346
+ bold: "볼드 프리셋 - 예제 문장입니다. 하나 둘 셋.",
347
+ subheading: "서브헤딩 프리셋 - 예제 문장입니다. 하나 둘 셋.",
348
+ heading: "헤딩 프리셋 - 예제 문장입니다. 하나 둘 셋.",
349
+ },
350
+ sizes: {
351
+ name: "크기",
352
+ description: "크기 속성이 있습니다.",
353
+ xs: "xs - 조금 더 작은 크기 속성입니다.",
354
+ sm: "sm - 작은 크기 속성입니다.",
355
+ md: "md - 중간 크기 속성입니다.",
356
+ lg: "lg - 큰 크기 속성입니다.",
357
+ xl: "xl - 조금 더 큰 크기 속성입니다.",
358
+ xxl: "xxl - 아주 큰 크기 속성입니다.",
359
+ },
360
+ weights: {
361
+ name: "굵기",
362
+ description: "굵기 속성이 있습니다.",
363
+ light: "가벼움 - 예제 문장입니다. 안녕하세요. 하나 둘 셋.",
364
+ normal: "보통 - 예제 문장입니다. 안녕하세요. 하나 둘 셋.",
365
+ medium: "중간 - 예제 문장입니다. 안녕하세요. 하나 둘 셋.",
366
+ semibold: "세미볼드 - 예제 문장입니다. 안녕하세요. 하나 둘 셋.",
367
+ bold: "볼드 - 예제 문장입니다. 안녕하세요. 하나 둘 셋.",
368
+ },
369
+ passingContent: {
370
+ name: "내용 전달",
371
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
372
+ viaText:
373
+ "`text` 속성으로 - 죽는 날까지 하늘을 우러러 한 점 부끄럼이 없기를, 잎새에 이는 바람에도 나는 괴로워했다. 별을 노래하는 마음으로 모든 죽어 가는 것을 사랑해야지 그리고 나한테 주어진 길을 걸어가야겠다. 오늘 밤에도 별이 바람에 스치운다.",
374
+ viaTx: "`tx` 속성으로",
375
+ children: "자식 - 또 다른 예제 문장입니다. 하나 둘 셋.",
376
+ nestedChildren: "중첩 자식",
377
+ nestedChildren2: "죽는 날까지 하늘을 우러러 한 점 부끄럼이 없기를, ",
378
+ nestedChildren3: "잎새에 이는 바람에도 나는 괴로워했다.",
379
+ nestedChildren4: "별을 노래하는 마음으로 모든 죽어 가는 것을 사랑해야지.",
380
+ },
381
+ styling: {
382
+ name: "스타일링",
383
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
384
+ text: "그리고 나한테 주어진 길을 걸어가야겠다.",
385
+ text2: "오늘 밤에도 별이 바람에 스치운다.",
386
+ text3: "계속 이어지는 예제 문장입니다. 하나 둘 셋.",
387
+ },
388
+ },
389
+ },
390
+ demoHeader: {
391
+ description:
392
+ "여러 화면에 나타나는 컴포넌트입니다. 네비게이션 버튼과 화면 제목을 포함할 것입니다.",
393
+ useCase: {
394
+ actionIcons: {
395
+ name: "액션 아이콘",
396
+ description: "왼쪽 또는 오른쪽 액션 컴포넌트에 아이콘을 쉽게 전달할 수 있습니다.",
397
+ leftIconTitle: "왼쪽 아이콘",
398
+ rightIconTitle: "오른쪽 아이콘",
399
+ bothIconsTitle: "양쪽 아이콘",
400
+ },
401
+ actionText: {
402
+ name: "액션 텍스트",
403
+ description: "왼쪽 또는 오른쪽 액션 컴포넌트에 텍스트를 쉽게 전달할 수 있습니다.",
404
+ leftTxTitle: "`leftTx`를 통해",
405
+ rightTextTitle: "`rightText`를 통해",
406
+ },
407
+ customActionComponents: {
408
+ name: "사용자 정의 액션 컴포넌트",
409
+ description:
410
+ "아이콘이나 텍스트 옵션이 충분하지 않은 경우, 사용자 정의 액션 컴포넌트를 전달할 수 있습니다.",
411
+ customLeftActionTitle: "사용자 정의 왼쪽 액션",
412
+ },
413
+ titleModes: {
414
+ name: "제목 모드",
415
+ description:
416
+ "제목은 기본적으로 중앙에 고정되지만 너무 길면 잘릴 수 있습니다. 액션 버튼에 맞춰 조정할 수 있습니다.",
417
+ centeredTitle: "중앙 제목",
418
+ flexTitle: "유연한 제목",
419
+ },
420
+ styling: {
421
+ name: "스타일링",
422
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
423
+ styledTitle: "스타일된 제목",
424
+ styledWrapperTitle: "스타일된 래퍼",
425
+ tintedIconsTitle: "색이 입혀진 아이콘",
426
+ },
427
+ },
428
+ },
429
+ demoEmptyState: {
430
+ description:
431
+ "표시할 데이터가 없을 때 사용할 수 있는 컴포넌트입니다. 사용자가 다음에 무엇을 할지 안내할 수 있습니다.",
432
+ useCase: {
433
+ presets: {
434
+ name: "프리셋",
435
+ description:
436
+ "다양한 텍스트/이미지 세트를 만들 수 있습니다. `generic`이라는 사전 정의된 세트가 하나 있습니다. 기본값이 없으므로 완전히 사용자 정의된 EmptyState를 원할 경우 사용할 수 있습니다.",
437
+ },
438
+ passingContent: {
439
+ name: "내용 전달",
440
+ description: "내용을 전달하는 몇 가지 방법이 있습니다.",
441
+ customizeImageHeading: "이미지 맞춤 설정",
442
+ customizeImageContent: "어떤 이미지 소스도 전달할 수 있습니다.",
443
+ viaHeadingProp: "`heading` 속성으로",
444
+ viaContentProp: "`content` 속성으로",
445
+ viaButtonProp: "`button` 속성으로",
446
+ },
447
+ styling: {
448
+ name: "스타일링",
449
+ description: "컴포넌트는 쉽게 스타일링할 수 있습니다.",
450
+ },
451
+ },
452
+ },
453
+ }
454
+
455
+ export default demoKo
456
+
457
+ // @demo remove-file
package/app/i18n/en.ts ADDED
@@ -0,0 +1,146 @@
1
+ import demoEn from "./demo-en" // @demo remove-current-line
2
+
3
+ const en = {
4
+ common: {
5
+ ok: "OK!",
6
+ cancel: "Cancel",
7
+ back: "Back",
8
+ logOut: "Log Out", // @demo remove-current-line
9
+ loading: "loading",
10
+ },
11
+ welcomeScreen: {
12
+ postscript:
13
+ "psst — This probably isn't what your app looks like. (Unless your designer handed you these screens, and in that case, ship it!)",
14
+ readyForLaunch: "Your app, almost ready for launch!",
15
+ exciting: "(ohh, this is exciting!)",
16
+ letsGo: "Let's go!", // @demo remove-current-line
17
+ },
18
+ errorScreen: {
19
+ title: "Something went wrong!",
20
+ friendlySubtitle:
21
+ "This is the screen that your users will see in production when an error is thrown. You'll want to customize this message (located in `app/i18n/en.ts`) and probably the layout as well (`app/screens/ErrorScreen`). If you want to remove this entirely, check `app/app.tsx` for the <ErrorBoundary> component.",
22
+ reset: "RESET APP",
23
+ traceTitle: "Error from %{name} stack", // @demo remove-current-line
24
+ },
25
+ emptyStateComponent: {
26
+ generic: {
27
+ heading: "So empty... so sad",
28
+ content: "No data found yet. Try clicking the button to refresh or reload the app.",
29
+ button: "Let's try this again",
30
+ },
31
+ },
32
+ // @demo remove-block-start
33
+ errors: {
34
+ invalidEmail: "Invalid email address.",
35
+ },
36
+ loginScreen: {
37
+ logIn: "Log In",
38
+ enterDetails:
39
+ "Enter your details below to unlock top secret info. You'll never guess what we've got waiting. Or maybe you will; it's not rocket science here.",
40
+ emailFieldLabel: "Email",
41
+ passwordFieldLabel: "Password",
42
+ emailFieldPlaceholder: "Enter your email address",
43
+ passwordFieldPlaceholder: "Super secret password here",
44
+ passwordFieldLabelConf: "Confirm Password",
45
+
46
+ passwordFieldPlaceholderConf: "Confirm your super secret password",
47
+ tapToLogIn: "Tap to log in!",
48
+ toRegister: "Don't have an account?",
49
+ hint: "Hint: you can use any email address and your favorite password :)",
50
+ },
51
+ demoNavigator: {
52
+ componentsTab: "Components",
53
+ debugTab: "Debug",
54
+ communityTab: "Community",
55
+ podcastListTab: "Podcast",
56
+ },
57
+ demoCommunityScreen: {
58
+ title: "Connect with the community",
59
+ tagLine:
60
+ "Plug in to Infinite Red's community of React Native engineers and level up your app development with us!",
61
+ joinUsOnSlackTitle: "Join us on Slack",
62
+ joinUsOnSlack:
63
+ "Wish there was a place to connect with React Native engineers around the world? Join the conversation in the Infinite Red Community Slack! Our growing community is a safe space to ask questions, learn from others, and grow your network.",
64
+ joinSlackLink: "Join the Slack Community",
65
+ makeIgniteEvenBetterTitle: "Make Ignite even better",
66
+ makeIgniteEvenBetter:
67
+ "Have an idea to make Ignite even better? We're happy to hear that! We're always looking for others who want to help us build the best React Native tooling out there. Join us over on GitHub to join us in building the future of Ignite.",
68
+ contributeToIgniteLink: "Contribute to Ignite",
69
+ theLatestInReactNativeTitle: "The latest in React Native",
70
+ theLatestInReactNative: "We're here to keep you current on all React Native has to offer.",
71
+ reactNativeRadioLink: "React Native Radio",
72
+ reactNativeNewsletterLink: "React Native Newsletter",
73
+ reactNativeLiveLink: "React Native Live",
74
+ chainReactConferenceLink: "Chain React Conference",
75
+ hireUsTitle: "Hire Infinite Red for your next project",
76
+ hireUs:
77
+ "Whether it's running a full project or getting teams up to speed with our hands-on training, Infinite Red can help with just about any React Native project.",
78
+ hireUsLink: "Send us a message",
79
+ },
80
+ demoShowroomScreen: {
81
+ jumpStart: "Components to jump start your project!",
82
+ lorem2Sentences:
83
+ "Nulla cupidatat deserunt amet quis aliquip nostrud do adipisicing. Adipisicing excepteur elit laborum Lorem adipisicing do duis.",
84
+ demoHeaderTxExample: "Yay",
85
+ demoViaTxProp: "Via `tx` Prop",
86
+ demoViaSpecifiedTxProp: "Via `{{prop}}Tx` Prop",
87
+ },
88
+ demoDebugScreen: {
89
+ howTo: "HOW TO",
90
+ title: "Debug",
91
+ tagLine:
92
+ "Congratulations, you've got a very advanced React Native app template here. Take advantage of this boilerplate!",
93
+ reactotron: "Send to Reactotron",
94
+ reportBugs: "Report Bugs",
95
+ demoList: "Demo List",
96
+ demoPodcastList: "Demo Podcast List",
97
+ androidReactotronHint:
98
+ "If this doesn't work, ensure the Reactotron desktop app is running, run adb reverse tcp:9090 tcp:9090 from your terminal, and reload the app.",
99
+ iosReactotronHint:
100
+ "If this doesn't work, ensure the Reactotron desktop app is running and reload app.",
101
+ macosReactotronHint:
102
+ "If this doesn't work, ensure the Reactotron desktop app is running and reload app.",
103
+ webReactotronHint:
104
+ "If this doesn't work, ensure the Reactotron desktop app is running and reload app.",
105
+ windowsReactotronHint:
106
+ "If this doesn't work, ensure the Reactotron desktop app is running and reload app.",
107
+ },
108
+ demoPodcastListScreen: {
109
+ title: "React Native Radio episodes",
110
+ onlyFavorites: "Only Show Favorites",
111
+ favoriteButton: "Favorite",
112
+ unfavoriteButton: "Unfavorite",
113
+ accessibility: {
114
+ cardHint:
115
+ "Double tap to listen to the episode. Double tap and hold to {{action}} this episode.",
116
+ switch: "Switch on to only show favorites",
117
+ favoriteAction: "Toggle Favorite",
118
+ favoriteIcon: "Episode not favorited",
119
+ unfavoriteIcon: "Episode favorited",
120
+ publishLabel: "Published {{date}}",
121
+ durationLabel: "Duration: {{hours}} hours {{minutes}} minutes {{seconds}} seconds",
122
+ },
123
+ noFavoritesEmptyState: {
124
+ heading: "This looks a bit empty",
125
+ content:
126
+ "No favorites have been added yet. Tap the heart on an episode to add it to your favorites!",
127
+ },
128
+ },
129
+ signUpScreen: {
130
+ signUp: "Create Account",
131
+ enterDetails:
132
+ "Fill in your details below to access top secret content. It’s not Area 51... but close enough.",
133
+ emailFieldLabel: "Email",
134
+ passwordFieldLabel: "Password",
135
+ emailFieldPlaceholder: "Enter your email address",
136
+ passwordFieldPlaceholder: "Choose a strong password",
137
+ ToLogIn: "Already have an account? Log in here!",
138
+ hint: "Hint: any valid email works. Make your password memorable!",
139
+ },
140
+ // @demo remove-block-start
141
+ ...demoEn,
142
+ // @demo remove-block-end
143
+ }
144
+
145
+ export default en
146
+ export type Translations = typeof en