@nodaro/shared 1.4.2

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 (665) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +32 -0
  3. package/dist/index.cjs +12506 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +12269 -0
  6. package/dist/index.d.ts +12269 -0
  7. package/dist/index.js +11831 -0
  8. package/dist/index.js.map +1 -0
  9. package/package.json +54 -0
  10. package/src/__tests__/__snapshots__/prompt-builder-segments.test.ts.snap +65 -0
  11. package/src/__tests__/ai-avatar-pricing.test.ts +321 -0
  12. package/src/__tests__/apply-video-negative-prompt.test.ts +76 -0
  13. package/src/__tests__/attach-columns.test.ts +28 -0
  14. package/src/__tests__/audio-crossfade-curves.test.ts +33 -0
  15. package/src/__tests__/build-model-menu.test.ts +58 -0
  16. package/src/__tests__/character-aspect-defaults.test.ts +142 -0
  17. package/src/__tests__/character-mention-slug.test.ts +199 -0
  18. package/src/__tests__/character-reference-photo-kinds.test.ts +32 -0
  19. package/src/__tests__/character-usage-mode.test.ts +147 -0
  20. package/src/__tests__/character-variant-assets.test.ts +142 -0
  21. package/src/__tests__/character-voice.test.ts +130 -0
  22. package/src/__tests__/cinematic-avatar-pricing.test.ts +119 -0
  23. package/src/__tests__/combine-transitions.test.ts +137 -0
  24. package/src/__tests__/component-types.test.ts +87 -0
  25. package/src/__tests__/condition-variables.test.ts +98 -0
  26. package/src/__tests__/credit-identifiers.test.ts +811 -0
  27. package/src/__tests__/default-video-provider.test.ts +63 -0
  28. package/src/__tests__/entity-image-handle.test.ts +43 -0
  29. package/src/__tests__/entity-variants.test.ts +33 -0
  30. package/src/__tests__/fal-lip-sync-sets.test.ts +31 -0
  31. package/src/__tests__/featured-entities.test.ts +33 -0
  32. package/src/__tests__/film-pricing.test.ts +64 -0
  33. package/src/__tests__/filter-condition.test.ts +285 -0
  34. package/src/__tests__/freecut-protocol.test.ts +35 -0
  35. package/src/__tests__/generate-text-items.test.ts +19 -0
  36. package/src/__tests__/generated-results.test.ts +50 -0
  37. package/src/__tests__/graph-utils.test.ts +618 -0
  38. package/src/__tests__/group-aggregation.test.ts +83 -0
  39. package/src/__tests__/i18n-locale-completeness.test.ts +156 -0
  40. package/src/__tests__/image-critic-node.test.ts +86 -0
  41. package/src/__tests__/image-mask-mode.test.ts +16 -0
  42. package/src/__tests__/image-ref-limit.test.ts +78 -0
  43. package/src/__tests__/inpaint-region.test.ts +24 -0
  44. package/src/__tests__/input-field-map-parity.test.ts +30 -0
  45. package/src/__tests__/json-evaluator.test.ts +289 -0
  46. package/src/__tests__/json-path.test.ts +64 -0
  47. package/src/__tests__/lip-sync-pricing.test.ts +142 -0
  48. package/src/__tests__/list-merge.test.ts +96 -0
  49. package/src/__tests__/list-sort.test.ts +134 -0
  50. package/src/__tests__/llm-models.test.ts +445 -0
  51. package/src/__tests__/location-mention-slug.test.ts +246 -0
  52. package/src/__tests__/locations-coverage-critic-schema.test.ts +92 -0
  53. package/src/__tests__/loop-delimiter.test.ts +39 -0
  54. package/src/__tests__/lottie-slots.test.ts +245 -0
  55. package/src/__tests__/model-catalog-flux2-resolutions.test.ts +21 -0
  56. package/src/__tests__/model-constants-location.test.ts +20 -0
  57. package/src/__tests__/model-constants.test.ts +122 -0
  58. package/src/__tests__/model-tree.test.ts +86 -0
  59. package/src/__tests__/no-internal-imports.test.ts +25 -0
  60. package/src/__tests__/node-default-mappings.test.ts +175 -0
  61. package/src/__tests__/node-mappable-fields.test.ts +7 -0
  62. package/src/__tests__/node-preset-export.test.ts +46 -0
  63. package/src/__tests__/node-preset-extract.test.ts +166 -0
  64. package/src/__tests__/node-refs-canonical.test.ts +54 -0
  65. package/src/__tests__/node-refs-combine.test.ts +54 -0
  66. package/src/__tests__/node-refs.test.ts +187 -0
  67. package/src/__tests__/node-runtime-keys.test.ts +99 -0
  68. package/src/__tests__/object-aspect-defaults.test.ts +59 -0
  69. package/src/__tests__/parameter-node-value.test.ts +137 -0
  70. package/src/__tests__/pinterest-url.test.ts +35 -0
  71. package/src/__tests__/pipeline-chat.test.ts +110 -0
  72. package/src/__tests__/pipeline-validation.test.ts +98 -0
  73. package/src/__tests__/presentation-utils.test.ts +1137 -0
  74. package/src/__tests__/producer-types.test.ts +47 -0
  75. package/src/__tests__/prompt-length-limits.test.ts +156 -0
  76. package/src/__tests__/provider-directive-defaults.test.ts +46 -0
  77. package/src/__tests__/reduce-strategy-registry.test.ts +43 -0
  78. package/src/__tests__/reference-board-templates.test.ts +33 -0
  79. package/src/__tests__/reference-roles.test.ts +36 -0
  80. package/src/__tests__/resolve-field-mappings.test.ts +110 -0
  81. package/src/__tests__/resolve-pipeline-model.test.ts +76 -0
  82. package/src/__tests__/scene-node-types.test.ts +80 -0
  83. package/src/__tests__/scraper-actors.test.ts +67 -0
  84. package/src/__tests__/seedance-2-catalog.test.ts +18 -0
  85. package/src/__tests__/seedance-2-credit-id.test.ts +23 -0
  86. package/src/__tests__/seedance-aspects.test.ts +52 -0
  87. package/src/__tests__/selector.test.ts +1151 -0
  88. package/src/__tests__/settled-with-limit.test.ts +214 -0
  89. package/src/__tests__/social-media-specs.test.ts +129 -0
  90. package/src/__tests__/sub-workflow-validation.test.ts +88 -0
  91. package/src/__tests__/switchx-pricing.test.ts +28 -0
  92. package/src/__tests__/to-connected-references.test.ts +153 -0
  93. package/src/__tests__/utilities.test.ts +541 -0
  94. package/src/__tests__/video-analysis-pricing.test.ts +58 -0
  95. package/src/__tests__/video-analysis.test.ts +63 -0
  96. package/src/__tests__/video-audio-capability.test.ts +204 -0
  97. package/src/__tests__/video-gen-providers.test.ts +28 -0
  98. package/src/__tests__/video-mode-aliases.test.ts +150 -0
  99. package/src/__tests__/video-ref-limits.test.ts +72 -0
  100. package/src/__tests__/video-utils.test.ts +303 -0
  101. package/src/__tests__/voice-changer-models.test.ts +33 -0
  102. package/src/__tests__/workflow-export-strip.test.ts +46 -0
  103. package/src/ai-avatar-pricing.ts +213 -0
  104. package/src/ancestor-refs.ts +48 -0
  105. package/src/animals.ts +231 -0
  106. package/src/audio-crossfade-curves.ts +73 -0
  107. package/src/audio-fx-presets.ts +64 -0
  108. package/src/avatar-payload-validators.ts +214 -0
  109. package/src/caption-styles.ts +31 -0
  110. package/src/character-aspect-defaults.ts +102 -0
  111. package/src/character-facets.ts +37 -0
  112. package/src/character-mention-slug.ts +166 -0
  113. package/src/character-usage-mode.ts +109 -0
  114. package/src/character-variant-assets.ts +121 -0
  115. package/src/character-voice.ts +151 -0
  116. package/src/cinematic-avatar-pricing.ts +111 -0
  117. package/src/clone-utils.ts +46 -0
  118. package/src/combine-transitions.ts +482 -0
  119. package/src/community.ts +112 -0
  120. package/src/component-types.ts +127 -0
  121. package/src/condition-variables.ts +65 -0
  122. package/src/credit-estimators/index.ts +15 -0
  123. package/src/credit-estimators/video-utils.ts +165 -0
  124. package/src/credit-identifiers.ts +304 -0
  125. package/src/entity-approval-types.ts +31 -0
  126. package/src/entity-aspect-defaults.ts +82 -0
  127. package/src/entity-asset-types.ts +296 -0
  128. package/src/entity-image-handle.ts +36 -0
  129. package/src/extra-refs.ts +139 -0
  130. package/src/featured-entities.ts +136 -0
  131. package/src/film-pricing.ts +117 -0
  132. package/src/filter-condition.ts +250 -0
  133. package/src/flux2-pricing.ts +18 -0
  134. package/src/freecut-protocol.ts +52 -0
  135. package/src/furniture.ts +167 -0
  136. package/src/generate-text-items.ts +15 -0
  137. package/src/generated-results.ts +63 -0
  138. package/src/group-aggregation.ts +75 -0
  139. package/src/hint-graph-types.ts +18 -0
  140. package/src/i18n/action-fx.ar.ts +89 -0
  141. package/src/i18n/action-fx.de.ts +89 -0
  142. package/src/i18n/action-fx.es.ts +89 -0
  143. package/src/i18n/action-fx.fr.ts +89 -0
  144. package/src/i18n/action-fx.he.ts +89 -0
  145. package/src/i18n/action-fx.hi.ts +89 -0
  146. package/src/i18n/action-fx.ja.ts +89 -0
  147. package/src/i18n/action-fx.ko.ts +89 -0
  148. package/src/i18n/action-fx.pt-BR.ts +89 -0
  149. package/src/i18n/action-fx.ru.ts +89 -0
  150. package/src/i18n/action-fx.zh-CN.ts +89 -0
  151. package/src/i18n/aesthetic.ar.ts +170 -0
  152. package/src/i18n/aesthetic.de.ts +48 -0
  153. package/src/i18n/aesthetic.es.ts +169 -0
  154. package/src/i18n/aesthetic.fr.ts +52 -0
  155. package/src/i18n/aesthetic.he.ts +169 -0
  156. package/src/i18n/aesthetic.hi.ts +55 -0
  157. package/src/i18n/aesthetic.ja.ts +165 -0
  158. package/src/i18n/aesthetic.ko.ts +169 -0
  159. package/src/i18n/aesthetic.pt-BR.ts +148 -0
  160. package/src/i18n/aesthetic.ru.ts +155 -0
  161. package/src/i18n/aesthetic.zh-CN.ts +172 -0
  162. package/src/i18n/animals.ar.ts +145 -0
  163. package/src/i18n/animals.de.ts +144 -0
  164. package/src/i18n/animals.es.ts +158 -0
  165. package/src/i18n/animals.fr.ts +144 -0
  166. package/src/i18n/animals.he.ts +155 -0
  167. package/src/i18n/animals.hi.ts +157 -0
  168. package/src/i18n/animals.ja.ts +159 -0
  169. package/src/i18n/animals.ko.ts +159 -0
  170. package/src/i18n/animals.pt-BR.ts +157 -0
  171. package/src/i18n/animals.ru.ts +155 -0
  172. package/src/i18n/animals.zh-CN.ts +155 -0
  173. package/src/i18n/atmosphere.ar.ts +49 -0
  174. package/src/i18n/atmosphere.de.ts +47 -0
  175. package/src/i18n/atmosphere.es.ts +50 -0
  176. package/src/i18n/atmosphere.fr.ts +47 -0
  177. package/src/i18n/atmosphere.he.ts +47 -0
  178. package/src/i18n/atmosphere.hi.ts +49 -0
  179. package/src/i18n/atmosphere.ja.ts +49 -0
  180. package/src/i18n/atmosphere.ko.ts +49 -0
  181. package/src/i18n/atmosphere.pt-BR.ts +49 -0
  182. package/src/i18n/atmosphere.ru.ts +47 -0
  183. package/src/i18n/atmosphere.zh-CN.ts +152 -0
  184. package/src/i18n/backdrop.ar.ts +53 -0
  185. package/src/i18n/backdrop.de.ts +46 -0
  186. package/src/i18n/backdrop.es.ts +54 -0
  187. package/src/i18n/backdrop.fr.ts +52 -0
  188. package/src/i18n/backdrop.he.ts +51 -0
  189. package/src/i18n/backdrop.hi.ts +59 -0
  190. package/src/i18n/backdrop.ja.ts +61 -0
  191. package/src/i18n/backdrop.ko.ts +59 -0
  192. package/src/i18n/backdrop.pt-BR.ts +59 -0
  193. package/src/i18n/backdrop.ru.ts +57 -0
  194. package/src/i18n/backdrop.zh-CN.ts +57 -0
  195. package/src/i18n/camera-format.ar.ts +40 -0
  196. package/src/i18n/camera-format.de.ts +37 -0
  197. package/src/i18n/camera-format.es.ts +41 -0
  198. package/src/i18n/camera-format.fr.ts +37 -0
  199. package/src/i18n/camera-format.he.ts +37 -0
  200. package/src/i18n/camera-format.hi.ts +42 -0
  201. package/src/i18n/camera-format.ja.ts +37 -0
  202. package/src/i18n/camera-format.ko.ts +37 -0
  203. package/src/i18n/camera-format.pt-BR.ts +46 -0
  204. package/src/i18n/camera-format.ru.ts +42 -0
  205. package/src/i18n/camera-format.zh-CN.ts +42 -0
  206. package/src/i18n/camera-motions.ar.ts +86 -0
  207. package/src/i18n/camera-motions.de.ts +74 -0
  208. package/src/i18n/camera-motions.es.ts +86 -0
  209. package/src/i18n/camera-motions.fr.ts +86 -0
  210. package/src/i18n/camera-motions.he.ts +86 -0
  211. package/src/i18n/camera-motions.hi.ts +99 -0
  212. package/src/i18n/camera-motions.ja.ts +99 -0
  213. package/src/i18n/camera-motions.ko.ts +99 -0
  214. package/src/i18n/camera-motions.pt-BR.ts +99 -0
  215. package/src/i18n/camera-motions.ru.ts +99 -0
  216. package/src/i18n/camera-motions.zh-CN.ts +99 -0
  217. package/src/i18n/character-fx.ar.ts +72 -0
  218. package/src/i18n/character-fx.de.ts +72 -0
  219. package/src/i18n/character-fx.es.ts +72 -0
  220. package/src/i18n/character-fx.fr.ts +72 -0
  221. package/src/i18n/character-fx.he.ts +72 -0
  222. package/src/i18n/character-fx.hi.ts +72 -0
  223. package/src/i18n/character-fx.ja.ts +72 -0
  224. package/src/i18n/character-fx.ko.ts +72 -0
  225. package/src/i18n/character-fx.pt-BR.ts +72 -0
  226. package/src/i18n/character-fx.ru.ts +72 -0
  227. package/src/i18n/character-fx.zh-CN.ts +72 -0
  228. package/src/i18n/color-look.ar.ts +50 -0
  229. package/src/i18n/color-look.de.ts +47 -0
  230. package/src/i18n/color-look.es.ts +50 -0
  231. package/src/i18n/color-look.fr.ts +50 -0
  232. package/src/i18n/color-look.he.ts +49 -0
  233. package/src/i18n/color-look.hi.ts +52 -0
  234. package/src/i18n/color-look.ja.ts +54 -0
  235. package/src/i18n/color-look.ko.ts +54 -0
  236. package/src/i18n/color-look.pt-BR.ts +54 -0
  237. package/src/i18n/color-look.ru.ts +52 -0
  238. package/src/i18n/color-look.zh-CN.ts +53 -0
  239. package/src/i18n/composition-effects.ar.ts +26 -0
  240. package/src/i18n/composition-effects.de.ts +25 -0
  241. package/src/i18n/composition-effects.es.ts +27 -0
  242. package/src/i18n/composition-effects.fr.ts +25 -0
  243. package/src/i18n/composition-effects.he.ts +25 -0
  244. package/src/i18n/composition-effects.hi.ts +27 -0
  245. package/src/i18n/composition-effects.ja.ts +27 -0
  246. package/src/i18n/composition-effects.ko.ts +27 -0
  247. package/src/i18n/composition-effects.pt-BR.ts +25 -0
  248. package/src/i18n/composition-effects.ru.ts +82 -0
  249. package/src/i18n/composition-effects.zh-CN.ts +25 -0
  250. package/src/i18n/era.ar.ts +37 -0
  251. package/src/i18n/era.de.ts +34 -0
  252. package/src/i18n/era.es.ts +37 -0
  253. package/src/i18n/era.fr.ts +37 -0
  254. package/src/i18n/era.he.ts +36 -0
  255. package/src/i18n/era.hi.ts +39 -0
  256. package/src/i18n/era.ja.ts +41 -0
  257. package/src/i18n/era.ko.ts +39 -0
  258. package/src/i18n/era.pt-BR.ts +41 -0
  259. package/src/i18n/era.ru.ts +121 -0
  260. package/src/i18n/era.zh-CN.ts +39 -0
  261. package/src/i18n/exposure-settings.ar.ts +28 -0
  262. package/src/i18n/exposure-settings.de.ts +26 -0
  263. package/src/i18n/exposure-settings.es.ts +28 -0
  264. package/src/i18n/exposure-settings.fr.ts +29 -0
  265. package/src/i18n/exposure-settings.he.ts +28 -0
  266. package/src/i18n/exposure-settings.hi.ts +31 -0
  267. package/src/i18n/exposure-settings.ja.ts +31 -0
  268. package/src/i18n/exposure-settings.ko.ts +31 -0
  269. package/src/i18n/exposure-settings.pt-BR.ts +31 -0
  270. package/src/i18n/exposure-settings.ru.ts +31 -0
  271. package/src/i18n/exposure-settings.zh-CN.ts +31 -0
  272. package/src/i18n/framing.ar.ts +78 -0
  273. package/src/i18n/framing.de.ts +73 -0
  274. package/src/i18n/framing.es.ts +78 -0
  275. package/src/i18n/framing.fr.ts +78 -0
  276. package/src/i18n/framing.he.ts +77 -0
  277. package/src/i18n/framing.hi.ts +82 -0
  278. package/src/i18n/framing.ja.ts +84 -0
  279. package/src/i18n/framing.ko.ts +82 -0
  280. package/src/i18n/framing.pt-BR.ts +84 -0
  281. package/src/i18n/framing.ru.ts +82 -0
  282. package/src/i18n/framing.zh-CN.ts +82 -0
  283. package/src/i18n/furniture.ar.ts +92 -0
  284. package/src/i18n/furniture.de.ts +93 -0
  285. package/src/i18n/furniture.es.ts +101 -0
  286. package/src/i18n/furniture.fr.ts +93 -0
  287. package/src/i18n/furniture.he.ts +101 -0
  288. package/src/i18n/furniture.hi.ts +101 -0
  289. package/src/i18n/furniture.ja.ts +101 -0
  290. package/src/i18n/furniture.ko.ts +101 -0
  291. package/src/i18n/furniture.pt-BR.ts +101 -0
  292. package/src/i18n/furniture.ru.ts +101 -0
  293. package/src/i18n/furniture.zh-CN.ts +101 -0
  294. package/src/i18n/held-prop.ar.ts +74 -0
  295. package/src/i18n/held-prop.de.ts +65 -0
  296. package/src/i18n/held-prop.es.ts +83 -0
  297. package/src/i18n/held-prop.fr.ts +74 -0
  298. package/src/i18n/held-prop.he.ts +73 -0
  299. package/src/i18n/held-prop.hi.ts +82 -0
  300. package/src/i18n/held-prop.ja.ts +84 -0
  301. package/src/i18n/held-prop.ko.ts +84 -0
  302. package/src/i18n/held-prop.pt-BR.ts +84 -0
  303. package/src/i18n/held-prop.ru.ts +82 -0
  304. package/src/i18n/held-prop.zh-CN.ts +82 -0
  305. package/src/i18n/index.ts +208 -0
  306. package/src/i18n/instrumentation.ar.ts +195 -0
  307. package/src/i18n/instrumentation.de.ts +195 -0
  308. package/src/i18n/instrumentation.es.ts +195 -0
  309. package/src/i18n/instrumentation.fr.ts +195 -0
  310. package/src/i18n/instrumentation.he.ts +195 -0
  311. package/src/i18n/instrumentation.hi.ts +195 -0
  312. package/src/i18n/instrumentation.ja.ts +195 -0
  313. package/src/i18n/instrumentation.ko.ts +195 -0
  314. package/src/i18n/instrumentation.pt-BR.ts +195 -0
  315. package/src/i18n/instrumentation.ru.ts +195 -0
  316. package/src/i18n/instrumentation.zh-CN.ts +195 -0
  317. package/src/i18n/lens.ar.ts +24 -0
  318. package/src/i18n/lens.de.ts +24 -0
  319. package/src/i18n/lens.es.ts +24 -0
  320. package/src/i18n/lens.fr.ts +24 -0
  321. package/src/i18n/lens.he.ts +24 -0
  322. package/src/i18n/lens.hi.ts +24 -0
  323. package/src/i18n/lens.ja.ts +24 -0
  324. package/src/i18n/lens.ko.ts +24 -0
  325. package/src/i18n/lens.pt-BR.ts +24 -0
  326. package/src/i18n/lens.ru.ts +25 -0
  327. package/src/i18n/lens.zh-CN.ts +24 -0
  328. package/src/i18n/lighting.ar.ts +86 -0
  329. package/src/i18n/lighting.de.ts +84 -0
  330. package/src/i18n/lighting.es.ts +89 -0
  331. package/src/i18n/lighting.fr.ts +84 -0
  332. package/src/i18n/lighting.he.ts +88 -0
  333. package/src/i18n/lighting.hi.ts +90 -0
  334. package/src/i18n/lighting.ja.ts +90 -0
  335. package/src/i18n/lighting.ko.ts +90 -0
  336. package/src/i18n/lighting.pt-BR.ts +90 -0
  337. package/src/i18n/lighting.ru.ts +88 -0
  338. package/src/i18n/lighting.zh-CN.ts +92 -0
  339. package/src/i18n/loop-subject.ar.ts +39 -0
  340. package/src/i18n/loop-subject.de.ts +39 -0
  341. package/src/i18n/loop-subject.es.ts +39 -0
  342. package/src/i18n/loop-subject.fr.ts +39 -0
  343. package/src/i18n/loop-subject.he.ts +39 -0
  344. package/src/i18n/loop-subject.hi.ts +39 -0
  345. package/src/i18n/loop-subject.ja.ts +39 -0
  346. package/src/i18n/loop-subject.ko.ts +39 -0
  347. package/src/i18n/loop-subject.pt-BR.ts +39 -0
  348. package/src/i18n/loop-subject.ru.ts +39 -0
  349. package/src/i18n/loop-subject.zh-CN.ts +39 -0
  350. package/src/i18n/materials.ar.ts +80 -0
  351. package/src/i18n/materials.de.ts +80 -0
  352. package/src/i18n/materials.es.ts +87 -0
  353. package/src/i18n/materials.fr.ts +80 -0
  354. package/src/i18n/materials.he.ts +86 -0
  355. package/src/i18n/materials.hi.ts +86 -0
  356. package/src/i18n/materials.ja.ts +88 -0
  357. package/src/i18n/materials.ko.ts +88 -0
  358. package/src/i18n/materials.pt-BR.ts +88 -0
  359. package/src/i18n/materials.ru.ts +86 -0
  360. package/src/i18n/materials.zh-CN.ts +86 -0
  361. package/src/i18n/mood.ar.ts +61 -0
  362. package/src/i18n/mood.de.ts +61 -0
  363. package/src/i18n/mood.es.ts +66 -0
  364. package/src/i18n/mood.fr.ts +61 -0
  365. package/src/i18n/mood.he.ts +64 -0
  366. package/src/i18n/mood.hi.ts +66 -0
  367. package/src/i18n/mood.ja.ts +66 -0
  368. package/src/i18n/mood.ko.ts +66 -0
  369. package/src/i18n/mood.pt-BR.ts +64 -0
  370. package/src/i18n/mood.ru.ts +64 -0
  371. package/src/i18n/mood.zh-CN.ts +64 -0
  372. package/src/i18n/music-genre.ar.ts +302 -0
  373. package/src/i18n/music-genre.de.ts +302 -0
  374. package/src/i18n/music-genre.es.ts +302 -0
  375. package/src/i18n/music-genre.fr.ts +302 -0
  376. package/src/i18n/music-genre.he.ts +302 -0
  377. package/src/i18n/music-genre.hi.ts +302 -0
  378. package/src/i18n/music-genre.ja.ts +302 -0
  379. package/src/i18n/music-genre.ko.ts +302 -0
  380. package/src/i18n/music-genre.pt-BR.ts +302 -0
  381. package/src/i18n/music-genre.ru.ts +302 -0
  382. package/src/i18n/music-genre.zh-CN.ts +302 -0
  383. package/src/i18n/music-mood.ar.ts +75 -0
  384. package/src/i18n/music-mood.de.ts +75 -0
  385. package/src/i18n/music-mood.es.ts +75 -0
  386. package/src/i18n/music-mood.fr.ts +75 -0
  387. package/src/i18n/music-mood.he.ts +75 -0
  388. package/src/i18n/music-mood.hi.ts +75 -0
  389. package/src/i18n/music-mood.ja.ts +75 -0
  390. package/src/i18n/music-mood.ko.ts +75 -0
  391. package/src/i18n/music-mood.pt-BR.ts +75 -0
  392. package/src/i18n/music-mood.ru.ts +75 -0
  393. package/src/i18n/music-mood.zh-CN.ts +75 -0
  394. package/src/i18n/person.ar.ts +638 -0
  395. package/src/i18n/person.de.ts +629 -0
  396. package/src/i18n/person.es.ts +645 -0
  397. package/src/i18n/person.fr.ts +621 -0
  398. package/src/i18n/person.he.ts +656 -0
  399. package/src/i18n/person.hi.ts +654 -0
  400. package/src/i18n/person.ja.ts +662 -0
  401. package/src/i18n/person.ko.ts +662 -0
  402. package/src/i18n/person.pt-BR.ts +656 -0
  403. package/src/i18n/person.ru.ts +656 -0
  404. package/src/i18n/person.zh-CN.ts +656 -0
  405. package/src/i18n/photo-genre.ar.ts +58 -0
  406. package/src/i18n/photo-genre.de.ts +52 -0
  407. package/src/i18n/photo-genre.es.ts +64 -0
  408. package/src/i18n/photo-genre.fr.ts +58 -0
  409. package/src/i18n/photo-genre.he.ts +62 -0
  410. package/src/i18n/photo-genre.hi.ts +63 -0
  411. package/src/i18n/photo-genre.ja.ts +65 -0
  412. package/src/i18n/photo-genre.ko.ts +63 -0
  413. package/src/i18n/photo-genre.pt-BR.ts +65 -0
  414. package/src/i18n/photo-genre.ru.ts +63 -0
  415. package/src/i18n/photo-genre.zh-CN.ts +63 -0
  416. package/src/i18n/photographer.ar.ts +75 -0
  417. package/src/i18n/photographer.de.ts +74 -0
  418. package/src/i18n/photographer.es.ts +77 -0
  419. package/src/i18n/photographer.fr.ts +77 -0
  420. package/src/i18n/photographer.he.ts +78 -0
  421. package/src/i18n/photographer.hi.ts +80 -0
  422. package/src/i18n/photographer.ja.ts +84 -0
  423. package/src/i18n/photographer.ko.ts +84 -0
  424. package/src/i18n/photographer.pt-BR.ts +83 -0
  425. package/src/i18n/photographer.ru.ts +78 -0
  426. package/src/i18n/photographer.zh-CN.ts +78 -0
  427. package/src/i18n/pose.ar.ts +95 -0
  428. package/src/i18n/pose.de.ts +96 -0
  429. package/src/i18n/pose.es.ts +104 -0
  430. package/src/i18n/pose.fr.ts +96 -0
  431. package/src/i18n/pose.he.ts +104 -0
  432. package/src/i18n/pose.hi.ts +104 -0
  433. package/src/i18n/pose.ja.ts +104 -0
  434. package/src/i18n/pose.ko.ts +104 -0
  435. package/src/i18n/pose.pt-BR.ts +104 -0
  436. package/src/i18n/pose.ru.ts +104 -0
  437. package/src/i18n/pose.zh-CN.ts +104 -0
  438. package/src/i18n/post-process-effects.ar.ts +25 -0
  439. package/src/i18n/post-process-effects.de.ts +24 -0
  440. package/src/i18n/post-process-effects.es.ts +26 -0
  441. package/src/i18n/post-process-effects.fr.ts +24 -0
  442. package/src/i18n/post-process-effects.he.ts +24 -0
  443. package/src/i18n/post-process-effects.hi.ts +26 -0
  444. package/src/i18n/post-process-effects.ja.ts +26 -0
  445. package/src/i18n/post-process-effects.ko.ts +26 -0
  446. package/src/i18n/post-process-effects.pt-BR.ts +24 -0
  447. package/src/i18n/post-process-effects.ru.ts +24 -0
  448. package/src/i18n/post-process-effects.zh-CN.ts +24 -0
  449. package/src/i18n/render-quality.ar.ts +34 -0
  450. package/src/i18n/render-quality.de.ts +30 -0
  451. package/src/i18n/render-quality.es.ts +35 -0
  452. package/src/i18n/render-quality.fr.ts +34 -0
  453. package/src/i18n/render-quality.he.ts +33 -0
  454. package/src/i18n/render-quality.hi.ts +39 -0
  455. package/src/i18n/render-quality.ja.ts +39 -0
  456. package/src/i18n/render-quality.ko.ts +39 -0
  457. package/src/i18n/render-quality.pt-BR.ts +37 -0
  458. package/src/i18n/render-quality.ru.ts +37 -0
  459. package/src/i18n/render-quality.zh-CN.ts +37 -0
  460. package/src/i18n/seasons.ar.ts +10 -0
  461. package/src/i18n/seasons.de.ts +10 -0
  462. package/src/i18n/seasons.es.ts +10 -0
  463. package/src/i18n/seasons.fr.ts +10 -0
  464. package/src/i18n/seasons.he.ts +10 -0
  465. package/src/i18n/seasons.hi.ts +10 -0
  466. package/src/i18n/seasons.ja.ts +10 -0
  467. package/src/i18n/seasons.ko.ts +10 -0
  468. package/src/i18n/seasons.pt-BR.ts +10 -0
  469. package/src/i18n/seasons.ru.ts +10 -0
  470. package/src/i18n/seasons.zh-CN.ts +10 -0
  471. package/src/i18n/setting.ar.ts +73 -0
  472. package/src/i18n/setting.de.ts +73 -0
  473. package/src/i18n/setting.es.ts +77 -0
  474. package/src/i18n/setting.fr.ts +73 -0
  475. package/src/i18n/setting.he.ts +76 -0
  476. package/src/i18n/setting.hi.ts +76 -0
  477. package/src/i18n/setting.ja.ts +78 -0
  478. package/src/i18n/setting.ko.ts +76 -0
  479. package/src/i18n/setting.pt-BR.ts +78 -0
  480. package/src/i18n/setting.ru.ts +76 -0
  481. package/src/i18n/setting.zh-CN.ts +76 -0
  482. package/src/i18n/style.ar.ts +55 -0
  483. package/src/i18n/style.de.ts +54 -0
  484. package/src/i18n/style.es.ts +54 -0
  485. package/src/i18n/style.fr.ts +54 -0
  486. package/src/i18n/style.he.ts +54 -0
  487. package/src/i18n/style.hi.ts +54 -0
  488. package/src/i18n/style.ja.ts +54 -0
  489. package/src/i18n/style.ko.ts +54 -0
  490. package/src/i18n/style.pt-BR.ts +56 -0
  491. package/src/i18n/style.ru.ts +54 -0
  492. package/src/i18n/style.zh-CN.ts +54 -0
  493. package/src/i18n/styling.ar.ts +295 -0
  494. package/src/i18n/styling.de.ts +285 -0
  495. package/src/i18n/styling.es.ts +317 -0
  496. package/src/i18n/styling.fr.ts +285 -0
  497. package/src/i18n/styling.he.ts +307 -0
  498. package/src/i18n/styling.hi.ts +323 -0
  499. package/src/i18n/styling.ja.ts +317 -0
  500. package/src/i18n/styling.ko.ts +311 -0
  501. package/src/i18n/styling.pt-BR.ts +301 -0
  502. package/src/i18n/styling.ru.ts +301 -0
  503. package/src/i18n/styling.zh-CN.ts +307 -0
  504. package/src/i18n/temporal.ar.ts +31 -0
  505. package/src/i18n/temporal.de.ts +24 -0
  506. package/src/i18n/temporal.es.ts +27 -0
  507. package/src/i18n/temporal.fr.ts +28 -0
  508. package/src/i18n/temporal.he.ts +31 -0
  509. package/src/i18n/temporal.hi.ts +31 -0
  510. package/src/i18n/temporal.ja.ts +31 -0
  511. package/src/i18n/temporal.ko.ts +31 -0
  512. package/src/i18n/temporal.pt-BR.ts +31 -0
  513. package/src/i18n/temporal.ru.ts +31 -0
  514. package/src/i18n/temporal.zh-CN.ts +31 -0
  515. package/src/i18n/transitions.ar.ts +97 -0
  516. package/src/i18n/transitions.de.ts +97 -0
  517. package/src/i18n/transitions.es.ts +97 -0
  518. package/src/i18n/transitions.fr.ts +97 -0
  519. package/src/i18n/transitions.he.ts +97 -0
  520. package/src/i18n/transitions.hi.ts +97 -0
  521. package/src/i18n/transitions.ja.ts +97 -0
  522. package/src/i18n/transitions.ko.ts +97 -0
  523. package/src/i18n/transitions.pt-BR.ts +97 -0
  524. package/src/i18n/transitions.ru.ts +97 -0
  525. package/src/i18n/transitions.zh-CN.ts +97 -0
  526. package/src/i18n/types.ts +158 -0
  527. package/src/i18n/vehicles.ar.ts +137 -0
  528. package/src/i18n/vehicles.de.ts +125 -0
  529. package/src/i18n/vehicles.es.ts +138 -0
  530. package/src/i18n/vehicles.fr.ts +125 -0
  531. package/src/i18n/vehicles.he.ts +136 -0
  532. package/src/i18n/vehicles.hi.ts +138 -0
  533. package/src/i18n/vehicles.ja.ts +138 -0
  534. package/src/i18n/vehicles.ko.ts +138 -0
  535. package/src/i18n/vehicles.pt-BR.ts +136 -0
  536. package/src/i18n/vehicles.ru.ts +136 -0
  537. package/src/i18n/vehicles.zh-CN.ts +136 -0
  538. package/src/i18n/voice-character.ar.ts +126 -0
  539. package/src/i18n/voice-character.de.ts +126 -0
  540. package/src/i18n/voice-character.es.ts +126 -0
  541. package/src/i18n/voice-character.fr.ts +126 -0
  542. package/src/i18n/voice-character.he.ts +126 -0
  543. package/src/i18n/voice-character.hi.ts +126 -0
  544. package/src/i18n/voice-character.ja.ts +126 -0
  545. package/src/i18n/voice-character.ko.ts +126 -0
  546. package/src/i18n/voice-character.pt-BR.ts +126 -0
  547. package/src/i18n/voice-character.ru.ts +126 -0
  548. package/src/i18n/voice-character.zh-CN.ts +126 -0
  549. package/src/i18n/voice-delivery.ar.ts +77 -0
  550. package/src/i18n/voice-delivery.de.ts +77 -0
  551. package/src/i18n/voice-delivery.es.ts +77 -0
  552. package/src/i18n/voice-delivery.fr.ts +77 -0
  553. package/src/i18n/voice-delivery.he.ts +77 -0
  554. package/src/i18n/voice-delivery.hi.ts +77 -0
  555. package/src/i18n/voice-delivery.ja.ts +77 -0
  556. package/src/i18n/voice-delivery.ko.ts +77 -0
  557. package/src/i18n/voice-delivery.pt-BR.ts +77 -0
  558. package/src/i18n/voice-delivery.ru.ts +77 -0
  559. package/src/i18n/voice-delivery.zh-CN.ts +77 -0
  560. package/src/i18n/weapons.ar.ts +115 -0
  561. package/src/i18n/weapons.de.ts +114 -0
  562. package/src/i18n/weapons.es.ts +116 -0
  563. package/src/i18n/weapons.fr.ts +103 -0
  564. package/src/i18n/weapons.he.ts +114 -0
  565. package/src/i18n/weapons.hi.ts +116 -0
  566. package/src/i18n/weapons.ja.ts +116 -0
  567. package/src/i18n/weapons.ko.ts +116 -0
  568. package/src/i18n/weapons.pt-BR.ts +114 -0
  569. package/src/i18n/weapons.ru.ts +114 -0
  570. package/src/i18n/weapons.zh-CN.ts +114 -0
  571. package/src/image-critic-node.ts +61 -0
  572. package/src/image-critic-types.ts +40 -0
  573. package/src/index.ts +866 -0
  574. package/src/inject-upstream.ts +15 -0
  575. package/src/inpaint-region.ts +51 -0
  576. package/src/json-evaluator.ts +732 -0
  577. package/src/json-path.ts +52 -0
  578. package/src/lip-sync-pricing.ts +90 -0
  579. package/src/list-merge.ts +40 -0
  580. package/src/list-sort.ts +122 -0
  581. package/src/list-source-resolver.ts +50 -0
  582. package/src/llm-models.ts +245 -0
  583. package/src/location-mention-slug.ts +291 -0
  584. package/src/location-preset-catalog-map.ts +128 -0
  585. package/src/loop-delimiter.ts +73 -0
  586. package/src/lora-routing.ts +95 -0
  587. package/src/lottie-overlay-catalog.ts +175 -0
  588. package/src/lottie-slots.ts +309 -0
  589. package/src/model-catalog.ts +2386 -0
  590. package/src/model-constants.ts +1910 -0
  591. package/src/model-tree.ts +120 -0
  592. package/src/monetization.ts +15 -0
  593. package/src/multi-pick.ts +42 -0
  594. package/src/node-default-mappings.ts +262 -0
  595. package/src/node-mappable-fields.ts +70 -0
  596. package/src/node-preset-export.ts +56 -0
  597. package/src/node-preset-extract.ts +147 -0
  598. package/src/node-refs.ts +253 -0
  599. package/src/node-runtime-keys.ts +117 -0
  600. package/src/object-aspect-defaults.ts +72 -0
  601. package/src/object-picker-types.ts +22 -0
  602. package/src/parameter-node-value.ts +284 -0
  603. package/src/pinterest-url.ts +28 -0
  604. package/src/pipeline-chat.ts +72 -0
  605. package/src/pipeline-defaults.ts +318 -0
  606. package/src/pipeline-events.ts +162 -0
  607. package/src/pipeline-state-types.ts +196 -0
  608. package/src/pipeline-types.ts +647 -0
  609. package/src/pipeline-validation.ts +87 -0
  610. package/src/presentation-types.ts +23 -0
  611. package/src/presentation-utils.ts +397 -0
  612. package/src/producer-types.ts +188 -0
  613. package/src/progress-curve.ts +99 -0
  614. package/src/provider-directive-defaults.ts +69 -0
  615. package/src/reduce-strategy-registry.ts +121 -0
  616. package/src/reference-board-templates.ts +81 -0
  617. package/src/reference-roles.ts +153 -0
  618. package/src/reference-sheet/__tests__/board-to-column.test.ts +20 -0
  619. package/src/reference-sheet/__tests__/catalog.test.ts +50 -0
  620. package/src/reference-sheet/__tests__/cost.test.ts +38 -0
  621. package/src/reference-sheet/__tests__/no-drift.test.ts +28 -0
  622. package/src/reference-sheet/__tests__/panel-plan.test.ts +61 -0
  623. package/src/reference-sheet/__tests__/panel-prompts.test.ts +17 -0
  624. package/src/reference-sheet/__tests__/plan-generation.test.ts +72 -0
  625. package/src/reference-sheet/__tests__/presets.test.ts +54 -0
  626. package/src/reference-sheet/__tests__/types.test.ts +24 -0
  627. package/src/reference-sheet/catalog.ts +144 -0
  628. package/src/reference-sheet/cost.ts +37 -0
  629. package/src/reference-sheet/credit-id.ts +7 -0
  630. package/src/reference-sheet/index.ts +8 -0
  631. package/src/reference-sheet/panel-plan.ts +65 -0
  632. package/src/reference-sheet/panel-prompts.ts +14 -0
  633. package/src/reference-sheet/plan-generation.ts +79 -0
  634. package/src/reference-sheet/presets.ts +77 -0
  635. package/src/reference-sheet/types.ts +92 -0
  636. package/src/repeat-types.ts +97 -0
  637. package/src/resolve-field-mappings.ts +119 -0
  638. package/src/route-filter.ts +80 -0
  639. package/src/scene-helper-types.ts +249 -0
  640. package/src/scene-node-types.ts +281 -0
  641. package/src/scraper-actors.ts +57 -0
  642. package/src/scraper-output-schemas.ts +25 -0
  643. package/src/seasons.ts +45 -0
  644. package/src/selector.ts +864 -0
  645. package/src/settled-with-limit.ts +42 -0
  646. package/src/shot-element.ts +43 -0
  647. package/src/social-media-specs.ts +121 -0
  648. package/src/social-post.ts +24 -0
  649. package/src/sub-workflow-validation.ts +78 -0
  650. package/src/supported-fonts.ts +40 -0
  651. package/src/surround.ts +113 -0
  652. package/src/switchx-pricing.ts +33 -0
  653. package/src/text-separators.ts +59 -0
  654. package/src/to-connected-references.ts +77 -0
  655. package/src/types.ts +272 -0
  656. package/src/variant-job-id.ts +17 -0
  657. package/src/vehicles.ts +213 -0
  658. package/src/video-analysis-pricing.ts +74 -0
  659. package/src/video-analysis.ts +127 -0
  660. package/src/video-duration.ts +25 -0
  661. package/src/voice-changer-models.ts +36 -0
  662. package/src/voice-matcher-types.ts +37 -0
  663. package/src/voices.ts +92 -0
  664. package/src/weapons.ts +190 -0
  665. package/src/workflow-export.ts +153 -0
@@ -0,0 +1,307 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // -------------------- Makeup --------------------
5
+ "makeup-natural": { label: "自然妆", description: "若有似无的裸妆" },
6
+ "makeup-glamour": { label: "魅惑全妆", description: "完整精致的浓妆" },
7
+ "makeup-smoky": { label: "烟熏妆", description: "深色戏剧化眼妆" },
8
+ "makeup-bold-lips": { label: "浓艳唇妆", description: "强烈红色或暗色口红" },
9
+ "makeup-editorial": { label: "大片妆", description: "前卫先锋的时装妆容" },
10
+ "makeup-goth": { label: "哥特妆", description: "黑暗哥特妆容" },
11
+ "makeup-dewy": { label: "水光妆", description: "光泽鲜活的肌肤为主" },
12
+
13
+ // -------------------- Eyewear --------------------
14
+ "eyewear-sunglasses": { label: "墨镜", description: "通用的深色太阳镜" },
15
+ "eyewear-aviators": { description: "经典飞行员墨镜" },
16
+ "eyewear-cat-eye": { label: "猫眼镜", description: "复古猫眼镜框" },
17
+ "eyewear-round": { label: "圆框 / 列侬眼镜", description: "圆形金属框眼镜" },
18
+ "eyewear-fashion": { label: "时髦眼镜", description: "醒目的设计师镜框" },
19
+ "eyewear-sport": { label: "运动护目镜", description: "包覆式运动眼镜" },
20
+
21
+ // -------------------- Headwear --------------------
22
+ "headwear-beanie": { label: "毛线帽", description: "针织毛线帽" },
23
+ "headwear-baseball-cap": { label: "棒球帽", description: "弧形帽檐的鸭舌帽" },
24
+ "headwear-fedora": { description: "宽檐绅士礼帽" },
25
+ "headwear-sun-hat": { label: "遮阳帽", description: "宽檐遮阳帽" },
26
+ "headwear-headband": { label: "发箍", description: "发箍" },
27
+ "headwear-bandana": { label: "头巾", description: "绑在头上的方巾" },
28
+ "headwear-hood": { label: "帽兜", description: "拉起的连帽衫帽兜" },
29
+ "headwear-crown": { label: "皇冠", description: "皇冠或装饰冠" },
30
+ "headwear-helmet": { label: "头盔", description: "防护头盔" },
31
+ "headwear-veil": { label: "面纱", description: "覆盖脸 / 头发的面纱" },
32
+ "headwear-bucket-hat": { label: "渔夫帽", description: "软帽檐的休闲渔夫帽" },
33
+ "headwear-beret": { label: "贝雷帽", description: "柔软圆顶的法式贝雷帽" },
34
+ "headwear-turban": { label: "头巾", description: "缠绕式头巾,文化 / 时尚款" },
35
+ "headwear-fascinator": { label: "迷你头饰", description: "小巧装饰头饰,皇室婚礼风" },
36
+ "headwear-bowler": { label: "圆顶礼帽", description: "圆顶硬礼帽 / 德比帽" },
37
+ "headwear-cowboy-hat": { label: "牛仔帽", description: "宽檐西部牛仔帽" },
38
+
39
+ // -------------------- Hair Cut --------------------
40
+ "cut-pixie": { label: "精灵短发", description: "短而利落的精灵短发" },
41
+ "cut-buzz-cut": { label: "板寸", description: "极短的板寸" },
42
+ "cut-crew-cut": { label: "圆寸", description: "短而渐变的经典圆寸" },
43
+ "cut-shaved": { label: "剃光", description: "完全剃光" },
44
+ "cut-undercut": { label: "短鬓长顶", description: "鬓角剃短、顶部留长" },
45
+ "cut-faux-hawk": { label: "假莫西干", description: "中央条带立起、两侧渐变" },
46
+ "cut-mohawk": { label: "莫西干", description: "两侧剃光、中央高耸" },
47
+ "cut-pompadour": { label: "蓬巴杜", description: "向后向上梳起,前额蓬松" },
48
+ "cut-short": { label: "短发", description: "通用短发" },
49
+ "cut-short-curly": { label: "短卷发", description: "短而层次的卷发" },
50
+
51
+ "cut-micro-bob": { label: "超短鲍勃", description: "齐耳的极短鲍勃" },
52
+ "cut-french-bob": { label: "法式鲍勃", description: "齐下颌的钝剪鲍勃,常带刘海" },
53
+ "cut-bob": { label: "鲍勃", description: "齐下巴的鲍勃头" },
54
+ "cut-lob": { label: "锁骨发", description: "及锁骨的长鲍勃" },
55
+
56
+ "cut-mullet": { label: "鲻鱼头", description: "顶部短、后部长的鲻鱼头" },
57
+ "cut-wolf-cut": { label: "狼尾", description: "层次蓬乱、带刘海的狼尾鲻鱼" },
58
+
59
+ "cut-bangs": { label: "齐刘海", description: "整齐横切的齐刘海" },
60
+ "cut-curtain-bangs": { label: "窗帘刘海", description: "中分修饰脸型的窗帘刘海" },
61
+ "cut-wispy-bangs": { label: "薄纱刘海", description: "细薄、空气感的刘海" },
62
+ "cut-side-swept": { label: "侧分", description: "斜划过脸、遮住一只眼睛" },
63
+
64
+ "cut-slicked-back": { label: "大背头", description: "向后梳起、油亮利落" },
65
+ "cut-bardot-tendrils": { label: "Bardot 碎发", description: "扎起后有几缕修饰脸型的碎发" },
66
+ "cut-ponytail": { label: "低马尾", description: "低位的马尾辫" },
67
+ "cut-high-ponytail": { label: "高马尾", description: "扎在头顶的高马尾" },
68
+ "cut-half-up": { label: "半扎发", description: "上半部扎起、下半部披散" },
69
+ "cut-bun": { label: "丸子头", description: "经典低位或中位丸子头" },
70
+ "cut-top-knot": { label: "高丸子", description: "扎在头顶的丸子头" },
71
+ "cut-space-buns": { label: "双丸子", description: "两侧对称的两个丸子" },
72
+
73
+ "cut-braids": { label: "辫子", description: "多条松散编织的辫子" },
74
+ "cut-single-braid": { label: "单辫", description: "一条长辫垂下后背" },
75
+ "cut-two-braids": { label: "双辫", description: "两侧对称的双麻花辫" },
76
+ "cut-french-braid": { label: "法式辫", description: "贴着头皮编织的法式辫" },
77
+ "cut-dutch-braid": { label: "荷兰辫", description: "外翻立体的法式辫" },
78
+ "cut-fishtail-braid": { label: "鱼骨辫", description: "细致的双股鱼骨辫" },
79
+ "cut-box-braids": { label: "脏辫细辫", description: "分区编织的脏辫" },
80
+ "cut-crown-braid": { label: "皇冠辫", description: "环绕头顶的皇冠辫" },
81
+ "cut-cornrows": { label: "玉米辫", description: "紧密的玉米辫图案" },
82
+
83
+ "cut-dreadlocks": { label: "脏辫", description: "缠结成绳状的脏辫" },
84
+ "cut-sisterlocks": { label: "Sisterlocks 细脏辫", description: "整齐分区的细密小脏辫" },
85
+
86
+ // -------------------- Hair State --------------------
87
+ "hair-wet": { label: "湿发", description: "湿透、贴在一起的头发" },
88
+ "hair-damp": { label: "微湿", description: "刚洗完的微湿状态" },
89
+ "hair-messy": { label: "凌乱", description: "凌乱、未打理" },
90
+ "hair-tousled": { label: "随性蓬松", description: "微微凌乱、生活感" },
91
+ "hair-bedhead": { label: "起床头", description: "刚醒来、一边压扁的头发" },
92
+ "hair-windswept": { label: "风吹起来", description: "随风飘动的头发" },
93
+ "hair-voluminous": { label: "蓬松饱满", description: "吹得蓬松饱满" },
94
+ "hair-sleek": { label: "顺滑", description: "平整顺滑、玻璃般光泽" },
95
+ "hair-frizzy": { label: "毛躁", description: "环绕头部的毛躁光晕" },
96
+ "hair-strands-on-face": { label: "发丝拂面", description: "几缕发丝散落在脸上" },
97
+ "hair-tucked-behind-ear":{ label: "别耳后", description: "撩起头发别在耳后" },
98
+ "hair-flowing": { label: "飘逸", description: "长发飘逸地流动" },
99
+
100
+ // -------------------- Hair Treatment --------------------
101
+ "treatment-babylights": { description: "极致细密、自然感的高光挑染" },
102
+ "treatment-balayage": { description: "Balayage 手扫染" },
103
+ "treatment-ombre": { description: "Ombré 渐变染,从深发根到浅发尾" },
104
+ "treatment-sombre": { description: "Sombré 柔和渐变染" },
105
+ "treatment-highlights": { label: "挑染高光", description: "经典锡纸挑染" },
106
+ "treatment-lowlights": { label: "低光暗挑染", description: "更深一档的暗色挑染" },
107
+ "treatment-rooted": { label: "深发根感", description: "可见深色发根的视感" },
108
+
109
+ // -------------------- Jewelry --------------------
110
+ "jewelry-subtle": { label: "低调首饰", description: "极简精致的首饰" },
111
+ "jewelry-statement": { label: "夸张主件", description: "醒目的主件饰品" },
112
+ "jewelry-gold": { label: "金饰", description: "金项链加耳饰" },
113
+ "jewelry-silver": { label: "银饰", description: "银项链加耳饰" },
114
+ "jewelry-layered": { label: "叠戴", description: "不同长度的叠戴项链" },
115
+ "jewelry-pearl": { label: "珍珠饰品", description: "珍珠项链 / 耳饰" },
116
+ "jewelry-chunky": { label: "粗链 + 大戒", description: "粗链子加大戒指" },
117
+ "jewelry-smart-watch":{ label: "智能手表", description: "腕上的现代智能手表" },
118
+ "jewelry-choker-leather":{ label: "皮质项圈", description: "贴喉的黑色皮质项圈" },
119
+ "jewelry-choker-velvet":{ label: "天鹅绒项圈", description: "丝绒缎带项圈,复古华丽" },
120
+ "jewelry-choker-chain":{ label: "金属项圈", description: "细金属链项圈" },
121
+ "jewelry-stud-earrings":{ label: "耳钉", description: "小巧朴素的耳钉" },
122
+ "jewelry-hoop-earrings":{ label: "圈型耳环", description: "金或银圈耳环" },
123
+ "jewelry-ear-cuff": { label: "耳骨夹", description: "雕塑感的耳骨夹" },
124
+ "jewelry-septum-ring":{ label: "鼻中隔环", description: "贯穿鼻中部的鼻环" },
125
+ "jewelry-body-chain": { label: "身体链", description: "横挂身体的细金属链" },
126
+
127
+ // -------------------- Nails --------------------
128
+ "nails-polished": { label: "裸色亮面", description: "透明或裸色亮面甲" },
129
+ "nails-red": { label: "红色", description: "鲜红色甲油" },
130
+ "nails-dark": { label: "深色", description: "深 / 黑色甲油" },
131
+ "nails-long-acrylic":{ label: "长款假甲", description: "长款丙烯假甲" },
132
+ "nails-french": { label: "法式甲", description: "经典法式美甲" },
133
+
134
+ // -------------------- Face Paint --------------------
135
+ "face-paint-subtle": { label: "淡彩人体绘", description: "皮肤上点缀的淡彩绘" },
136
+ "face-paint-dramatic": { label: "戏剧脸绘", description: "大胆艺术化的脸部彩绘" },
137
+ "face-paint-costume": { label: "角色彩妆", description: "Cosplay / 戏剧妆" },
138
+ "face-paint-tribal": { label: "部族纹绘", description: "部族风格的脸部纹绘" },
139
+ "face-paint-warpaint": { label: "战士涂彩", description: "勇士战斗般的涂彩条纹" },
140
+
141
+ // -------------------- Fabric --------------------
142
+ "fabric-silk": { label: "丝绸", description: "光滑闪亮的丝绸服装" },
143
+ "fabric-cotton": { label: "棉", description: "柔软哑光的棉布" },
144
+ "fabric-denim": { label: "牛仔布", description: "厚实靛蓝牛仔布" },
145
+ "fabric-leather": { label: "皮革", description: "丰润柔软的皮革" },
146
+ "fabric-velvet": { label: "天鹅绒", description: "柔软厚密的天鹅绒" },
147
+ "fabric-satin": { label: "缎面", description: "光泽顺滑的缎面" },
148
+ "fabric-lace": { label: "蕾丝", description: "精致花纹的蕾丝" },
149
+ "fabric-wool": { label: "羊毛", description: "温暖编织的羊毛" },
150
+ "fabric-linen": { label: "亚麻", description: "天然带质感的亚麻" },
151
+ "fabric-tweed": { label: "粗花呢", description: "粗犷编织的粗花呢" },
152
+ "fabric-cashmere": { label: "羊绒", description: "奢华柔软的羊绒" },
153
+ "fabric-chiffon": { label: "雪纺", description: "薄透飘逸的雪纺" },
154
+ "fabric-fur": { label: "毛皮", description: "厚实蓬松的毛皮" },
155
+ "fabric-sequins": { label: "亮片", description: "闪光亮片面料" },
156
+ "fabric-latex": { label: "乳胶", description: "高光面贴身的乳胶" },
157
+
158
+ // -------------------- Outfit --------------------
159
+ "outfit-school-uniform":{ label: "校服", description: "经典校服套装" },
160
+ "outfit-business-suit": { label: "商务西装", description: "剪裁合身的两件套西装" },
161
+ "outfit-tuxedo": { label: "燕尾服", description: "晚宴燕尾服" },
162
+ "outfit-evening-gown": { label: "晚礼服", description: "落地长款正式礼服" },
163
+ "outfit-wedding-dress": { label: "婚纱", description: "白色婚纱礼服" },
164
+ "outfit-cocktail-dress":{ label: "鸡尾酒裙", description: "及膝鸡尾酒裙" },
165
+ "outfit-lab-coat": { label: "实验室白大褂", description: "白色医用大褂" },
166
+ "outfit-scrubs": { label: "医用刷手服", description: "纯色医用刷手服" },
167
+ "outfit-military": { label: "军装", description: "橄榄绿军用作训服" },
168
+ "outfit-lifeguard": { label: "救生员服", description: "红色救生员上衣加短裤" },
169
+ "outfit-athleisure": { label: "运动休闲套装", description: "上下成套的运动休闲" },
170
+ "outfit-tracksuit": { label: "运动套装", description: "前拉链两件套运动套装" },
171
+ "outfit-bikini": { label: "比基尼", description: "两件式泳装" },
172
+ "outfit-one-piece-swim":{ label: "连体泳衣", description: "贴身连体泳衣" },
173
+ "outfit-lingerie": { label: "内衣套装", description: "成套内衣" },
174
+ "outfit-pajamas": { label: "睡衣", description: "柔软棉质睡衣套装" },
175
+ "outfit-bathrobe": { label: "浴袍", description: "厚毛圈浴袍" },
176
+ "outfit-kimono": { label: "和服", description: "传统日式和服" },
177
+ "outfit-ballerina": { label: "芭蕾舞服", description: "古典芭蕾舞服" },
178
+ "outfit-flapper": { label: "1920 年代 Flapper", description: "镶珠流苏的 Flapper 短裙" },
179
+ "outfit-goth": { label: "哥特造型", description: "整身暗黑哥特:黑色蕾丝、皮革、深色妆容、链条" },
180
+ "outfit-emo": { label: "Emo 造型", description: "千禧初年的 Emo:紧身牛仔裤、乐队 T 恤、染发、眼线" },
181
+ "outfit-streetwear": { label: "街头潮流", description: "现代街头风:连帽卫衣、阔腿裤、运动鞋、渔夫帽" },
182
+ "outfit-cyberpunk": { label: "赛博朋克", description: "霓虹赛博朋克:机能服、LED 点缀、网纱叠搭" },
183
+ "outfit-cottagecore": { label: "Cottagecore 田园风", description: "田园小屋美学:草原长裙、围裙、小提篮" },
184
+ "outfit-dark-academia": { label: "Dark Academia 暗黑学院", description: "牛津学究风:粗花呢西装外套、马甲、牛津鞋" },
185
+ "outfit-anime-cosplay": { label: "动漫 Cosplay", description: "以可辨识的动漫角色为蓝本的服装" },
186
+ "outfit-nurse": { label: "护士装", description: "医用刷手服、听诊器、挂带式工牌" },
187
+ "outfit-pirate": { label: "海盗装", description: "海盗服:三角帽、腰带、荷叶边衬衫、长靴" },
188
+ "outfit-fairy": { label: "仙女装", description: "奇幻仙女:轻纱翅膀、花环、空灵长裙" },
189
+ "outfit-mermaid": { label: "美人鱼装", description: "奇幻美人鱼:鱼鳞鱼尾 / 半裙、贝壳上衣" },
190
+
191
+ // -------------------- Top --------------------
192
+ "top-tshirt": { label: "T 恤", description: "纯色圆领 T 恤" },
193
+ "top-tank": { label: "背心", description: "U 领背心" },
194
+ "top-crop-top": { label: "短款上衣", description: "露出腰腹的短款上衣" },
195
+ "top-hoodie": { label: "连帽衫", description: "套头连帽衫" },
196
+ "top-sweater": { label: "毛衣", description: "针织套头毛衣" },
197
+ "top-turtleneck": { label: "高领", description: "高翻领上衣" },
198
+ "top-blouse": { label: "雪纺衫", description: "飘逸的精致衬衫" },
199
+ "top-button-down":{ label: "衬衫", description: "剪裁得体的衬衫" },
200
+ "top-polo": { label: "Polo 衫", description: "短袖 Polo 衫" },
201
+ "top-tube-top": { label: "抹胸", description: "无肩带抹胸" },
202
+ "top-camisole": { label: "吊带衫", description: "薄缎吊带衫" },
203
+ "top-corset": { label: "束腹衣", description: "结构化的束腹上衣" },
204
+ "top-bra-top": { label: "内衣式上衣", description: "露腰的胸衣式上衣" },
205
+ "top-sports-bra": { label: "运动内衣", description: "运动型胸衣" },
206
+ "top-bikini-top": { label: "比基尼上装", description: "三角比基尼上衣" },
207
+ "top-bodysuit": { label: "连体衣", description: "贴身连体上衣" },
208
+ "top-leotard": { label: "舞蹈紧身衣", description: "舞蹈风格的合身长袖紧身衣" },
209
+ "top-mesh-top": { label: "网纱上衣", description: "通透网纱面料上衣" },
210
+ "top-sheer-top": { label: "薄透上衣", description: "半透明面料上衣" },
211
+ "top-bandeau": { label: "抹胸 Bandeau", description: "无肩带的抹胸式上衣" },
212
+
213
+ // -------------------- Bottom --------------------
214
+ "bottom-jeans": { label: "牛仔裤", description: "经典蓝色牛仔裤" },
215
+ "bottom-skinny-jeans": { label: "紧身牛仔裤", description: "紧身剪裁牛仔裤" },
216
+ "bottom-wide-leg-jeans":{ label: "阔腿牛仔裤", description: "阔腿宽松牛仔裤" },
217
+ "bottom-mom-jeans": { label: "妈妈裤", description: "高腰直筒妈妈裤" },
218
+ "bottom-low-rise-jeans":{ label: "低腰牛仔裤", description: "低腰牛仔裤" },
219
+ "bottom-chinos": { label: "卡其裤", description: "剪裁得体的卡其裤" },
220
+ "bottom-trousers": { label: "正装西裤", description: "笔挺西裤" },
221
+ "bottom-cargo": { label: "工装裤", description: "侧口袋的工装裤" },
222
+ "bottom-leggings": { label: "紧身裤", description: "贴身紧身裤" },
223
+ "bottom-sweatpants": { label: "卫裤", description: "宽松卫裤" },
224
+ "bottom-shorts": { label: "短裤", description: "及大腿中部的短裤" },
225
+ "bottom-denim-shorts": { label: "牛仔短裤", description: "牛仔剪短裤" },
226
+ "bottom-mini-skirt": { label: "迷你裙", description: "齐大腿的迷你短裙" },
227
+ "bottom-pleated-skirt": { label: "百褶裙", description: "及大腿的百褶裙" },
228
+ "bottom-midi-skirt": { label: "中长裙", description: "及小腿的中长裙" },
229
+ "bottom-maxi-skirt": { label: "长裙", description: "落地长裙" },
230
+ "bottom-overalls": { label: "工装背带裤", description: "牛仔背带裤 / 连身裤" },
231
+ "bottom-culottes": { label: "宽腿七分裤", description: "中长款阔腿裤,及小腿中部" },
232
+ "bottom-palazzo-pants": { label: "阔腿长裤", description: "飘逸感阔腿长裤" },
233
+ "bottom-harem-pants": { label: "哈伦裤", description: "低裆宽松长裤" },
234
+ "bottom-bike-shorts": { label: "骑行短裤", description: "贴身莱卡材质的中大腿短裤" },
235
+
236
+ // -------------------- Outerwear --------------------
237
+ "outerwear-leather-jacket":{ label: "皮夹克", description: "修身皮夹克" },
238
+ "outerwear-denim-jacket": { label: "牛仔外套", description: "经典牛仔外套" },
239
+ "outerwear-bomber": { label: "飞行员夹克", description: "缎面飞行员夹克" },
240
+ "outerwear-blazer": { label: "西装外套", description: "剪裁得体的西装外套" },
241
+ "outerwear-trench": { label: "风衣", description: "系腰带的风衣" },
242
+ "outerwear-overcoat": { label: "羊毛大衣", description: "羊毛长大衣" },
243
+ "outerwear-puffer": { label: "羽绒服", description: "绗缝羽绒服" },
244
+ "outerwear-parka": { label: "派克大衣", description: "毛领连帽派克" },
245
+ "outerwear-cardigan": { label: "开衫", description: "前开口针织开衫" },
246
+ "outerwear-vest": { label: "马甲", description: "剪裁得体的马甲" },
247
+ "outerwear-kimono-robe": { label: "和服式罩衫", description: "飘逸的和服式罩衫" },
248
+ "outerwear-varsity": { label: "棒球外套", description: "字母刺绣棒球外套" },
249
+ "outerwear-fur-coat": { label: "毛皮大衣", description: "厚实的毛皮大衣" },
250
+
251
+ // -------------------- Legwear --------------------
252
+ "legwear-bare": { label: "光腿", description: "不穿任何袜类" },
253
+ "legwear-sheer-tights": { label: "薄丝袜", description: "肤色薄丝袜" },
254
+ "legwear-opaque-tights": { label: "厚连裤袜", description: "纯色厚连裤袜" },
255
+ "legwear-fishnets": { label: "渔网袜", description: "菱格网状渔网袜" },
256
+ "legwear-thigh-highs": { label: "及膝丝袜", description: "及大腿的丝袜" },
257
+ "legwear-lace-top-stockings":{ label: "蕾丝边丝袜", description: "上口蕾丝的及大腿丝袜" },
258
+ "legwear-knee-highs": { label: "高筒袜", description: "及膝下高筒袜" },
259
+ "legwear-crew-socks": { label: "中筒袜", description: "及小腿中部的中筒袜" },
260
+ "legwear-ankle-socks": { label: "船袜", description: "低帮船袜" },
261
+ "legwear-leg-warmers": { label: "护腿", description: "针织护腿" },
262
+
263
+ // -------------------- Footwear --------------------
264
+ "footwear-sneakers": { label: "运动鞋", description: "低帮运动鞋" },
265
+ "footwear-high-tops": { label: "高帮运动鞋", description: "高帮帆布运动鞋" },
266
+ "footwear-running-shoes": { label: "跑鞋", description: "运动跑鞋" },
267
+ "footwear-stilettos": { label: "细高跟", description: "尖头细高跟" },
268
+ "footwear-block-heels": { label: "粗跟鞋", description: "粗跟高跟鞋" },
269
+ "footwear-platforms": { label: "厚底鞋", description: "厚底高鞋底" },
270
+ "footwear-ankle-boots": { label: "短靴", description: "贴脚踝的短靴" },
271
+ "footwear-knee-boots": { label: "及膝靴", description: "及膝高的靴子" },
272
+ "footwear-thigh-high-boots": { label: "过膝靴", description: "过膝长筒靴" },
273
+ "footwear-combat-boots": { label: "马丁靴", description: "系带的战斗靴" },
274
+ "footwear-chelsea-boots": { label: "切尔西靴", description: "套穿式切尔西靴" },
275
+ "footwear-cowboy-boots": { label: "牛仔靴", description: "尖头牛仔靴" },
276
+ "footwear-loafers": { label: "乐福鞋", description: "抛光便士乐福鞋" },
277
+ "footwear-oxfords": { label: "牛津鞋", description: "系带皮质牛津鞋" },
278
+ "footwear-sandals": { label: "凉鞋", description: "平底绑带凉鞋" },
279
+ "footwear-mules": { label: "穆勒鞋", description: "无后跟的穆勒鞋" },
280
+ "footwear-flip-flops": { label: "人字拖", description: "随性的橡胶人字拖" },
281
+ "footwear-ballet-flats": { label: "芭蕾平底鞋", description: "套穿式芭蕾平底鞋" },
282
+ "footwear-barefoot": { label: "赤脚", description: "不穿鞋——赤脚" },
283
+ "footwear-crocs": { label: "卡骆驰 Crocs", description: "彩色树脂洞洞鞋,休闲风" },
284
+ "footwear-birkenstocks": { label: "勃肯凉鞋 Birkenstocks", description: "软木鞋床凉鞋" },
285
+ "footwear-doc-martens": { label: "马汀博士 Doc Martens", description: "厚实皮质战斗靴" },
286
+ "footwear-converse": { label: "匡威 Converse", description: "帆布高帮运动鞋,经典 Chuck Taylor" },
287
+ "footwear-vans": { label: "范斯 Vans", description: "一脚蹬或低帮滑板鞋" },
288
+ "footwear-espadrilles": { label: "草编鞋", description: "黄麻底帆布夏季鞋" },
289
+
290
+ // -------------------- Wardrobe State --------------------
291
+ "state-oversized": { label: "宽松超大", description: "松垮、超大版型" },
292
+ "state-fitted": { label: "贴身", description: "贴合身体的紧身廓形" },
293
+ "state-cropped": { label: "短款", description: "上衣在腰腹处剪短" },
294
+ "state-sheer": { label: "薄透", description: "半透明面料" },
295
+ "state-wet": { label: "湿身", description: "湿透贴身" },
296
+ "state-ripped": { label: "破洞", description: "撕扯破损" },
297
+ "state-distressed": { label: "做旧", description: "穿旧、褪色、风化" },
298
+ "state-vintage": { label: "复古", description: "穿过的复古质感" },
299
+ "state-tucked-in": { label: "塞进腰间", description: "上衣塞进下装" },
300
+ "state-half-tucked": { label: "半塞", description: "前面塞进、后面散开" },
301
+ "state-off-shoulder": { label: "一字肩", description: "滑落一边肩膀" },
302
+ "state-unbuttoned": { label: "敞开", description: "敞开 / 不扣扣子" },
303
+ "state-rolled-sleeves":{ label: "卷起袖子", description: "袖子卷至前臂" },
304
+ "state-layered": { label: "叠搭", description: "多层叠搭" },
305
+ }
306
+
307
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "زمن حقيقي", description: "سرعة تشغيل عادية" },
6
+ "slow-motion": { label: "Slow Motion", description: "لقطات مبطأة باعتدال" },
7
+ "super-slow-mo": { label: "Super Slow-mo", description: "لقطات بطيئة جدا" },
8
+ "time-lapse": { label: "Time-lapse", description: "زمن مضغوط، مرور سريع" },
9
+ "hyper-lapse": { label: "Hyper-lapse", description: "Time-lapse متحرك" },
10
+ "speed-ramp": { label: "Speed Ramp", description: "تغيير سرعة ديناميكي في منتصف اللقطة" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "تجميد إطار كامل", description: "كل الحركة مجمدة" },
14
+ "bullet-time": { label: "Bullet Time", description: "الموضوع مجمد، الكاميرا تدور" },
15
+ "frozen-subject": { label: "موضوع مجمد", description: "الموضوع مجمد، العالم يتحرك" },
16
+ "moving-subject": { label: "موضوع متحرك", description: "الموضوع يتحرك، العالم مجمد" },
17
+
18
+ // Direction
19
+ "forward": { label: "للأمام", description: "تشغيل عادي للأمام" },
20
+ "reverse": { label: "Reverse / Rewind", description: "الزمن يسير للخلف" },
21
+ "loop-boomerang": { label: "Loop / Boomerang", description: "للأمام ثم للخلف" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "تعريض طويل", description: "آثار حركة وخطوط ضوء" },
25
+ "crisp-shutter": { label: "Crisp Shutter", description: "حركة حادة، بدون ضبابية" },
26
+ "motion-blur": { label: "Motion Blur", description: "ضبابية اتجاهية واضحة" },
27
+ "stutter-strobe": { label: "Stutter / Strobe", description: "حركة متقطعة بأسلوب ستروبوسكوب" },
28
+ "stop-motion": { label: "Stop-motion", description: "حركة إطار-بإطار متدرجة" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,24 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ "real-time": { label: "Echtzeit", description: "Normale Wiedergabegeschwindigkeit" },
5
+ "slow-motion": { label: "Zeitlupe", description: "Moderat verlangsamtes Material" },
6
+ "super-slow-mo": { label: "Super-Zeitlupe", description: "Extrem langsames Material" },
7
+ "time-lapse": { label: "Zeitraffer", description: "Komprimierte Zeit, schneller Verlauf" },
8
+ "hyper-lapse": { label: "Hyperlapse", description: "Bewegter Zeitraffer" },
9
+ "speed-ramp": { description: "Dynamischer Geschwindigkeitswechsel mitten im Bild" },
10
+ "full-freeze": { label: "Vollständiges Standbild", description: "Alle Bewegung eingefroren" },
11
+ "bullet-time": { description: "Motiv eingefroren, Kamera kreist" },
12
+ "frozen-subject": { label: "Eingefrorenes Motiv", description: "Motiv eingefroren, Welt bewegt sich" },
13
+ "moving-subject": { label: "Bewegtes Motiv", description: "Motiv bewegt sich, Welt eingefroren" },
14
+ "forward": { label: "Vorwärts", description: "Normale Vorwärtswiedergabe" },
15
+ "reverse": { label: "Rückwärts / Zurückspulen", description: "Zeit läuft rückwärts" },
16
+ "loop-boomerang": { label: "Loop / Boomerang", description: "Vorwärts und dann rückwärts" },
17
+ "long-exposure": { label: "Langzeitbelichtung", description: "Bewegungsspuren und Streifen" },
18
+ "crisp-shutter": { label: "Knackiger Verschluss", description: "Scharfe Bewegung, keine Unschärfe" },
19
+ "motion-blur": { label: "Bewegungsunschärfe", description: "Ausgeprägte Richtungsunschärfe" },
20
+ "stutter-strobe": { label: "Stutter / Strobe", description: "Stroboskop-effekt-ruckartige Bewegung" },
21
+ "stop-motion": { label: "Stop-Motion", description: "Schrittweise Bild-für-Bild-Bewegung" },
22
+ }
23
+
24
+ export default map
@@ -0,0 +1,27 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ "real-time": { label: "Tiempo Real", description: "Velocidad de reproducción normal" },
5
+ "slow-motion": { label: "Cámara Lenta", description: "Material moderadamente ralentizado" },
6
+ "super-slow-mo": { label: "Súper Cámara Lenta", description: "Material extremadamente ralentizado" },
7
+ "time-lapse": { label: "Time-lapse", description: "Tiempo comprimido, paso rápido" },
8
+ "hyper-lapse": { label: "Hyperlapse", description: "Time-lapse en movimiento" },
9
+ "speed-ramp": { label: "Rampa de Velocidad", description: "Cambio dinámico de velocidad a media toma" },
10
+
11
+ "full-freeze": { label: "Congelado Total", description: "Todo el movimiento congelado" },
12
+ "bullet-time": { label: "Bullet Time", description: "Sujeto congelado, cámara orbita" },
13
+ "frozen-subject": { label: "Sujeto Congelado", description: "Sujeto congelado, mundo se mueve" },
14
+ "moving-subject": { label: "Sujeto en Movimiento", description: "Sujeto se mueve, mundo congelado" },
15
+
16
+ "forward": { label: "Hacia Adelante", description: "Reproducción normal hacia adelante" },
17
+ "reverse": { label: "Reverso / Rebobinar", description: "El tiempo se reproduce hacia atrás" },
18
+ "loop-boomerang": { label: "Bucle / Boomerang", description: "Hacia adelante y luego en reversa" },
19
+
20
+ "long-exposure": { label: "Larga Exposición", description: "Estelas y rastros de movimiento" },
21
+ "crisp-shutter": { label: "Obturador Nítido", description: "Movimiento nítido, sin desenfoque" },
22
+ "motion-blur": { label: "Desenfoque de Movimiento", description: "Desenfoque direccional pronunciado" },
23
+ "stutter-strobe": { label: "Stutter / Estrobo", description: "Movimiento entrecortado tipo estrobo" },
24
+ "stop-motion": { label: "Stop-motion", description: "Movimiento por pasos cuadro a cuadro" },
25
+ }
26
+
27
+ export default map
@@ -0,0 +1,28 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "Temps réel", description: "Vitesse de lecture normale" },
6
+ "slow-motion": { label: "Ralenti", description: "Métrage modérément ralenti" },
7
+ "super-slow-mo": { label: "Super ralenti", description: "Métrage extrêmement ralenti" },
8
+ "time-lapse": { label: "Time-lapse", description: "Temps compressé, passage rapide" },
9
+ "hyper-lapse": { label: "Hyperlapse", description: "Time-lapse en mouvement" },
10
+ "speed-ramp": { description: "Changement de vitesse dynamique en cours de plan" },
11
+ // Freeze
12
+ "full-freeze": { label: "Arrêt sur image complet", description: "Tout mouvement figé" },
13
+ "bullet-time": { description: "Sujet figé, caméra en orbite" },
14
+ "frozen-subject": { label: "Sujet figé", description: "Sujet figé, monde en mouvement" },
15
+ "moving-subject": { label: "Sujet en mouvement", description: "Sujet en mouvement, monde figé" },
16
+ // Direction
17
+ "forward": { label: "Avant", description: "Lecture avant normale" },
18
+ "reverse": { label: "Inverse / Rembobinage", description: "Le temps s'écoule à l'envers" },
19
+ "loop-boomerang": { label: "Boucle / Boomerang", description: "Avant puis arrière" },
20
+ // Shutter
21
+ "long-exposure": { label: "Pose longue", description: "Filés de mouvement et traînées" },
22
+ "crisp-shutter": { label: "Obturation nette", description: "Mouvement net, pas de flou" },
23
+ "motion-blur": { description: "Flou directionnel prononcé" },
24
+ "stutter-strobe": { label: "Saccadé / Strobe", description: "Mouvement saccadé style stroboscope" },
25
+ "stop-motion": { description: "Mouvement image par image" },
26
+ }
27
+
28
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "זמן אמת", description: "מהירות נגינה רגילה" },
6
+ "slow-motion": { label: "Slow Motion", description: "צילום מואט באופן מתון" },
7
+ "super-slow-mo": { label: "Super Slow-mo", description: "צילום איטי במיוחד" },
8
+ "time-lapse": { label: "Time-lapse", description: "זמן דחוס, מעבר מהיר" },
9
+ "hyper-lapse": { label: "Hyper-lapse", description: "Time-lapse בתנועה" },
10
+ "speed-ramp": { label: "Speed Ramp", description: "שינוי מהירות דינמי באמצע צילום" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "הקפאת פריים מלאה", description: "כל התנועה קפואה" },
14
+ "bullet-time": { label: "Bullet Time", description: "סובייקט קפוא, מצלמה מקיפה" },
15
+ "frozen-subject": { label: "סובייקט קפוא", description: "סובייקט קפוא, עולם נע" },
16
+ "moving-subject": { label: "סובייקט נע", description: "סובייקט נע, עולם קפוא" },
17
+
18
+ // Direction
19
+ "forward": { label: "קדימה", description: "נגינה קדימה רגילה" },
20
+ "reverse": { label: "Reverse / Rewind", description: "זמן מתנגן לאחור" },
21
+ "loop-boomerang": { label: "Loop / Boomerang", description: "קדימה ואז לאחור" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "חשיפה ארוכה", description: "שבילי תנועה ופסים" },
25
+ "crisp-shutter": { label: "Crisp Shutter", description: "תנועה חדה, ללא טשטוש" },
26
+ "motion-blur": { label: "Motion Blur", description: "טשטוש כיווני בולט" },
27
+ "stutter-strobe": { label: "Stutter / Strobe", description: "תנועה קופצנית בסגנון סטרובוסקופ" },
28
+ "stop-motion": { label: "Stop-motion", description: "תנועת פריים-אחר-פריים מדורגת" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "Real-time", description: "सामान्य playback गति" },
6
+ "slow-motion": { label: "Slow Motion", description: "मध्यम रूप से धीमी की गई footage" },
7
+ "super-slow-mo": { label: "Super Slow-mo", description: "अत्यधिक धीमी footage" },
8
+ "time-lapse": { label: "Time-lapse", description: "Compressed समय, तेज़ बीताव" },
9
+ "hyper-lapse": { label: "Hyper-lapse", description: "चलती हुई time-lapse" },
10
+ "speed-ramp": { label: "Speed Ramp", description: "Mid-shot में dynamic गति परिवर्तन" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "Full Freeze-frame", description: "सारी गति जमी हुई" },
14
+ "bullet-time": { label: "Bullet Time", description: "Subject जमा हुआ, camera घूमता है" },
15
+ "frozen-subject": { label: "Frozen Subject", description: "Subject जमा हुआ, दुनिया चलती है" },
16
+ "moving-subject": { label: "Moving Subject", description: "Subject चलता है, दुनिया जमी हुई" },
17
+
18
+ // Direction
19
+ "forward": { label: "Forward", description: "सामान्य आगे की playback" },
20
+ "reverse": { label: "Reverse / Rewind", description: "समय पीछे की ओर चलता है" },
21
+ "loop-boomerang": { label: "Loop / Boomerang", description: "आगे फिर पीछे" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "Long Exposure", description: "गति trails और streaks" },
25
+ "crisp-shutter": { label: "Crisp Shutter", description: "तेज़ गति, कोई blur नहीं" },
26
+ "motion-blur": { label: "Motion Blur", description: "स्पष्ट दिशात्मक blur" },
27
+ "stutter-strobe": { label: "Stutter / Strobe", description: "Strobe-effect झटकेदार गति" },
28
+ "stop-motion": { label: "Stop-motion", description: "Stepped frame-by-frame गति" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "リアルタイム", description: "通常の再生速度" },
6
+ "slow-motion": { label: "スローモーション", description: "中程度に減速した映像" },
7
+ "super-slow-mo": { label: "スーパースロー", description: "極端に遅くした映像" },
8
+ "time-lapse": { label: "タイムラプス", description: "時間を圧縮した、速い経過" },
9
+ "hyper-lapse": { label: "ハイパーラプス", description: "移動するタイムラプス" },
10
+ "speed-ramp": { label: "スピードランプ", description: "ショット中のダイナミックな速度変化" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "完全フリーズフレーム", description: "すべての動きが止まる" },
14
+ "bullet-time": { label: "バレットタイム", description: "被写体が静止し、カメラが旋回" },
15
+ "frozen-subject": { label: "静止する被写体", description: "被写体は静止、世界は動く" },
16
+ "moving-subject": { label: "動く被写体", description: "被写体は動き、世界は静止" },
17
+
18
+ // Direction
19
+ "forward": { label: "順送り", description: "通常の順方向再生" },
20
+ "reverse": { label: "リバース/巻き戻し", description: "時間が逆方向に流れる" },
21
+ "loop-boomerang": { label: "ループ/ブーメラン", description: "順方向の後に逆方向" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "長時間露光", description: "モーショントレイルとストリーク" },
25
+ "crisp-shutter": { label: "シャープシャッター", description: "シャープな動き、ブレなし" },
26
+ "motion-blur": { label: "モーションブラー", description: "顕著な方向性のあるブラー" },
27
+ "stutter-strobe": { label: "スタッター/ストロボ", description: "ストロボ効果のカクついた動き" },
28
+ "stop-motion": { label: "ストップモーション", description: "段階的なフレームごとの動き" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "실시간", description: "정상 재생 속도입니다" },
6
+ "slow-motion": { label: "슬로우 모션", description: "적당히 느린 영상입니다" },
7
+ "super-slow-mo": { label: "슈퍼 슬로우모", description: "극단적으로 느린 영상입니다" },
8
+ "time-lapse": { label: "타임랩스", description: "시간이 압축되어 빠르게 흐릅니다" },
9
+ "hyper-lapse": { label: "하이퍼랩스", description: "이동하는 타임랩스입니다" },
10
+ "speed-ramp": { label: "스피드 램프", description: "샷 중간의 다이내믹한 속도 변화입니다" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "풀 프리즈 프레임", description: "모든 동작이 정지됩니다" },
14
+ "bullet-time": { label: "불릿 타임", description: "피사체는 정지하고 카메라가 회전합니다" },
15
+ "frozen-subject": { label: "정지된 피사체", description: "피사체는 정지하고 세상은 움직입니다" },
16
+ "moving-subject": { label: "움직이는 피사체", description: "피사체는 움직이고 세상은 정지됩니다" },
17
+
18
+ // Direction
19
+ "forward": { label: "정방향", description: "정상적인 정방향 재생입니다" },
20
+ "reverse": { label: "역방향 / 되감기", description: "시간이 거꾸로 재생됩니다" },
21
+ "loop-boomerang": { label: "루프 / 부메랑", description: "정방향 후 역방향 재생입니다" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "장노출", description: "모션 트레일과 광선 흔적입니다" },
25
+ "crisp-shutter": { label: "선명한 셔터", description: "블러 없는 또렷한 동작입니다" },
26
+ "motion-blur": { label: "모션 블러", description: "두드러진 방향성 블러입니다" },
27
+ "stutter-strobe": { label: "스터터 / 스트로브", description: "스트로브 효과의 끊기는 동작입니다" },
28
+ "stop-motion": { label: "스톱 모션", description: "프레임 단위로 끊어지는 동작입니다" },
29
+ }
30
+
31
+ export default map
@@ -0,0 +1,31 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Speed
5
+ "real-time": { label: "Tempo Real", description: "Velocidade normal de reprodução" },
6
+ "slow-motion": { label: "Câmera Lenta", description: "Imagem moderadamente desacelerada" },
7
+ "super-slow-mo": { label: "Super Slow-mo", description: "Imagem extremamente lenta" },
8
+ "time-lapse": { description: "Tempo comprimido, passagem rápida" },
9
+ "hyper-lapse": { description: "Time-lapse em movimento" },
10
+ "speed-ramp": { description: "Mudança dinâmica de velocidade no meio do plano" },
11
+
12
+ // Freeze
13
+ "full-freeze": { label: "Congelamento Total", description: "Todo movimento congelado" },
14
+ "bullet-time": { description: "Sujeito congelado, câmera orbita" },
15
+ "frozen-subject": { label: "Sujeito Congelado", description: "Sujeito parado, mundo se move" },
16
+ "moving-subject": { label: "Sujeito em Movimento", description: "Sujeito se move, mundo congelado" },
17
+
18
+ // Direction
19
+ "forward": { label: "Para Frente", description: "Reprodução normal para frente" },
20
+ "reverse": { label: "Reverso / Voltando", description: "Tempo correndo para trás" },
21
+ "loop-boomerang": { label: "Loop / Boomerang", description: "Avança e depois volta" },
22
+
23
+ // Shutter
24
+ "long-exposure": { label: "Longa Exposição", description: "Rastros e riscos de movimento" },
25
+ "crisp-shutter": { label: "Obturador Nítido", description: "Movimento nítido, sem desfoque" },
26
+ "motion-blur": { description: "Desfoque direcional acentuado" },
27
+ "stutter-strobe": { label: "Stutter / Estroboscópio", description: "Movimento estroboscópico, picotado" },
28
+ "stop-motion": { description: "Movimento em passos quadro a quadro" },
29
+ }
30
+
31
+ export default map