@nodaro/shared 1.4.1
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.
- package/LICENSE +202 -0
- package/README.md +32 -0
- package/dist/index.cjs +12506 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +12269 -0
- package/dist/index.d.ts +12269 -0
- package/dist/index.js +11831 -0
- package/dist/index.js.map +1 -0
- package/package.json +54 -0
- package/src/__tests__/__snapshots__/prompt-builder-segments.test.ts.snap +65 -0
- package/src/__tests__/ai-avatar-pricing.test.ts +321 -0
- package/src/__tests__/apply-video-negative-prompt.test.ts +76 -0
- package/src/__tests__/attach-columns.test.ts +28 -0
- package/src/__tests__/audio-crossfade-curves.test.ts +33 -0
- package/src/__tests__/build-model-menu.test.ts +58 -0
- package/src/__tests__/character-aspect-defaults.test.ts +142 -0
- package/src/__tests__/character-mention-slug.test.ts +199 -0
- package/src/__tests__/character-reference-photo-kinds.test.ts +32 -0
- package/src/__tests__/character-usage-mode.test.ts +147 -0
- package/src/__tests__/character-variant-assets.test.ts +142 -0
- package/src/__tests__/character-voice.test.ts +130 -0
- package/src/__tests__/cinematic-avatar-pricing.test.ts +119 -0
- package/src/__tests__/combine-transitions.test.ts +137 -0
- package/src/__tests__/component-types.test.ts +87 -0
- package/src/__tests__/condition-variables.test.ts +98 -0
- package/src/__tests__/credit-identifiers.test.ts +811 -0
- package/src/__tests__/default-video-provider.test.ts +63 -0
- package/src/__tests__/entity-image-handle.test.ts +43 -0
- package/src/__tests__/entity-variants.test.ts +33 -0
- package/src/__tests__/fal-lip-sync-sets.test.ts +31 -0
- package/src/__tests__/featured-entities.test.ts +33 -0
- package/src/__tests__/film-pricing.test.ts +64 -0
- package/src/__tests__/filter-condition.test.ts +285 -0
- package/src/__tests__/freecut-protocol.test.ts +35 -0
- package/src/__tests__/generate-text-items.test.ts +19 -0
- package/src/__tests__/generated-results.test.ts +50 -0
- package/src/__tests__/graph-utils.test.ts +618 -0
- package/src/__tests__/group-aggregation.test.ts +83 -0
- package/src/__tests__/i18n-locale-completeness.test.ts +156 -0
- package/src/__tests__/image-critic-node.test.ts +86 -0
- package/src/__tests__/image-mask-mode.test.ts +16 -0
- package/src/__tests__/image-ref-limit.test.ts +78 -0
- package/src/__tests__/inpaint-region.test.ts +24 -0
- package/src/__tests__/input-field-map-parity.test.ts +30 -0
- package/src/__tests__/json-evaluator.test.ts +289 -0
- package/src/__tests__/json-path.test.ts +64 -0
- package/src/__tests__/lip-sync-pricing.test.ts +142 -0
- package/src/__tests__/list-merge.test.ts +96 -0
- package/src/__tests__/list-sort.test.ts +134 -0
- package/src/__tests__/llm-models.test.ts +445 -0
- package/src/__tests__/location-mention-slug.test.ts +246 -0
- package/src/__tests__/locations-coverage-critic-schema.test.ts +92 -0
- package/src/__tests__/loop-delimiter.test.ts +39 -0
- package/src/__tests__/lottie-slots.test.ts +245 -0
- package/src/__tests__/model-catalog-flux2-resolutions.test.ts +21 -0
- package/src/__tests__/model-constants-location.test.ts +20 -0
- package/src/__tests__/model-constants.test.ts +122 -0
- package/src/__tests__/model-tree.test.ts +86 -0
- package/src/__tests__/no-internal-imports.test.ts +25 -0
- package/src/__tests__/node-default-mappings.test.ts +175 -0
- package/src/__tests__/node-mappable-fields.test.ts +7 -0
- package/src/__tests__/node-preset-export.test.ts +46 -0
- package/src/__tests__/node-preset-extract.test.ts +166 -0
- package/src/__tests__/node-refs-canonical.test.ts +54 -0
- package/src/__tests__/node-refs-combine.test.ts +54 -0
- package/src/__tests__/node-refs.test.ts +187 -0
- package/src/__tests__/node-runtime-keys.test.ts +99 -0
- package/src/__tests__/object-aspect-defaults.test.ts +59 -0
- package/src/__tests__/parameter-node-value.test.ts +137 -0
- package/src/__tests__/pinterest-url.test.ts +35 -0
- package/src/__tests__/pipeline-chat.test.ts +110 -0
- package/src/__tests__/pipeline-validation.test.ts +98 -0
- package/src/__tests__/presentation-utils.test.ts +1137 -0
- package/src/__tests__/producer-types.test.ts +47 -0
- package/src/__tests__/prompt-length-limits.test.ts +156 -0
- package/src/__tests__/provider-directive-defaults.test.ts +46 -0
- package/src/__tests__/reduce-strategy-registry.test.ts +43 -0
- package/src/__tests__/reference-board-templates.test.ts +33 -0
- package/src/__tests__/reference-roles.test.ts +36 -0
- package/src/__tests__/resolve-field-mappings.test.ts +110 -0
- package/src/__tests__/resolve-pipeline-model.test.ts +76 -0
- package/src/__tests__/scene-node-types.test.ts +80 -0
- package/src/__tests__/scraper-actors.test.ts +67 -0
- package/src/__tests__/seedance-2-catalog.test.ts +18 -0
- package/src/__tests__/seedance-2-credit-id.test.ts +23 -0
- package/src/__tests__/seedance-aspects.test.ts +52 -0
- package/src/__tests__/selector.test.ts +1151 -0
- package/src/__tests__/settled-with-limit.test.ts +214 -0
- package/src/__tests__/social-media-specs.test.ts +129 -0
- package/src/__tests__/sub-workflow-validation.test.ts +88 -0
- package/src/__tests__/switchx-pricing.test.ts +28 -0
- package/src/__tests__/to-connected-references.test.ts +153 -0
- package/src/__tests__/utilities.test.ts +541 -0
- package/src/__tests__/video-analysis-pricing.test.ts +58 -0
- package/src/__tests__/video-analysis.test.ts +63 -0
- package/src/__tests__/video-audio-capability.test.ts +204 -0
- package/src/__tests__/video-gen-providers.test.ts +28 -0
- package/src/__tests__/video-mode-aliases.test.ts +150 -0
- package/src/__tests__/video-ref-limits.test.ts +72 -0
- package/src/__tests__/video-utils.test.ts +303 -0
- package/src/__tests__/voice-changer-models.test.ts +33 -0
- package/src/__tests__/workflow-export-strip.test.ts +46 -0
- package/src/ai-avatar-pricing.ts +213 -0
- package/src/ancestor-refs.ts +48 -0
- package/src/animals.ts +231 -0
- package/src/audio-crossfade-curves.ts +73 -0
- package/src/audio-fx-presets.ts +64 -0
- package/src/avatar-payload-validators.ts +214 -0
- package/src/caption-styles.ts +31 -0
- package/src/character-aspect-defaults.ts +102 -0
- package/src/character-facets.ts +37 -0
- package/src/character-mention-slug.ts +166 -0
- package/src/character-usage-mode.ts +109 -0
- package/src/character-variant-assets.ts +121 -0
- package/src/character-voice.ts +151 -0
- package/src/cinematic-avatar-pricing.ts +111 -0
- package/src/clone-utils.ts +46 -0
- package/src/combine-transitions.ts +482 -0
- package/src/community.ts +112 -0
- package/src/component-types.ts +127 -0
- package/src/condition-variables.ts +65 -0
- package/src/credit-estimators/index.ts +15 -0
- package/src/credit-estimators/video-utils.ts +165 -0
- package/src/credit-identifiers.ts +304 -0
- package/src/entity-approval-types.ts +31 -0
- package/src/entity-aspect-defaults.ts +82 -0
- package/src/entity-asset-types.ts +296 -0
- package/src/entity-image-handle.ts +36 -0
- package/src/extra-refs.ts +139 -0
- package/src/featured-entities.ts +136 -0
- package/src/film-pricing.ts +117 -0
- package/src/filter-condition.ts +250 -0
- package/src/flux2-pricing.ts +18 -0
- package/src/freecut-protocol.ts +52 -0
- package/src/furniture.ts +167 -0
- package/src/generate-text-items.ts +15 -0
- package/src/generated-results.ts +63 -0
- package/src/group-aggregation.ts +75 -0
- package/src/hint-graph-types.ts +18 -0
- package/src/i18n/action-fx.ar.ts +89 -0
- package/src/i18n/action-fx.de.ts +89 -0
- package/src/i18n/action-fx.es.ts +89 -0
- package/src/i18n/action-fx.fr.ts +89 -0
- package/src/i18n/action-fx.he.ts +89 -0
- package/src/i18n/action-fx.hi.ts +89 -0
- package/src/i18n/action-fx.ja.ts +89 -0
- package/src/i18n/action-fx.ko.ts +89 -0
- package/src/i18n/action-fx.pt-BR.ts +89 -0
- package/src/i18n/action-fx.ru.ts +89 -0
- package/src/i18n/action-fx.zh-CN.ts +89 -0
- package/src/i18n/aesthetic.ar.ts +170 -0
- package/src/i18n/aesthetic.de.ts +48 -0
- package/src/i18n/aesthetic.es.ts +169 -0
- package/src/i18n/aesthetic.fr.ts +52 -0
- package/src/i18n/aesthetic.he.ts +169 -0
- package/src/i18n/aesthetic.hi.ts +55 -0
- package/src/i18n/aesthetic.ja.ts +165 -0
- package/src/i18n/aesthetic.ko.ts +169 -0
- package/src/i18n/aesthetic.pt-BR.ts +148 -0
- package/src/i18n/aesthetic.ru.ts +155 -0
- package/src/i18n/aesthetic.zh-CN.ts +172 -0
- package/src/i18n/animals.ar.ts +145 -0
- package/src/i18n/animals.de.ts +144 -0
- package/src/i18n/animals.es.ts +158 -0
- package/src/i18n/animals.fr.ts +144 -0
- package/src/i18n/animals.he.ts +155 -0
- package/src/i18n/animals.hi.ts +157 -0
- package/src/i18n/animals.ja.ts +159 -0
- package/src/i18n/animals.ko.ts +159 -0
- package/src/i18n/animals.pt-BR.ts +157 -0
- package/src/i18n/animals.ru.ts +155 -0
- package/src/i18n/animals.zh-CN.ts +155 -0
- package/src/i18n/atmosphere.ar.ts +49 -0
- package/src/i18n/atmosphere.de.ts +47 -0
- package/src/i18n/atmosphere.es.ts +50 -0
- package/src/i18n/atmosphere.fr.ts +47 -0
- package/src/i18n/atmosphere.he.ts +47 -0
- package/src/i18n/atmosphere.hi.ts +49 -0
- package/src/i18n/atmosphere.ja.ts +49 -0
- package/src/i18n/atmosphere.ko.ts +49 -0
- package/src/i18n/atmosphere.pt-BR.ts +49 -0
- package/src/i18n/atmosphere.ru.ts +47 -0
- package/src/i18n/atmosphere.zh-CN.ts +152 -0
- package/src/i18n/backdrop.ar.ts +53 -0
- package/src/i18n/backdrop.de.ts +46 -0
- package/src/i18n/backdrop.es.ts +54 -0
- package/src/i18n/backdrop.fr.ts +52 -0
- package/src/i18n/backdrop.he.ts +51 -0
- package/src/i18n/backdrop.hi.ts +59 -0
- package/src/i18n/backdrop.ja.ts +61 -0
- package/src/i18n/backdrop.ko.ts +59 -0
- package/src/i18n/backdrop.pt-BR.ts +59 -0
- package/src/i18n/backdrop.ru.ts +57 -0
- package/src/i18n/backdrop.zh-CN.ts +57 -0
- package/src/i18n/camera-format.ar.ts +40 -0
- package/src/i18n/camera-format.de.ts +37 -0
- package/src/i18n/camera-format.es.ts +41 -0
- package/src/i18n/camera-format.fr.ts +37 -0
- package/src/i18n/camera-format.he.ts +37 -0
- package/src/i18n/camera-format.hi.ts +42 -0
- package/src/i18n/camera-format.ja.ts +37 -0
- package/src/i18n/camera-format.ko.ts +37 -0
- package/src/i18n/camera-format.pt-BR.ts +46 -0
- package/src/i18n/camera-format.ru.ts +42 -0
- package/src/i18n/camera-format.zh-CN.ts +42 -0
- package/src/i18n/camera-motions.ar.ts +86 -0
- package/src/i18n/camera-motions.de.ts +74 -0
- package/src/i18n/camera-motions.es.ts +86 -0
- package/src/i18n/camera-motions.fr.ts +86 -0
- package/src/i18n/camera-motions.he.ts +86 -0
- package/src/i18n/camera-motions.hi.ts +99 -0
- package/src/i18n/camera-motions.ja.ts +99 -0
- package/src/i18n/camera-motions.ko.ts +99 -0
- package/src/i18n/camera-motions.pt-BR.ts +99 -0
- package/src/i18n/camera-motions.ru.ts +99 -0
- package/src/i18n/camera-motions.zh-CN.ts +99 -0
- package/src/i18n/character-fx.ar.ts +72 -0
- package/src/i18n/character-fx.de.ts +72 -0
- package/src/i18n/character-fx.es.ts +72 -0
- package/src/i18n/character-fx.fr.ts +72 -0
- package/src/i18n/character-fx.he.ts +72 -0
- package/src/i18n/character-fx.hi.ts +72 -0
- package/src/i18n/character-fx.ja.ts +72 -0
- package/src/i18n/character-fx.ko.ts +72 -0
- package/src/i18n/character-fx.pt-BR.ts +72 -0
- package/src/i18n/character-fx.ru.ts +72 -0
- package/src/i18n/character-fx.zh-CN.ts +72 -0
- package/src/i18n/color-look.ar.ts +50 -0
- package/src/i18n/color-look.de.ts +47 -0
- package/src/i18n/color-look.es.ts +50 -0
- package/src/i18n/color-look.fr.ts +50 -0
- package/src/i18n/color-look.he.ts +49 -0
- package/src/i18n/color-look.hi.ts +52 -0
- package/src/i18n/color-look.ja.ts +54 -0
- package/src/i18n/color-look.ko.ts +54 -0
- package/src/i18n/color-look.pt-BR.ts +54 -0
- package/src/i18n/color-look.ru.ts +52 -0
- package/src/i18n/color-look.zh-CN.ts +53 -0
- package/src/i18n/composition-effects.ar.ts +26 -0
- package/src/i18n/composition-effects.de.ts +25 -0
- package/src/i18n/composition-effects.es.ts +27 -0
- package/src/i18n/composition-effects.fr.ts +25 -0
- package/src/i18n/composition-effects.he.ts +25 -0
- package/src/i18n/composition-effects.hi.ts +27 -0
- package/src/i18n/composition-effects.ja.ts +27 -0
- package/src/i18n/composition-effects.ko.ts +27 -0
- package/src/i18n/composition-effects.pt-BR.ts +25 -0
- package/src/i18n/composition-effects.ru.ts +82 -0
- package/src/i18n/composition-effects.zh-CN.ts +25 -0
- package/src/i18n/era.ar.ts +37 -0
- package/src/i18n/era.de.ts +34 -0
- package/src/i18n/era.es.ts +37 -0
- package/src/i18n/era.fr.ts +37 -0
- package/src/i18n/era.he.ts +36 -0
- package/src/i18n/era.hi.ts +39 -0
- package/src/i18n/era.ja.ts +41 -0
- package/src/i18n/era.ko.ts +39 -0
- package/src/i18n/era.pt-BR.ts +41 -0
- package/src/i18n/era.ru.ts +121 -0
- package/src/i18n/era.zh-CN.ts +39 -0
- package/src/i18n/exposure-settings.ar.ts +28 -0
- package/src/i18n/exposure-settings.de.ts +26 -0
- package/src/i18n/exposure-settings.es.ts +28 -0
- package/src/i18n/exposure-settings.fr.ts +29 -0
- package/src/i18n/exposure-settings.he.ts +28 -0
- package/src/i18n/exposure-settings.hi.ts +31 -0
- package/src/i18n/exposure-settings.ja.ts +31 -0
- package/src/i18n/exposure-settings.ko.ts +31 -0
- package/src/i18n/exposure-settings.pt-BR.ts +31 -0
- package/src/i18n/exposure-settings.ru.ts +31 -0
- package/src/i18n/exposure-settings.zh-CN.ts +31 -0
- package/src/i18n/framing.ar.ts +78 -0
- package/src/i18n/framing.de.ts +73 -0
- package/src/i18n/framing.es.ts +78 -0
- package/src/i18n/framing.fr.ts +78 -0
- package/src/i18n/framing.he.ts +77 -0
- package/src/i18n/framing.hi.ts +82 -0
- package/src/i18n/framing.ja.ts +84 -0
- package/src/i18n/framing.ko.ts +82 -0
- package/src/i18n/framing.pt-BR.ts +84 -0
- package/src/i18n/framing.ru.ts +82 -0
- package/src/i18n/framing.zh-CN.ts +82 -0
- package/src/i18n/furniture.ar.ts +92 -0
- package/src/i18n/furniture.de.ts +93 -0
- package/src/i18n/furniture.es.ts +101 -0
- package/src/i18n/furniture.fr.ts +93 -0
- package/src/i18n/furniture.he.ts +101 -0
- package/src/i18n/furniture.hi.ts +101 -0
- package/src/i18n/furniture.ja.ts +101 -0
- package/src/i18n/furniture.ko.ts +101 -0
- package/src/i18n/furniture.pt-BR.ts +101 -0
- package/src/i18n/furniture.ru.ts +101 -0
- package/src/i18n/furniture.zh-CN.ts +101 -0
- package/src/i18n/held-prop.ar.ts +74 -0
- package/src/i18n/held-prop.de.ts +65 -0
- package/src/i18n/held-prop.es.ts +83 -0
- package/src/i18n/held-prop.fr.ts +74 -0
- package/src/i18n/held-prop.he.ts +73 -0
- package/src/i18n/held-prop.hi.ts +82 -0
- package/src/i18n/held-prop.ja.ts +84 -0
- package/src/i18n/held-prop.ko.ts +84 -0
- package/src/i18n/held-prop.pt-BR.ts +84 -0
- package/src/i18n/held-prop.ru.ts +82 -0
- package/src/i18n/held-prop.zh-CN.ts +82 -0
- package/src/i18n/index.ts +208 -0
- package/src/i18n/instrumentation.ar.ts +195 -0
- package/src/i18n/instrumentation.de.ts +195 -0
- package/src/i18n/instrumentation.es.ts +195 -0
- package/src/i18n/instrumentation.fr.ts +195 -0
- package/src/i18n/instrumentation.he.ts +195 -0
- package/src/i18n/instrumentation.hi.ts +195 -0
- package/src/i18n/instrumentation.ja.ts +195 -0
- package/src/i18n/instrumentation.ko.ts +195 -0
- package/src/i18n/instrumentation.pt-BR.ts +195 -0
- package/src/i18n/instrumentation.ru.ts +195 -0
- package/src/i18n/instrumentation.zh-CN.ts +195 -0
- package/src/i18n/lens.ar.ts +24 -0
- package/src/i18n/lens.de.ts +24 -0
- package/src/i18n/lens.es.ts +24 -0
- package/src/i18n/lens.fr.ts +24 -0
- package/src/i18n/lens.he.ts +24 -0
- package/src/i18n/lens.hi.ts +24 -0
- package/src/i18n/lens.ja.ts +24 -0
- package/src/i18n/lens.ko.ts +24 -0
- package/src/i18n/lens.pt-BR.ts +24 -0
- package/src/i18n/lens.ru.ts +25 -0
- package/src/i18n/lens.zh-CN.ts +24 -0
- package/src/i18n/lighting.ar.ts +86 -0
- package/src/i18n/lighting.de.ts +84 -0
- package/src/i18n/lighting.es.ts +89 -0
- package/src/i18n/lighting.fr.ts +84 -0
- package/src/i18n/lighting.he.ts +88 -0
- package/src/i18n/lighting.hi.ts +90 -0
- package/src/i18n/lighting.ja.ts +90 -0
- package/src/i18n/lighting.ko.ts +90 -0
- package/src/i18n/lighting.pt-BR.ts +90 -0
- package/src/i18n/lighting.ru.ts +88 -0
- package/src/i18n/lighting.zh-CN.ts +92 -0
- package/src/i18n/loop-subject.ar.ts +39 -0
- package/src/i18n/loop-subject.de.ts +39 -0
- package/src/i18n/loop-subject.es.ts +39 -0
- package/src/i18n/loop-subject.fr.ts +39 -0
- package/src/i18n/loop-subject.he.ts +39 -0
- package/src/i18n/loop-subject.hi.ts +39 -0
- package/src/i18n/loop-subject.ja.ts +39 -0
- package/src/i18n/loop-subject.ko.ts +39 -0
- package/src/i18n/loop-subject.pt-BR.ts +39 -0
- package/src/i18n/loop-subject.ru.ts +39 -0
- package/src/i18n/loop-subject.zh-CN.ts +39 -0
- package/src/i18n/materials.ar.ts +80 -0
- package/src/i18n/materials.de.ts +80 -0
- package/src/i18n/materials.es.ts +87 -0
- package/src/i18n/materials.fr.ts +80 -0
- package/src/i18n/materials.he.ts +86 -0
- package/src/i18n/materials.hi.ts +86 -0
- package/src/i18n/materials.ja.ts +88 -0
- package/src/i18n/materials.ko.ts +88 -0
- package/src/i18n/materials.pt-BR.ts +88 -0
- package/src/i18n/materials.ru.ts +86 -0
- package/src/i18n/materials.zh-CN.ts +86 -0
- package/src/i18n/mood.ar.ts +61 -0
- package/src/i18n/mood.de.ts +61 -0
- package/src/i18n/mood.es.ts +66 -0
- package/src/i18n/mood.fr.ts +61 -0
- package/src/i18n/mood.he.ts +64 -0
- package/src/i18n/mood.hi.ts +66 -0
- package/src/i18n/mood.ja.ts +66 -0
- package/src/i18n/mood.ko.ts +66 -0
- package/src/i18n/mood.pt-BR.ts +64 -0
- package/src/i18n/mood.ru.ts +64 -0
- package/src/i18n/mood.zh-CN.ts +64 -0
- package/src/i18n/music-genre.ar.ts +302 -0
- package/src/i18n/music-genre.de.ts +302 -0
- package/src/i18n/music-genre.es.ts +302 -0
- package/src/i18n/music-genre.fr.ts +302 -0
- package/src/i18n/music-genre.he.ts +302 -0
- package/src/i18n/music-genre.hi.ts +302 -0
- package/src/i18n/music-genre.ja.ts +302 -0
- package/src/i18n/music-genre.ko.ts +302 -0
- package/src/i18n/music-genre.pt-BR.ts +302 -0
- package/src/i18n/music-genre.ru.ts +302 -0
- package/src/i18n/music-genre.zh-CN.ts +302 -0
- package/src/i18n/music-mood.ar.ts +75 -0
- package/src/i18n/music-mood.de.ts +75 -0
- package/src/i18n/music-mood.es.ts +75 -0
- package/src/i18n/music-mood.fr.ts +75 -0
- package/src/i18n/music-mood.he.ts +75 -0
- package/src/i18n/music-mood.hi.ts +75 -0
- package/src/i18n/music-mood.ja.ts +75 -0
- package/src/i18n/music-mood.ko.ts +75 -0
- package/src/i18n/music-mood.pt-BR.ts +75 -0
- package/src/i18n/music-mood.ru.ts +75 -0
- package/src/i18n/music-mood.zh-CN.ts +75 -0
- package/src/i18n/person.ar.ts +638 -0
- package/src/i18n/person.de.ts +629 -0
- package/src/i18n/person.es.ts +645 -0
- package/src/i18n/person.fr.ts +621 -0
- package/src/i18n/person.he.ts +656 -0
- package/src/i18n/person.hi.ts +654 -0
- package/src/i18n/person.ja.ts +662 -0
- package/src/i18n/person.ko.ts +662 -0
- package/src/i18n/person.pt-BR.ts +656 -0
- package/src/i18n/person.ru.ts +656 -0
- package/src/i18n/person.zh-CN.ts +656 -0
- package/src/i18n/photo-genre.ar.ts +58 -0
- package/src/i18n/photo-genre.de.ts +52 -0
- package/src/i18n/photo-genre.es.ts +64 -0
- package/src/i18n/photo-genre.fr.ts +58 -0
- package/src/i18n/photo-genre.he.ts +62 -0
- package/src/i18n/photo-genre.hi.ts +63 -0
- package/src/i18n/photo-genre.ja.ts +65 -0
- package/src/i18n/photo-genre.ko.ts +63 -0
- package/src/i18n/photo-genre.pt-BR.ts +65 -0
- package/src/i18n/photo-genre.ru.ts +63 -0
- package/src/i18n/photo-genre.zh-CN.ts +63 -0
- package/src/i18n/photographer.ar.ts +75 -0
- package/src/i18n/photographer.de.ts +74 -0
- package/src/i18n/photographer.es.ts +77 -0
- package/src/i18n/photographer.fr.ts +77 -0
- package/src/i18n/photographer.he.ts +78 -0
- package/src/i18n/photographer.hi.ts +80 -0
- package/src/i18n/photographer.ja.ts +84 -0
- package/src/i18n/photographer.ko.ts +84 -0
- package/src/i18n/photographer.pt-BR.ts +83 -0
- package/src/i18n/photographer.ru.ts +78 -0
- package/src/i18n/photographer.zh-CN.ts +78 -0
- package/src/i18n/pose.ar.ts +95 -0
- package/src/i18n/pose.de.ts +96 -0
- package/src/i18n/pose.es.ts +104 -0
- package/src/i18n/pose.fr.ts +96 -0
- package/src/i18n/pose.he.ts +104 -0
- package/src/i18n/pose.hi.ts +104 -0
- package/src/i18n/pose.ja.ts +104 -0
- package/src/i18n/pose.ko.ts +104 -0
- package/src/i18n/pose.pt-BR.ts +104 -0
- package/src/i18n/pose.ru.ts +104 -0
- package/src/i18n/pose.zh-CN.ts +104 -0
- package/src/i18n/post-process-effects.ar.ts +25 -0
- package/src/i18n/post-process-effects.de.ts +24 -0
- package/src/i18n/post-process-effects.es.ts +26 -0
- package/src/i18n/post-process-effects.fr.ts +24 -0
- package/src/i18n/post-process-effects.he.ts +24 -0
- package/src/i18n/post-process-effects.hi.ts +26 -0
- package/src/i18n/post-process-effects.ja.ts +26 -0
- package/src/i18n/post-process-effects.ko.ts +26 -0
- package/src/i18n/post-process-effects.pt-BR.ts +24 -0
- package/src/i18n/post-process-effects.ru.ts +24 -0
- package/src/i18n/post-process-effects.zh-CN.ts +24 -0
- package/src/i18n/render-quality.ar.ts +34 -0
- package/src/i18n/render-quality.de.ts +30 -0
- package/src/i18n/render-quality.es.ts +35 -0
- package/src/i18n/render-quality.fr.ts +34 -0
- package/src/i18n/render-quality.he.ts +33 -0
- package/src/i18n/render-quality.hi.ts +39 -0
- package/src/i18n/render-quality.ja.ts +39 -0
- package/src/i18n/render-quality.ko.ts +39 -0
- package/src/i18n/render-quality.pt-BR.ts +37 -0
- package/src/i18n/render-quality.ru.ts +37 -0
- package/src/i18n/render-quality.zh-CN.ts +37 -0
- package/src/i18n/seasons.ar.ts +10 -0
- package/src/i18n/seasons.de.ts +10 -0
- package/src/i18n/seasons.es.ts +10 -0
- package/src/i18n/seasons.fr.ts +10 -0
- package/src/i18n/seasons.he.ts +10 -0
- package/src/i18n/seasons.hi.ts +10 -0
- package/src/i18n/seasons.ja.ts +10 -0
- package/src/i18n/seasons.ko.ts +10 -0
- package/src/i18n/seasons.pt-BR.ts +10 -0
- package/src/i18n/seasons.ru.ts +10 -0
- package/src/i18n/seasons.zh-CN.ts +10 -0
- package/src/i18n/setting.ar.ts +73 -0
- package/src/i18n/setting.de.ts +73 -0
- package/src/i18n/setting.es.ts +77 -0
- package/src/i18n/setting.fr.ts +73 -0
- package/src/i18n/setting.he.ts +76 -0
- package/src/i18n/setting.hi.ts +76 -0
- package/src/i18n/setting.ja.ts +78 -0
- package/src/i18n/setting.ko.ts +76 -0
- package/src/i18n/setting.pt-BR.ts +78 -0
- package/src/i18n/setting.ru.ts +76 -0
- package/src/i18n/setting.zh-CN.ts +76 -0
- package/src/i18n/style.ar.ts +55 -0
- package/src/i18n/style.de.ts +54 -0
- package/src/i18n/style.es.ts +54 -0
- package/src/i18n/style.fr.ts +54 -0
- package/src/i18n/style.he.ts +54 -0
- package/src/i18n/style.hi.ts +54 -0
- package/src/i18n/style.ja.ts +54 -0
- package/src/i18n/style.ko.ts +54 -0
- package/src/i18n/style.pt-BR.ts +56 -0
- package/src/i18n/style.ru.ts +54 -0
- package/src/i18n/style.zh-CN.ts +54 -0
- package/src/i18n/styling.ar.ts +295 -0
- package/src/i18n/styling.de.ts +285 -0
- package/src/i18n/styling.es.ts +317 -0
- package/src/i18n/styling.fr.ts +285 -0
- package/src/i18n/styling.he.ts +307 -0
- package/src/i18n/styling.hi.ts +323 -0
- package/src/i18n/styling.ja.ts +317 -0
- package/src/i18n/styling.ko.ts +311 -0
- package/src/i18n/styling.pt-BR.ts +301 -0
- package/src/i18n/styling.ru.ts +301 -0
- package/src/i18n/styling.zh-CN.ts +307 -0
- package/src/i18n/temporal.ar.ts +31 -0
- package/src/i18n/temporal.de.ts +24 -0
- package/src/i18n/temporal.es.ts +27 -0
- package/src/i18n/temporal.fr.ts +28 -0
- package/src/i18n/temporal.he.ts +31 -0
- package/src/i18n/temporal.hi.ts +31 -0
- package/src/i18n/temporal.ja.ts +31 -0
- package/src/i18n/temporal.ko.ts +31 -0
- package/src/i18n/temporal.pt-BR.ts +31 -0
- package/src/i18n/temporal.ru.ts +31 -0
- package/src/i18n/temporal.zh-CN.ts +31 -0
- package/src/i18n/transitions.ar.ts +97 -0
- package/src/i18n/transitions.de.ts +97 -0
- package/src/i18n/transitions.es.ts +97 -0
- package/src/i18n/transitions.fr.ts +97 -0
- package/src/i18n/transitions.he.ts +97 -0
- package/src/i18n/transitions.hi.ts +97 -0
- package/src/i18n/transitions.ja.ts +97 -0
- package/src/i18n/transitions.ko.ts +97 -0
- package/src/i18n/transitions.pt-BR.ts +97 -0
- package/src/i18n/transitions.ru.ts +97 -0
- package/src/i18n/transitions.zh-CN.ts +97 -0
- package/src/i18n/types.ts +158 -0
- package/src/i18n/vehicles.ar.ts +137 -0
- package/src/i18n/vehicles.de.ts +125 -0
- package/src/i18n/vehicles.es.ts +138 -0
- package/src/i18n/vehicles.fr.ts +125 -0
- package/src/i18n/vehicles.he.ts +136 -0
- package/src/i18n/vehicles.hi.ts +138 -0
- package/src/i18n/vehicles.ja.ts +138 -0
- package/src/i18n/vehicles.ko.ts +138 -0
- package/src/i18n/vehicles.pt-BR.ts +136 -0
- package/src/i18n/vehicles.ru.ts +136 -0
- package/src/i18n/vehicles.zh-CN.ts +136 -0
- package/src/i18n/voice-character.ar.ts +126 -0
- package/src/i18n/voice-character.de.ts +126 -0
- package/src/i18n/voice-character.es.ts +126 -0
- package/src/i18n/voice-character.fr.ts +126 -0
- package/src/i18n/voice-character.he.ts +126 -0
- package/src/i18n/voice-character.hi.ts +126 -0
- package/src/i18n/voice-character.ja.ts +126 -0
- package/src/i18n/voice-character.ko.ts +126 -0
- package/src/i18n/voice-character.pt-BR.ts +126 -0
- package/src/i18n/voice-character.ru.ts +126 -0
- package/src/i18n/voice-character.zh-CN.ts +126 -0
- package/src/i18n/voice-delivery.ar.ts +77 -0
- package/src/i18n/voice-delivery.de.ts +77 -0
- package/src/i18n/voice-delivery.es.ts +77 -0
- package/src/i18n/voice-delivery.fr.ts +77 -0
- package/src/i18n/voice-delivery.he.ts +77 -0
- package/src/i18n/voice-delivery.hi.ts +77 -0
- package/src/i18n/voice-delivery.ja.ts +77 -0
- package/src/i18n/voice-delivery.ko.ts +77 -0
- package/src/i18n/voice-delivery.pt-BR.ts +77 -0
- package/src/i18n/voice-delivery.ru.ts +77 -0
- package/src/i18n/voice-delivery.zh-CN.ts +77 -0
- package/src/i18n/weapons.ar.ts +115 -0
- package/src/i18n/weapons.de.ts +114 -0
- package/src/i18n/weapons.es.ts +116 -0
- package/src/i18n/weapons.fr.ts +103 -0
- package/src/i18n/weapons.he.ts +114 -0
- package/src/i18n/weapons.hi.ts +116 -0
- package/src/i18n/weapons.ja.ts +116 -0
- package/src/i18n/weapons.ko.ts +116 -0
- package/src/i18n/weapons.pt-BR.ts +114 -0
- package/src/i18n/weapons.ru.ts +114 -0
- package/src/i18n/weapons.zh-CN.ts +114 -0
- package/src/image-critic-node.ts +61 -0
- package/src/image-critic-types.ts +40 -0
- package/src/index.ts +866 -0
- package/src/inject-upstream.ts +15 -0
- package/src/inpaint-region.ts +51 -0
- package/src/json-evaluator.ts +732 -0
- package/src/json-path.ts +52 -0
- package/src/lip-sync-pricing.ts +90 -0
- package/src/list-merge.ts +40 -0
- package/src/list-sort.ts +122 -0
- package/src/list-source-resolver.ts +50 -0
- package/src/llm-models.ts +245 -0
- package/src/location-mention-slug.ts +291 -0
- package/src/location-preset-catalog-map.ts +128 -0
- package/src/loop-delimiter.ts +73 -0
- package/src/lora-routing.ts +95 -0
- package/src/lottie-overlay-catalog.ts +175 -0
- package/src/lottie-slots.ts +309 -0
- package/src/model-catalog.ts +2386 -0
- package/src/model-constants.ts +1910 -0
- package/src/model-tree.ts +120 -0
- package/src/monetization.ts +15 -0
- package/src/multi-pick.ts +42 -0
- package/src/node-default-mappings.ts +262 -0
- package/src/node-mappable-fields.ts +70 -0
- package/src/node-preset-export.ts +56 -0
- package/src/node-preset-extract.ts +147 -0
- package/src/node-refs.ts +253 -0
- package/src/node-runtime-keys.ts +117 -0
- package/src/object-aspect-defaults.ts +72 -0
- package/src/object-picker-types.ts +22 -0
- package/src/parameter-node-value.ts +284 -0
- package/src/pinterest-url.ts +28 -0
- package/src/pipeline-chat.ts +72 -0
- package/src/pipeline-defaults.ts +318 -0
- package/src/pipeline-events.ts +162 -0
- package/src/pipeline-state-types.ts +196 -0
- package/src/pipeline-types.ts +647 -0
- package/src/pipeline-validation.ts +87 -0
- package/src/presentation-types.ts +23 -0
- package/src/presentation-utils.ts +397 -0
- package/src/producer-types.ts +188 -0
- package/src/progress-curve.ts +99 -0
- package/src/provider-directive-defaults.ts +69 -0
- package/src/reduce-strategy-registry.ts +121 -0
- package/src/reference-board-templates.ts +81 -0
- package/src/reference-roles.ts +153 -0
- package/src/reference-sheet/__tests__/board-to-column.test.ts +20 -0
- package/src/reference-sheet/__tests__/catalog.test.ts +50 -0
- package/src/reference-sheet/__tests__/cost.test.ts +38 -0
- package/src/reference-sheet/__tests__/no-drift.test.ts +28 -0
- package/src/reference-sheet/__tests__/panel-plan.test.ts +61 -0
- package/src/reference-sheet/__tests__/panel-prompts.test.ts +17 -0
- package/src/reference-sheet/__tests__/plan-generation.test.ts +72 -0
- package/src/reference-sheet/__tests__/presets.test.ts +54 -0
- package/src/reference-sheet/__tests__/types.test.ts +24 -0
- package/src/reference-sheet/catalog.ts +144 -0
- package/src/reference-sheet/cost.ts +37 -0
- package/src/reference-sheet/credit-id.ts +7 -0
- package/src/reference-sheet/index.ts +8 -0
- package/src/reference-sheet/panel-plan.ts +65 -0
- package/src/reference-sheet/panel-prompts.ts +14 -0
- package/src/reference-sheet/plan-generation.ts +79 -0
- package/src/reference-sheet/presets.ts +77 -0
- package/src/reference-sheet/types.ts +92 -0
- package/src/repeat-types.ts +97 -0
- package/src/resolve-field-mappings.ts +119 -0
- package/src/route-filter.ts +80 -0
- package/src/scene-helper-types.ts +249 -0
- package/src/scene-node-types.ts +281 -0
- package/src/scraper-actors.ts +57 -0
- package/src/scraper-output-schemas.ts +25 -0
- package/src/seasons.ts +45 -0
- package/src/selector.ts +864 -0
- package/src/settled-with-limit.ts +42 -0
- package/src/shot-element.ts +43 -0
- package/src/social-media-specs.ts +121 -0
- package/src/social-post.ts +24 -0
- package/src/sub-workflow-validation.ts +78 -0
- package/src/supported-fonts.ts +40 -0
- package/src/surround.ts +113 -0
- package/src/switchx-pricing.ts +33 -0
- package/src/text-separators.ts +59 -0
- package/src/to-connected-references.ts +77 -0
- package/src/types.ts +272 -0
- package/src/variant-job-id.ts +17 -0
- package/src/vehicles.ts +213 -0
- package/src/video-analysis-pricing.ts +74 -0
- package/src/video-analysis.ts +127 -0
- package/src/video-duration.ts +25 -0
- package/src/voice-changer-models.ts +36 -0
- package/src/voice-matcher-types.ts +37 -0
- package/src/voices.ts +92 -0
- package/src/weapons.ts +190 -0
- package/src/workflow-export.ts +153 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
"fashion-editorial": { label: "إعلان أزياء تحريري", description: "إعلان مجلة أزياء راق" },
|
|
5
|
+
"vogue-editorial": { label: "إعلان Vogue التحريري", description: "إعلان غلاف بأسلوب Vogue" },
|
|
6
|
+
"magazine-cover": { label: "غلاف مجلة", description: "تأطير غلاف مضغوط" },
|
|
7
|
+
"lookbook": { label: "Lookbook", description: "لقطة ملابس Lookbook نظيفة" },
|
|
8
|
+
"ecommerce-flatlay": { label: "Flat Lay للتجارة الإلكترونية", description: "Flat Lay علوي للمنتج" },
|
|
9
|
+
"beauty-editorial": { label: "إعلان جمال تحريري", description: "تقريب ماكرو للجمال / العناية بالبشرة" },
|
|
10
|
+
"campaign-advertising": { label: "حملة / إعلان", description: "صورة حملة علامة تجارية مصقولة" },
|
|
11
|
+
|
|
12
|
+
"brand-vogue": { label: "Vogue Signature", description: "توقيع إعلاني تحريري لمجلة Vogue" },
|
|
13
|
+
"brand-dior": { label: "Dior Signature", description: "إعلان Dior — Chiaroscuro وصورة ظلية" },
|
|
14
|
+
"brand-jil-sander": { label: "بساطة Jil Sander", description: "Jil Sander — معماري مبسط هادئ" },
|
|
15
|
+
"brand-vivienne-tam": { label: "أسلوب Vivienne Tam", description: "Vivienne Tam — أزياء استشراقية مزخرفة" },
|
|
16
|
+
"brand-jacquemus": { label: "أسلوب Jacquemus", description: "Jacquemus — سوريالي مرح مشمس" },
|
|
17
|
+
"brand-helmut-newton": { label: "أسلوب Helmut Newton", description: "Helmut Newton — استفزاز أبيض وأسود تباين عال" },
|
|
18
|
+
"brand-harpers-bazaar": { label: "أسلوب Harper's Bazaar", description: "Harper's Bazaar — أزياء راقية لامعة" },
|
|
19
|
+
|
|
20
|
+
"paparazzi": { label: "Paparazzi", description: "Tabloid عفوي بفلاش محروق" },
|
|
21
|
+
"street-photography": { label: "تصوير الشارع", description: "إطار شارع حضري غير مرتب" },
|
|
22
|
+
"candid-journalism": { label: "صحافة عفوية", description: "لحظة مصور صحفي غير مرتبة" },
|
|
23
|
+
"photojournalism": { label: "صحافة تصوير", description: "تقرير تحريري بمستوى أخبار" },
|
|
24
|
+
"documentary": { label: "وثائقي", description: "بورتريه وثائقي طويل الشكل" },
|
|
25
|
+
"snapshot": { label: "Snapshot", description: "Snapshot هاو كاجوال" },
|
|
26
|
+
|
|
27
|
+
"corporate-headshot": { label: "Headshot شركات", description: "Headshot بأسلوب LinkedIn" },
|
|
28
|
+
"personal-branding": { label: "علامة تجارية شخصية", description: "بورتريه علامة تجارية شخصية حديث" },
|
|
29
|
+
"yearbook": { label: "كتاب سنوي", description: "بورتريه كتاب سنوي مدرسي" },
|
|
30
|
+
"id-passport": { label: "هوية / جواز سفر", description: "صورة جواز سفر نظامية" },
|
|
31
|
+
"mugshot": { label: "Mugshot", description: "بورتريه بأسلوب حجز شرطة" },
|
|
32
|
+
"wedding-portrait": { label: "بورتريه زفاف", description: "بورتريه رومانسي بأسلوب عروس" },
|
|
33
|
+
"family-portrait": { label: "بورتريه عائلي", description: "لقطة عائلية مرتبة" },
|
|
34
|
+
"glamour-portrait": { label: "بورتريه Glamour", description: "بورتريه Glamour ناعم التركيز" },
|
|
35
|
+
"film-noir": { label: "Film Noir", description: "بورتريه Noir بظلال صلبة" },
|
|
36
|
+
|
|
37
|
+
"mirror-selfie": { label: "سيلفي بالمرآة", description: "سيلفي بالمرآة بهاتف بكامل الجسم" },
|
|
38
|
+
"gym-mirror-selfie": { label: "سيلفي بالمرآة في الصالة الرياضية", description: "سيلفي بمرآة Locker-room" },
|
|
39
|
+
"front-cam-selfie": { label: "سيلفي بكاميرا أمامية", description: "سيلفي بكاميرا أمامية بطول الذراع" },
|
|
40
|
+
"bathroom-mirror-selfie": { label: "سيلفي بمرآة الحمام", description: "سيلفي بمرآة الحمام بفلاش" },
|
|
41
|
+
"bereal-dual": { label: "BeReal مزدوج", description: "إطار مزدوج أمامي + خلفي متزامن" },
|
|
42
|
+
"flip-cam-selfie": { label: "سيلفي بكاميرا قلابة", description: "كاميرا قلابة منخفضة الجودة عرضية" },
|
|
43
|
+
"group-selfie": { label: "سيلفي جماعي", description: "سيلفي بهاتف لعدة مواضيع" },
|
|
44
|
+
"lofi-baddie-selfie": { label: "سيلفي ألفينيات منخفض الجودة", description: "سيلفي iPhone مبكر بإضاءة منخفضة" },
|
|
45
|
+
|
|
46
|
+
"album-cover": { label: "غلاف ألبوم", description: "تأليف غلاف ألبوم مربع" },
|
|
47
|
+
"movie-poster": { label: "ملصق فيلم", description: "ملصق سينمائي مسرحي" },
|
|
48
|
+
"advertising": { label: "إعلانات", description: "صورة حملة إعلانية لامعة" },
|
|
49
|
+
"food-photography": { label: "تصوير طعام", description: "لقطة طعام علوية أو 45 درجة" },
|
|
50
|
+
"real-estate": { label: "عقارات", description: "داخلي معماري عريض" },
|
|
51
|
+
"sports-action": { label: "حركة رياضية", description: "لحظة رياضية مجمدة بالتيليفوتو" },
|
|
52
|
+
|
|
53
|
+
"point-and-shoot": { label: "Point-and-Shoot / كاميرا للاستعمال الواحد", description: "جمالية كاميرا للاستعمال الواحد، فلاش قاس، عفوي" },
|
|
54
|
+
"lifestyle-blog": { label: "مدونة Lifestyle", description: "إحساس مدون منزلي / قهوة بضوء طبيعي ناعم" },
|
|
55
|
+
"product-shot": { label: "لقطة منتج", description: "منتج معزول نظيف على خلفية محايدة، تجارة إلكترونية" },
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export default map
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
"fashion-editorial": { label: "Fashion-Editorial", description: "High-Fashion-Magazindoppelseite" },
|
|
5
|
+
"vogue-editorial": { label: "Vogue-Editorial", description: "Vogue-artiges Cover-Editorial" },
|
|
6
|
+
"magazine-cover": { label: "Magazincover", description: "Eng eingerahmte Cover-Komposition" },
|
|
7
|
+
"lookbook": { label: "Lookbook", description: "Sauberes Lookbook-Outfit-Foto" },
|
|
8
|
+
"ecommerce-flatlay": { label: "E-Commerce Flat Lay", description: "Produkt-Flat-Lay von oben" },
|
|
9
|
+
"beauty-editorial": { label: "Beauty-Editorial", description: "Makro-Beauty-/Skincare-Nahaufnahme" },
|
|
10
|
+
"campaign-advertising": { label: "Kampagne / Werbung", description: "Polierte Markenkampagnen-Aufnahme" },
|
|
11
|
+
"brand-vogue": { label: "Vogue-Signatur", description: "Vogue-Magazin-Editorial-Signatur" },
|
|
12
|
+
"brand-dior": { label: "Dior-Signatur", description: "Dior-Editorial — Chiaroscuro und Silhouette" },
|
|
13
|
+
"brand-jil-sander": { label: "Jil-Sander-Minimalismus", description: "Jil Sander — minimalistisch architektonisch gedämpft" },
|
|
14
|
+
"brand-vivienne-tam": { label: "Vivienne-Tam-Stil", description: "Vivienne Tam — orientalistisch verzierte Mode" },
|
|
15
|
+
"brand-jacquemus": { label: "Jacquemus-Stil", description: "Jacquemus — sonnenverwöhnt surrealistisch verspielt" },
|
|
16
|
+
"brand-helmut-newton": { label: "Helmut-Newton-Stil", description: "Helmut Newton — kontrastreiche S/W-Provokation" },
|
|
17
|
+
"brand-harpers-bazaar": { label: "Harper's-Bazaar-Stil", description: "Harper's Bazaar — High-Fashion glänzend" },
|
|
18
|
+
"paparazzi": { label: "Paparazzi", description: "Blitzlicht-überstrahlte Tabloid-Aufnahme" },
|
|
19
|
+
"street-photography": { label: "Streetfotografie", description: "Ungestelltes urbanes Straßenbild" },
|
|
20
|
+
"candid-journalism": { label: "Candid-Journalismus", description: "Ungestellter fotojournalistischer Moment" },
|
|
21
|
+
"photojournalism": { label: "Fotojournalismus", description: "Editorial-Nachrichten-Reportage" },
|
|
22
|
+
"documentary": { label: "Dokumentarisch", description: "Langformatiges dokumentarisches Porträt" },
|
|
23
|
+
"snapshot": { label: "Schnappschuss", description: "Lässiger Amateur-Schnappschuss" },
|
|
24
|
+
"corporate-headshot": { label: "Corporate-Porträt", description: "LinkedIn-artiges Porträt" },
|
|
25
|
+
"personal-branding": { label: "Personal Branding", description: "Modernes Personal-Brand-Porträt" },
|
|
26
|
+
"yearbook": { label: "Jahrbuch", description: "Schul-Jahrbuchporträt" },
|
|
27
|
+
"id-passport": { label: "Ausweis / Pass", description: "Vorschriftsmäßiges Passfoto" },
|
|
28
|
+
"mugshot": { label: "Mugshot", description: "Polizei-Buchungsporträt" },
|
|
29
|
+
"wedding-portrait": { label: "Hochzeitsporträt", description: "Romantisches Bridal-Porträt" },
|
|
30
|
+
"family-portrait": { label: "Familienporträt", description: "Gestelltes Familiengruppenfoto" },
|
|
31
|
+
"glamour-portrait": { label: "Glamour-Porträt", description: "Soft-Focus-Glamour-Porträt" },
|
|
32
|
+
"film-noir": { description: "Hartschattiges Noir-Porträt" },
|
|
33
|
+
"mirror-selfie": { label: "Spiegelselfie", description: "Telefon-im-Spiegel-Ganzkörperselfie" },
|
|
34
|
+
"gym-mirror-selfie": { label: "Fitnessstudio-Spiegelselfie", description: "Umkleide-Fitnessstudio-Spiegelselfie" },
|
|
35
|
+
"front-cam-selfie": { label: "Frontkamera-Selfie", description: "Armgestrecktes Frontkamera-Selfie" },
|
|
36
|
+
"bathroom-mirror-selfie": { label: "Badezimmer-Spiegelselfie", description: "Badezimmer-Spiegelselfie mit Blitz" },
|
|
37
|
+
"bereal-dual": { label: "BeReal Dual", description: "Front+Rückseite gleichzeitige Doppelaufnahme" },
|
|
38
|
+
"flip-cam-selfie": { label: "Flip-Cam-Selfie", description: "Versehentliche niedrigaufgelöste Flip-Cam" },
|
|
39
|
+
"group-selfie": { label: "Gruppenselfie", description: "Mehrpersoniges Telefon-Selfie" },
|
|
40
|
+
"lofi-baddie-selfie": { label: "Lo-Fi-Selfie der 2010er", description: "Frühes-iPhone-Schwachlichtselfie" },
|
|
41
|
+
"album-cover": { label: "Albumcover", description: "Quadratische Albumcover-Komposition" },
|
|
42
|
+
"movie-poster": { label: "Filmplakat", description: "Cinematisches Theaterplakat" },
|
|
43
|
+
"advertising": { label: "Werbung", description: "Glänzende Werbekampagnen-Fotografie" },
|
|
44
|
+
"food-photography": { label: "Food-Fotografie", description: "Aufsicht oder 45-Grad-Food-Aufnahme" },
|
|
45
|
+
"real-estate": { label: "Immobilien", description: "Weitwinkelige architektonische Innenaufnahme" },
|
|
46
|
+
"sports-action": { label: "Sport-Action", description: "Tele-festgehaltener Sport-Moment" },
|
|
47
|
+
"point-and-shoot": { label: "Pocket / Einwegkamera", description: "Einwegkamera-Ästhetik, harter Blitz, lässig" },
|
|
48
|
+
"lifestyle-blog": { label: "Lifestyle-Blog", description: "Sanftes Naturlicht — Heim-/Coffee-Blogger-Gefühl" },
|
|
49
|
+
"product-shot": { label: "Produktaufnahme", description: "Sauberes freigestelltes Produkt vor neutralem Hintergrund, E-Commerce" },
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export default map
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// -------------------- Editorial / Fashion --------------------
|
|
5
|
+
"fashion-editorial": { label: "Editorial de Moda", description: "Doble página de revista de alta moda" },
|
|
6
|
+
"vogue-editorial": { label: "Editorial Vogue", description: "Editorial de portada estilo Vogue" },
|
|
7
|
+
"magazine-cover": { label: "Portada de Revista", description: "Composición de portada con encuadre cerrado" },
|
|
8
|
+
"lookbook": { label: "Lookbook", description: "Foto limpia de outfit de lookbook" },
|
|
9
|
+
"ecommerce-flatlay": { label: "Flat Lay de E-commerce", description: "Flat lay cenital de producto" },
|
|
10
|
+
"beauty-editorial": { label: "Editorial de Belleza", description: "Primer plano macro de belleza/skincare" },
|
|
11
|
+
"campaign-advertising": { label: "Campaña / Anuncio", description: "Imagen pulida de campaña de marca" },
|
|
12
|
+
|
|
13
|
+
// -------------------- Brand / Editorial Reference --------------------
|
|
14
|
+
"brand-vogue": { label: "Sello Vogue", description: "Sello editorial de revista Vogue" },
|
|
15
|
+
"brand-dior": { label: "Sello Dior", description: "Editorial Dior — chiaroscuro y silueta" },
|
|
16
|
+
"brand-jil-sander": { label: "Minimalismo Jil Sander", description: "Jil Sander — arquitectónico minimalista apagado" },
|
|
17
|
+
"brand-vivienne-tam": { label: "Estilo Vivienne Tam", description: "Vivienne Tam — moda orientalista ornamentada" },
|
|
18
|
+
"brand-jacquemus": { label: "Estilo Jacquemus", description: "Jacquemus — bañado por el sol surrealista juguetón" },
|
|
19
|
+
"brand-helmut-newton": { label: "Estilo Helmut Newton", description: "Helmut Newton — provocación B&N de alto contraste" },
|
|
20
|
+
"brand-harpers-bazaar": { label: "Estilo Harper's Bazaar", description: "Harper's Bazaar — alta moda brillante" },
|
|
21
|
+
|
|
22
|
+
// -------------------- Documentary / Candid --------------------
|
|
23
|
+
"paparazzi": { label: "Paparazzi", description: "Candid de tabloide con flash quemado" },
|
|
24
|
+
"street-photography": { label: "Fotografía Callejera", description: "Cuadro callejero urbano sin pose" },
|
|
25
|
+
"candid-journalism": { label: "Periodismo Candid", description: "Momento fotoperiodístico sin pose" },
|
|
26
|
+
"photojournalism": { label: "Fotoperiodismo", description: "Reportaje editorial de calidad noticiosa" },
|
|
27
|
+
"documentary": { label: "Documental", description: "Retrato documental de larga duración" },
|
|
28
|
+
"snapshot": { label: "Instantánea", description: "Instantánea aficionada casual" },
|
|
29
|
+
|
|
30
|
+
// -------------------- Studio / Formal --------------------
|
|
31
|
+
"corporate-headshot": { label: "Headshot Corporativo", description: "Headshot estilo LinkedIn" },
|
|
32
|
+
"personal-branding": { label: "Branding Personal", description: "Retrato moderno de marca personal" },
|
|
33
|
+
"yearbook": { label: "Anuario", description: "Retrato de anuario escolar" },
|
|
34
|
+
"id-passport": { label: "ID / Pasaporte", description: "Foto de pasaporte reglamentaria" },
|
|
35
|
+
"mugshot": { label: "Foto Policial", description: "Retrato estilo ficha policial" },
|
|
36
|
+
"wedding-portrait": { label: "Retrato de Boda", description: "Retrato romántico estilo nupcial" },
|
|
37
|
+
"family-portrait": { label: "Retrato Familiar", description: "Foto grupal familiar posada" },
|
|
38
|
+
"glamour-portrait": { label: "Retrato de Glamour", description: "Retrato de glamour con foco suave" },
|
|
39
|
+
"film-noir": { label: "Cine Noir", description: "Retrato noir con sombras duras" },
|
|
40
|
+
|
|
41
|
+
// -------------------- Selfie sub-types --------------------
|
|
42
|
+
"mirror-selfie": { label: "Selfie en Espejo", description: "Selfie de cuerpo entero con teléfono en espejo" },
|
|
43
|
+
"gym-mirror-selfie": { label: "Selfie en Espejo de Gimnasio", description: "Selfie en espejo de vestuario de gimnasio" },
|
|
44
|
+
"front-cam-selfie": { label: "Selfie de Cámara Frontal", description: "Selfie con brazo extendido y cámara frontal" },
|
|
45
|
+
"bathroom-mirror-selfie": { label: "Selfie en Espejo de Baño", description: "Selfie en espejo de baño con flash" },
|
|
46
|
+
"bereal-dual": { label: "BeReal Dual", description: "Cuadro dual frontal+trasero simultáneo" },
|
|
47
|
+
"flip-cam-selfie": { label: "Selfie Flip-Cam", description: "Flip cam accidental de baja calidad" },
|
|
48
|
+
"group-selfie": { label: "Selfie Grupal", description: "Selfie grupal con teléfono" },
|
|
49
|
+
"lofi-baddie-selfie": { label: "Selfie Lo-Fi de los 2010s", description: "Selfie de iPhone temprano con poca luz" },
|
|
50
|
+
|
|
51
|
+
// -------------------- Print / Context --------------------
|
|
52
|
+
"album-cover": { label: "Portada de Álbum", description: "Composición cuadrada de portada de álbum" },
|
|
53
|
+
"movie-poster": { label: "Póster de Película", description: "Póster cinematográfico de teatro" },
|
|
54
|
+
"advertising": { label: "Publicidad", description: "Fotografía publicitaria brillante" },
|
|
55
|
+
"food-photography": { label: "Fotografía de Comida", description: "Foto cenital o a 45 grados de comida" },
|
|
56
|
+
"real-estate": { label: "Inmobiliaria", description: "Interior arquitectónico amplio" },
|
|
57
|
+
"sports-action": { label: "Acción Deportiva", description: "Momento deportivo congelado con telefoto" },
|
|
58
|
+
|
|
59
|
+
"point-and-shoot": { label: "Compacta / Desechable", description: "Estética de cámara desechable, flash duro, casual" },
|
|
60
|
+
"lifestyle-blog": { label: "Blog de Lifestyle", description: "Sensación de bloguera de café/hogar con luz natural suave" },
|
|
61
|
+
"product-shot": { label: "Foto de Producto", description: "Producto aislado limpio sobre neutro, e-commerce" },
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export default map
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Editorial / Fashion
|
|
5
|
+
"fashion-editorial": { label: "Édito mode", description: "Numéro de magazine de haute couture" },
|
|
6
|
+
"vogue-editorial": { label: "Édito Vogue", description: "Édito de couverture style Vogue" },
|
|
7
|
+
"magazine-cover": { label: "Couverture de magazine", description: "Composition de couverture serrée" },
|
|
8
|
+
"lookbook": { description: "Photo lookbook propre d'une tenue" },
|
|
9
|
+
"ecommerce-flatlay": { label: "Flat lay e-commerce", description: "Vue de dessus produit en flat lay" },
|
|
10
|
+
"beauty-editorial": { label: "Édito beauté", description: "Gros plan macro beauté / soin de la peau" },
|
|
11
|
+
"campaign-advertising": { label: "Campagne / Pub", description: "Image de campagne de marque soignée" },
|
|
12
|
+
// Brand / Editorial Reference
|
|
13
|
+
"brand-vogue": { label: "Signature Vogue", description: "Signature éditoriale du magazine Vogue" },
|
|
14
|
+
"brand-dior": { label: "Signature Dior", description: "Édito Dior — chiaroscuro et silhouette" },
|
|
15
|
+
"brand-jil-sander": { label: "Minimalisme Jil Sander", description: "Jil Sander — architectural minimaliste atténué" },
|
|
16
|
+
"brand-vivienne-tam": { label: "Style Vivienne Tam", description: "Vivienne Tam — mode orientaliste ornée" },
|
|
17
|
+
"brand-jacquemus": { label: "Style Jacquemus", description: "Jacquemus — surréaliste ensoleillé enjoué" },
|
|
18
|
+
"brand-helmut-newton": { label: "Style Helmut Newton", description: "Helmut Newton — provocation N&B à fort contraste" },
|
|
19
|
+
"brand-harpers-bazaar": { label: "Style Harper's Bazaar", description: "Harper's Bazaar — haute couture glacée" },
|
|
20
|
+
// Documentary / Candid
|
|
21
|
+
"paparazzi": { description: "Candid tabloïd au flash délavé" },
|
|
22
|
+
"street-photography": { label: "Photographie de rue", description: "Cadre urbain de rue non posé" },
|
|
23
|
+
"candid-journalism": { label: "Journalisme candide", description: "Moment photojournalistique non posé" },
|
|
24
|
+
"photojournalism": { label: "Photojournalisme", description: "Reportage éditorial de qualité news" },
|
|
25
|
+
"documentary": { label: "Documentaire", description: "Portrait documentaire long-format" },
|
|
26
|
+
"snapshot": { label: "Instantané", description: "Instantané amateur décontracté" },
|
|
27
|
+
// Studio / Formal
|
|
28
|
+
"corporate-headshot": { label: "Portrait corporate", description: "Portrait style LinkedIn" },
|
|
29
|
+
"personal-branding": { label: "Personal branding", description: "Portrait personal-brand moderne" },
|
|
30
|
+
"yearbook": { label: "Album de fin d'année", description: "Portrait scolaire d'album" },
|
|
31
|
+
"id-passport": { label: "ID / Passeport", description: "Photo de passeport réglementaire" },
|
|
32
|
+
"mugshot": { description: "Portrait style anthropométrique policier" },
|
|
33
|
+
"wedding-portrait": { label: "Portrait de mariage", description: "Portrait romantique style nuptial" },
|
|
34
|
+
"family-portrait": { label: "Portrait de famille", description: "Photo de groupe familial posée" },
|
|
35
|
+
"glamour-portrait": { label: "Portrait glamour", description: "Portrait glamour à mise au point douce" },
|
|
36
|
+
"film-noir": { description: "Portrait noir à ombres dures" },
|
|
37
|
+
// Selfie sub-types
|
|
38
|
+
"mirror-selfie": { label: "Selfie miroir", description: "Selfie corps entier dans un miroir" },
|
|
39
|
+
"gym-mirror-selfie": { label: "Selfie miroir de salle de sport", description: "Selfie miroir de vestiaire de gym" },
|
|
40
|
+
"front-cam-selfie": { label: "Selfie caméra frontale", description: "Selfie caméra frontale bras tendu" },
|
|
41
|
+
"bathroom-mirror-selfie": { label: "Selfie miroir de salle de bain", description: "Selfie miroir de salle de bain au flash" },
|
|
42
|
+
"bereal-dual": { label: "BeReal Dual", description: "Cadre simultané avant+arrière" },
|
|
43
|
+
"flip-cam-selfie": { label: "Selfie flip-cam", description: "Flip cam accidentel basse qualité" },
|
|
44
|
+
"group-selfie": { label: "Selfie de groupe", description: "Selfie téléphone à plusieurs sujets" },
|
|
45
|
+
"lofi-baddie-selfie": { label: "Selfie lo-fi 2010", description: "Selfie iPhone basse lumière des débuts" },
|
|
46
|
+
// Print / Context
|
|
47
|
+
"album-cover": { label: "Couverture d'album", description: "Composition de pochette carrée" },
|
|
48
|
+
"movie-poster": { label: "Affiche de film", description: "Affiche cinématographique" },
|
|
49
|
+
"advertising": { label: "Publicité", description: "Photographie publicitaire glacée" },
|
|
50
|
+
"food-photography": { label: "Photographie culinaire", description: "Photo culinaire vue de dessus ou à 45 degrés" },
|
|
51
|
+
"real-estate": { label: "Immobilier", description: "Intérieur architectural large" },
|
|
52
|
+
"sports-action": { label: "Action sportive", description: "Moment sportif figé au téléobjectif" },
|
|
53
|
+
"point-and-shoot": { label: "Compact / Jetable", description: "Esthétique d'appareil jetable, flash dur, casual" },
|
|
54
|
+
"lifestyle-blog": { label: "Blog lifestyle", description: "Ambiance maison / café blogueur en lumière naturelle douce" },
|
|
55
|
+
"product-shot": { label: "Photo produit", description: "Produit isolé propre sur fond neutre, e-commerce" },
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export default map
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Editorial / Fashion
|
|
5
|
+
"fashion-editorial": { label: "אדיטוריאל אופנה", description: "Spread של מגזין אופנה גבוהה" },
|
|
6
|
+
"vogue-editorial": { label: "אדיטוריאל Vogue", description: "אדיטוריאל שער בסגנון Vogue" },
|
|
7
|
+
"magazine-cover": { label: "שער מגזין", description: "הרכב שער ממוסגר היטב" },
|
|
8
|
+
"lookbook": { label: "Lookbook", description: "צילום outfit נקי בסגנון Lookbook" },
|
|
9
|
+
"ecommerce-flatlay": { label: "Flat Lay של איקומרס", description: "Flat lay של מוצר מלמעלה" },
|
|
10
|
+
"beauty-editorial": { label: "אדיטוריאל ביוטי", description: "Close-up מאקרו של ביוטי / סקינקר" },
|
|
11
|
+
"campaign-advertising": { label: "קמפיין / פרסומת", description: "תמונת קמפיין מותג מלוטשת" },
|
|
12
|
+
|
|
13
|
+
"brand-vogue": { label: "סגנון Vogue", description: "חתימה של מגזין Vogue" },
|
|
14
|
+
"brand-dior": { label: "סגנון Dior", description: "אדיטוריאל Dior — chiaroscuro וצללית" },
|
|
15
|
+
"brand-jil-sander": { label: "מינימליזם של Jil Sander", description: "Jil Sander — מינימליסטי, אדריכלי, עמום" },
|
|
16
|
+
"brand-vivienne-tam": { label: "סגנון Vivienne Tam", description: "Vivienne Tam — אופנה מזרחית מקושטת" },
|
|
17
|
+
"brand-jacquemus": { label: "סגנון Jacquemus", description: "Jacquemus — סוריאליסטי, שטוף שמש, שובב" },
|
|
18
|
+
"brand-helmut-newton": { label: "סגנון Helmut Newton", description: "Helmut Newton — שחור-לבן בקונטרסט גבוה ופרובוקציה" },
|
|
19
|
+
"brand-harpers-bazaar": { label: "סגנון Harper's Bazaar", description: "Harper's Bazaar — אופנה גבוהה מבריקה" },
|
|
20
|
+
|
|
21
|
+
// Documentary
|
|
22
|
+
"paparazzi": { label: "פפראצי", description: "Tabloid candid עם פלאש שרוף" },
|
|
23
|
+
"street-photography": { label: "צילום רחוב", description: "פריים רחוב אורבני לא מבוים" },
|
|
24
|
+
"candid-journalism": { label: "ז'ורנליזם candid", description: "רגע פוטו-ז'ורנליסטי לא מבוים" },
|
|
25
|
+
"photojournalism": { label: "פוטו-ז'ורנליזם", description: "Reportage אדיטוריאלי ברמת חדשות" },
|
|
26
|
+
"documentary": { label: "דוקומנטרי", description: "פורטרט דוקומנטרי ארוך-טווח" },
|
|
27
|
+
"snapshot": { label: "Snapshot", description: "Snapshot חובבני קז'ואל" },
|
|
28
|
+
|
|
29
|
+
// Studio / Formal
|
|
30
|
+
"corporate-headshot": { label: "Headshot עסקי", description: "Headshot בסגנון LinkedIn" },
|
|
31
|
+
"personal-branding": { label: "מיתוג אישי", description: "פורטרט מיתוג אישי מודרני" },
|
|
32
|
+
"yearbook": { label: "ספר שנה", description: "פורטרט בית ספר לספר שנה" },
|
|
33
|
+
"id-passport": { label: "תעודה / דרכון", description: "תמונת דרכון תקנית" },
|
|
34
|
+
"mugshot": { label: "Mugshot", description: "פורטרט בסגנון רישום משטרתי" },
|
|
35
|
+
"wedding-portrait": { label: "פורטרט חתונה", description: "פורטרט בסגנון כלולות רומנטי" },
|
|
36
|
+
"family-portrait": { label: "פורטרט משפחתי", description: "צילום קבוצתי משפחתי מבוים" },
|
|
37
|
+
"glamour-portrait": { label: "פורטרט זוהר", description: "פורטרט זוהר עם פוקוס רך" },
|
|
38
|
+
"film-noir": { label: "Film Noir", description: "פורטרט noir עם צללים חדים" },
|
|
39
|
+
|
|
40
|
+
// Selfie
|
|
41
|
+
"mirror-selfie": { label: "סלפי במראה", description: "סלפי גוף מלא עם טלפון במראה" },
|
|
42
|
+
"gym-mirror-selfie": { label: "סלפי במראה של חדר כושר", description: "סלפי במראה של חדר הלבשה בכושר" },
|
|
43
|
+
"front-cam-selfie": { label: "סלפי מצלמה קדמית", description: "סלפי מצלמה קדמית בטווח זרוע" },
|
|
44
|
+
"bathroom-mirror-selfie": { label: "סלפי במראה של חדר אמבטיה", description: "סלפי במראה של אמבטיה עם פלאש" },
|
|
45
|
+
"bereal-dual": { label: "BeReal Dual", description: "פריים כפול קדמי+אחורי בו זמנית" },
|
|
46
|
+
"flip-cam-selfie": { label: "סלפי Flip-Cam", description: "Flip cam מקרי באיכות נמוכה" },
|
|
47
|
+
"group-selfie": { label: "סלפי קבוצתי", description: "סלפי טלפון של מספר סובייקטים" },
|
|
48
|
+
"lofi-baddie-selfie": { label: "סלפי Lo-Fi של 2010", description: "סלפי iPhone מוקדם באור נמוך" },
|
|
49
|
+
|
|
50
|
+
// Print / Context
|
|
51
|
+
"album-cover": { label: "עטיפת אלבום", description: "הרכב מרובע של עטיפת אלבום" },
|
|
52
|
+
"movie-poster": { label: "פוסטר סרט", description: "פוסטר תיאטרלי קולנועי" },
|
|
53
|
+
"advertising": { label: "פרסומת", description: "צילום קמפיין פרסומת מבריק" },
|
|
54
|
+
"food-photography": { label: "צילום אוכל", description: "צילום אוכל מלמעלה או בזווית 45 מעלות" },
|
|
55
|
+
"real-estate": { label: "נדל\"ן", description: "פנים אדריכלי רחב" },
|
|
56
|
+
"sports-action": { label: "אקשן ספורט", description: "רגע ספורט קפוא ב-telephoto" },
|
|
57
|
+
"point-and-shoot": { label: "Point-and-Shoot / חד-פעמי", description: "אסתטיקה של מצלמה חד-פעמית, פלאש קשה, קז'ואל" },
|
|
58
|
+
"lifestyle-blog": { label: "בלוג Lifestyle", description: "תחושת בלוג בית / קפה באור טבעי רך" },
|
|
59
|
+
"product-shot": { label: "צילום מוצר", description: "מוצר נקי מבודד על רקע נייטרלי, e-commerce" },
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export default map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// -------------------- Editorial / Fashion --------------------
|
|
5
|
+
"fashion-editorial": { label: "Fashion Editorial", description: "उच्च-fashion magazine spread" },
|
|
6
|
+
"vogue-editorial": { label: "Vogue Editorial", description: "Vogue-शैली की cover editorial" },
|
|
7
|
+
"magazine-cover": { label: "Magazine Cover", description: "तंग framed cover composition" },
|
|
8
|
+
"lookbook": { label: "Lookbook", description: "साफ़ lookbook outfit shot" },
|
|
9
|
+
"ecommerce-flatlay": { label: "E-commerce Flat Lay", description: "Overhead product flat lay" },
|
|
10
|
+
"beauty-editorial": { label: "Beauty Editorial", description: "Macro beauty / skincare close-up" },
|
|
11
|
+
"campaign-advertising": { label: "Campaign / Ad", description: "Polished brand campaign image" },
|
|
12
|
+
|
|
13
|
+
// -------------------- Brand / Editorial Reference --------------------
|
|
14
|
+
"brand-vogue": { label: "Vogue Signature", description: "Vogue magazine editorial signature" },
|
|
15
|
+
"brand-dior": { label: "Dior Signature", description: "Dior editorial — chiaroscuro और silhouette" },
|
|
16
|
+
"brand-jil-sander": { label: "Jil Sander Minimalism", description: "Jil Sander — minimalist architectural मद्धम" },
|
|
17
|
+
"brand-vivienne-tam": { label: "Vivienne Tam Style", description: "Vivienne Tam — orientalist ornate fashion" },
|
|
18
|
+
"brand-jacquemus": { label: "Jacquemus Style", description: "Jacquemus — sun-soaked surrealist चंचल" },
|
|
19
|
+
"brand-helmut-newton": { label: "Helmut Newton Style", description: "Helmut Newton — high-contrast B&W provocation" },
|
|
20
|
+
"brand-harpers-bazaar": { label: "Harper's Bazaar Style", description: "Harper's Bazaar — high-fashion glossy" },
|
|
21
|
+
|
|
22
|
+
// -------------------- Documentary / Candid --------------------
|
|
23
|
+
"paparazzi": { label: "Paparazzi", description: "Flash-blown tabloid candid" },
|
|
24
|
+
"street-photography": { label: "Street Photography", description: "Unposed urban street frame" },
|
|
25
|
+
"candid-journalism": { label: "Candid Journalism", description: "Unposed photojournalist पल" },
|
|
26
|
+
"photojournalism": { label: "Photojournalism", description: "Editorial news-grade reportage" },
|
|
27
|
+
"documentary": { label: "Documentary", description: "Long-form documentary portrait" },
|
|
28
|
+
"snapshot": { label: "Snapshot", description: "Casual amateur snapshot" },
|
|
29
|
+
|
|
30
|
+
// -------------------- Studio / Formal --------------------
|
|
31
|
+
"corporate-headshot": { label: "Corporate Headshot", description: "LinkedIn-शैली का headshot" },
|
|
32
|
+
"personal-branding": { label: "Personal Branding", description: "आधुनिक personal-brand portrait" },
|
|
33
|
+
"yearbook": { label: "Yearbook", description: "स्कूल yearbook portrait" },
|
|
34
|
+
"id-passport": { label: "ID / Passport", description: "नियम के अनुसार passport photo" },
|
|
35
|
+
"mugshot": { label: "Mugshot", description: "Police booking-शैली का portrait" },
|
|
36
|
+
"wedding-portrait": { label: "Wedding Portrait", description: "Romantic bridal-शैली का portrait" },
|
|
37
|
+
"family-portrait": { label: "Family Portrait", description: "Posed family group shot" },
|
|
38
|
+
"glamour-portrait": { label: "Glamour Portrait", description: "Soft-focus glamour portrait" },
|
|
39
|
+
"film-noir": { label: "Film Noir", description: "Hard-shadow noir portrait" },
|
|
40
|
+
|
|
41
|
+
// -------------------- Selfie sub-types --------------------
|
|
42
|
+
"mirror-selfie": { label: "Mirror Selfie", description: "Phone-in-mirror full-body selfie" },
|
|
43
|
+
"gym-mirror-selfie": { label: "Gym Mirror Selfie", description: "Locker-room gym mirror selfie" },
|
|
44
|
+
"front-cam-selfie": { label: "Front Cam Selfie", description: "बाँह बढ़ाकर ली गई front camera selfie" },
|
|
45
|
+
"bathroom-mirror-selfie": { label: "Bathroom Mirror Selfie", description: "Flash के साथ bathroom-mirror selfie" },
|
|
46
|
+
"bereal-dual": { label: "BeReal Dual", description: "आगे+पीछे simultaneous dual frame" },
|
|
47
|
+
"flip-cam-selfie": { label: "Flip-Cam Selfie", description: "आकस्मिक low-quality flip cam" },
|
|
48
|
+
"group-selfie": { label: "Group Selfie", description: "कई-subject phone selfie" },
|
|
49
|
+
"lofi-baddie-selfie": { label: "Lo-Fi 2010s Selfie", description: "शुरुआती-iPhone low-light selfie" },
|
|
50
|
+
|
|
51
|
+
// -------------------- Print / Context --------------------
|
|
52
|
+
"album-cover": { label: "Album Cover", description: "वर्गाकार album cover composition" },
|
|
53
|
+
"movie-poster": { label: "Movie Poster", description: "Cinematic theatrical poster" },
|
|
54
|
+
"advertising": { label: "Advertising", description: "Glossy ad-campaign photograph" },
|
|
55
|
+
"food-photography": { label: "Food Photography", description: "Overhead या 45-degree food shot" },
|
|
56
|
+
"real-estate": { label: "Real Estate", description: "Wide architectural अंदरूनी" },
|
|
57
|
+
"sports-action": { label: "Sports Action", description: "Telephoto frozen sports पल" },
|
|
58
|
+
"point-and-shoot": { label: "Point-and-Shoot / Disposable", description: "Disposable-camera aesthetic, तीखी flash, casual" },
|
|
59
|
+
"lifestyle-blog": { label: "Lifestyle Blog", description: "मुलायम natural-light घर / coffee blogger feel" },
|
|
60
|
+
"product-shot": { label: "Product Shot", description: "तटस्थ पर अलग किया हुआ साफ़ product, e-commerce" },
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Editorial
|
|
5
|
+
"fashion-editorial": { label: "ファッション・エディトリアル", description: "ハイファッション雑誌の見開き" },
|
|
6
|
+
"vogue-editorial": { label: "Vogue エディトリアル", description: "Vogue風カバーエディトリアル" },
|
|
7
|
+
"magazine-cover": { label: "雑誌の表紙", description: "タイトに切り取られた表紙構図" },
|
|
8
|
+
"lookbook": { label: "ルックブック", description: "クリーンなルックブックの衣装ショット" },
|
|
9
|
+
"ecommerce-flatlay": { label: "EC向けフラットレイ", description: "俯瞰の商品フラットレイ" },
|
|
10
|
+
"beauty-editorial": { label: "ビューティ・エディトリアル", description: "マクロのビューティ/スキンケア・クローズアップ" },
|
|
11
|
+
"campaign-advertising": { label: "キャンペーン/広告", description: "磨かれたブランドキャンペーン画像" },
|
|
12
|
+
|
|
13
|
+
// Brand / Editorial Reference — keep brand names mostly English
|
|
14
|
+
"brand-vogue": { label: "Vogue シグネチャー", description: "Vogueのエディトリアル・シグネチャー" },
|
|
15
|
+
"brand-dior": { label: "Dior シグネチャー", description: "Dior エディトリアル — キアロスクーロとシルエット" },
|
|
16
|
+
"brand-jil-sander": { label: "Jil Sander ミニマリズム", description: "Jil Sander — ミニマルで建築的、ミュート" },
|
|
17
|
+
"brand-vivienne-tam": { label: "Vivienne Tam スタイル", description: "Vivienne Tam — オリエンタリストの装飾的ファッション" },
|
|
18
|
+
"brand-jacquemus": { label: "Jacquemus スタイル", description: "Jacquemus — 陽光に満ちたシュルレアリスト的で遊び心" },
|
|
19
|
+
"brand-helmut-newton": { label: "Helmut Newton スタイル", description: "Helmut Newton — 高コントラストの白黒で挑発的" },
|
|
20
|
+
"brand-harpers-bazaar": { label: "Harper's Bazaar スタイル", description: "Harper's Bazaar — ハイファッションでグロッシー" },
|
|
21
|
+
|
|
22
|
+
// Documentary
|
|
23
|
+
"paparazzi": { label: "パパラッチ", description: "フラッシュで白飛びしたタブロイドのキャンディッド" },
|
|
24
|
+
"street-photography": { label: "ストリートフォト", description: "ポーズなしの都会のストリートフレーム" },
|
|
25
|
+
"candid-journalism": { label: "キャンディッド・ジャーナリズム", description: "ポーズなしのフォトジャーナリスト的瞬間" },
|
|
26
|
+
"photojournalism": { label: "フォトジャーナリズム", description: "エディトリアル級のニュース報道" },
|
|
27
|
+
"documentary": { label: "ドキュメンタリー", description: "長期取材のドキュメンタリー・ポートレート" },
|
|
28
|
+
"snapshot": { label: "スナップショット", description: "カジュアルなアマチュア・スナップショット" },
|
|
29
|
+
|
|
30
|
+
// Studio / Formal
|
|
31
|
+
"corporate-headshot": { label: "コーポレート・ヘッドショット", description: "LinkedIn風のヘッドショット" },
|
|
32
|
+
"personal-branding": { label: "パーソナル・ブランディング", description: "モダンなパーソナルブランド・ポートレート" },
|
|
33
|
+
"yearbook": { label: "イヤーブック", description: "学校の卒業アルバム風ポートレート" },
|
|
34
|
+
"id-passport": { label: "ID/パスポート", description: "規格に沿ったパスポート写真" },
|
|
35
|
+
"mugshot": { label: "マグショット", description: "警察の身元記録風ポートレート" },
|
|
36
|
+
"wedding-portrait": { label: "ウェディング・ポートレート", description: "ロマンチックなブライダル風ポートレート" },
|
|
37
|
+
"family-portrait": { label: "ファミリー・ポートレート", description: "ポーズを取った家族集合写真" },
|
|
38
|
+
"glamour-portrait": { label: "グラマー・ポートレート", description: "ソフトフォーカスのグラマー・ポートレート" },
|
|
39
|
+
"film-noir": { label: "フィルム・ノワール", description: "ハードシャドウのノワール・ポートレート" },
|
|
40
|
+
|
|
41
|
+
// Selfie
|
|
42
|
+
"mirror-selfie": { label: "ミラー自撮り", description: "鏡越しに全身が映るスマホ自撮り" },
|
|
43
|
+
"gym-mirror-selfie": { label: "ジムのミラー自撮り", description: "ロッカールームのジム鏡自撮り" },
|
|
44
|
+
"front-cam-selfie": { label: "フロントカメラ自撮り", description: "腕を伸ばしたフロントカメラ自撮り" },
|
|
45
|
+
"bathroom-mirror-selfie": { label: "バスルームのミラー自撮り", description: "フラッシュ付きバスルーム鏡自撮り" },
|
|
46
|
+
"bereal-dual": { label: "BeReal デュアル", description: "前面+背面の同時2画面" },
|
|
47
|
+
"flip-cam-selfie": { label: "フリップカム自撮り", description: "偶然撮れた低画質のフリップカム" },
|
|
48
|
+
"group-selfie": { label: "グループ自撮り", description: "複数人のスマホ自撮り" },
|
|
49
|
+
"lofi-baddie-selfie": { label: "ローファイ2010s自撮り", description: "初期iPhoneの低光量自撮り" },
|
|
50
|
+
|
|
51
|
+
// Print / Context
|
|
52
|
+
"album-cover": { label: "アルバムカバー", description: "正方形のアルバムカバー構図" },
|
|
53
|
+
"movie-poster": { label: "映画ポスター", description: "シネマ的な劇場用ポスター" },
|
|
54
|
+
"advertising": { label: "広告", description: "光沢のある広告キャンペーン写真" },
|
|
55
|
+
"food-photography": { label: "フードフォトグラフィ", description: "俯瞰または45度角のフードショット" },
|
|
56
|
+
"real-estate": { label: "不動産", description: "建築的に広い室内ショット" },
|
|
57
|
+
"sports-action": { label: "スポーツアクション", description: "望遠で凍ったスポーツの瞬間" },
|
|
58
|
+
|
|
59
|
+
// Additional genres
|
|
60
|
+
"point-and-shoot": { label: "ポイント&シュート/使い捨てカメラ", description: "使い捨てカメラ風の美学、強いフラッシュ、カジュアル" },
|
|
61
|
+
"lifestyle-blog": { label: "ライフスタイルブログ", description: "柔らかな自然光のホーム/コーヒーブロガー風" },
|
|
62
|
+
"product-shot": { label: "プロダクトショット", description: "ニュートラル背景にクリーンに切り抜かれた商品、EC向け" },
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export default map
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Editorial / Fashion
|
|
5
|
+
"fashion-editorial": { label: "패션 에디토리얼", description: "하이패션 매거진 스프레드입니다" },
|
|
6
|
+
"vogue-editorial": { label: "Vogue 에디토리얼", description: "Vogue 스타일의 표지 에디토리얼입니다" },
|
|
7
|
+
"magazine-cover": { label: "매거진 표지", description: "타이트하게 프레임된 표지 구도입니다" },
|
|
8
|
+
"lookbook": { label: "룩북", description: "깔끔한 룩북 아웃핏 샷입니다" },
|
|
9
|
+
"ecommerce-flatlay": { label: "이커머스 플랫 레이", description: "오버헤드 제품 플랫 레이입니다" },
|
|
10
|
+
"beauty-editorial": { label: "뷰티 에디토리얼", description: "매크로 뷰티/스킨케어 클로즈업입니다" },
|
|
11
|
+
"campaign-advertising": { label: "캠페인 / 광고", description: "세련된 브랜드 캠페인 이미지입니다" },
|
|
12
|
+
|
|
13
|
+
// Brand / Editorial Reference
|
|
14
|
+
"brand-vogue": { label: "Vogue 시그니처", description: "Vogue 매거진 에디토리얼의 시그니처입니다" },
|
|
15
|
+
"brand-dior": { label: "Dior 시그니처", description: "Dior 에디토리얼 — 키아로스쿠로와 실루엣입니다" },
|
|
16
|
+
"brand-jil-sander": { label: "Jil Sander 미니멀리즘", description: "Jil Sander — 미니멀하고 건축적인 무채색 톤입니다" },
|
|
17
|
+
"brand-vivienne-tam": { label: "Vivienne Tam 스타일", description: "Vivienne Tam — 동양적 모티프의 화려한 패션입니다" },
|
|
18
|
+
"brand-jacquemus": { label: "Jacquemus 스타일", description: "Jacquemus — 햇살 가득한 초현실적 장난기입니다" },
|
|
19
|
+
"brand-helmut-newton": { label: "Helmut Newton 스타일", description: "Helmut Newton — 고대비 흑백의 도발입니다" },
|
|
20
|
+
"brand-harpers-bazaar": { label: "Harper's Bazaar 스타일", description: "Harper's Bazaar — 하이패션 광택 스타일입니다" },
|
|
21
|
+
|
|
22
|
+
// Documentary / Candid
|
|
23
|
+
"paparazzi": { label: "파파라치", description: "플래시가 터진 타블로이드 캔디드입니다" },
|
|
24
|
+
"street-photography": { label: "스트리트 포토그래피", description: "포즈 없는 도시 거리 프레임입니다" },
|
|
25
|
+
"candid-journalism": { label: "캔디드 저널리즘", description: "포즈 없는 포토저널리스트의 순간입니다" },
|
|
26
|
+
"photojournalism": { label: "포토저널리즘", description: "에디토리얼 뉴스급 보도 사진입니다" },
|
|
27
|
+
"documentary": { label: "다큐멘터리", description: "장기 다큐멘터리 인물 사진입니다" },
|
|
28
|
+
"snapshot": { label: "스냅샷", description: "캐주얼한 아마추어 스냅샷입니다" },
|
|
29
|
+
|
|
30
|
+
// Studio / Formal
|
|
31
|
+
"corporate-headshot": { label: "코퍼레이트 헤드샷", description: "LinkedIn 스타일 헤드샷입니다" },
|
|
32
|
+
"personal-branding": { label: "퍼스널 브랜딩", description: "모던한 퍼스널 브랜드 인물 사진입니다" },
|
|
33
|
+
"yearbook": { label: "이어북", description: "학교 이어북 인물 사진입니다" },
|
|
34
|
+
"id-passport": { label: "신분증 / 여권", description: "규정 여권 사진입니다" },
|
|
35
|
+
"mugshot": { label: "머그샷", description: "경찰 입건 스타일 인물 사진입니다" },
|
|
36
|
+
"wedding-portrait": { label: "웨딩 포트레이트", description: "낭만적인 신부 스타일 인물 사진입니다" },
|
|
37
|
+
"family-portrait": { label: "패밀리 포트레이트", description: "포즈를 취한 가족 단체 사진입니다" },
|
|
38
|
+
"glamour-portrait": { label: "글래머 포트레이트", description: "소프트 포커스 글래머 인물 사진입니다" },
|
|
39
|
+
"film-noir": { label: "필름 느와르", description: "강한 그림자의 느와르 인물 사진입니다" },
|
|
40
|
+
|
|
41
|
+
// Selfie
|
|
42
|
+
"mirror-selfie": { label: "거울 셀카", description: "거울 속 휴대폰이 보이는 전신 셀카입니다" },
|
|
43
|
+
"gym-mirror-selfie": { label: "헬스장 거울 셀카", description: "라커룸 헬스장 거울 셀카입니다" },
|
|
44
|
+
"front-cam-selfie": { label: "전면 카메라 셀카", description: "팔을 뻗은 전면 카메라 셀카입니다" },
|
|
45
|
+
"bathroom-mirror-selfie": { label: "욕실 거울 셀카", description: "플래시가 터진 욕실 거울 셀카입니다" },
|
|
46
|
+
"bereal-dual": { label: "BeReal 듀얼", description: "전·후면 동시 듀얼 프레임입니다" },
|
|
47
|
+
"flip-cam-selfie": { label: "플립캠 셀카", description: "우연히 찍힌 저화질 플립캠입니다" },
|
|
48
|
+
"group-selfie": { label: "단체 셀카", description: "여러 명이 함께 찍는 폰 셀카입니다" },
|
|
49
|
+
"lofi-baddie-selfie": { label: "로파이 2010s 셀카", description: "초기 아이폰의 저조도 셀카입니다" },
|
|
50
|
+
|
|
51
|
+
// Print / Context
|
|
52
|
+
"album-cover": { label: "앨범 커버", description: "정사각형 앨범 커버 구도입니다" },
|
|
53
|
+
"movie-poster": { label: "영화 포스터", description: "시네마틱 극장 포스터입니다" },
|
|
54
|
+
"advertising": { label: "광고", description: "광택 있는 광고 캠페인 사진입니다" },
|
|
55
|
+
"food-photography": { label: "푸드 포토그래피", description: "오버헤드 또는 45도 음식 샷입니다" },
|
|
56
|
+
"real-estate": { label: "부동산", description: "광각의 건축적 인테리어입니다" },
|
|
57
|
+
"sports-action": { label: "스포츠 액션", description: "망원으로 정지된 스포츠 순간입니다" },
|
|
58
|
+
"point-and-shoot": { label: "포인트 앤 슛 / 일회용", description: "일회용 카메라 미학, 강한 플래시, 캐주얼한 분위기입니다" },
|
|
59
|
+
"lifestyle-blog": { label: "라이프스타일 블로그", description: "부드러운 자연광의 홈 / 카페 블로거 감성입니다" },
|
|
60
|
+
"product-shot": { label: "제품 샷", description: "중성 배경에 분리된 깨끗한 제품, 이커머스 스타일입니다" },
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default map
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Editorial / Fashion
|
|
5
|
+
"fashion-editorial": { label: "Editorial de Moda", description: "Editorial de moda em revista de alta-costura" },
|
|
6
|
+
"vogue-editorial": { label: "Editorial Vogue", description: "Editorial estilo capa da Vogue" },
|
|
7
|
+
"magazine-cover": { label: "Capa de Revista", description: "Composição apertada para capa" },
|
|
8
|
+
"lookbook": { description: "Foto limpa de lookbook" },
|
|
9
|
+
"ecommerce-flatlay": { label: "Flat Lay de E-commerce", description: "Flat lay de produto visto de cima" },
|
|
10
|
+
"beauty-editorial": { label: "Editorial de Beleza", description: "Close de beleza / skincare em macro" },
|
|
11
|
+
"campaign-advertising": { label: "Campanha / Publicidade", description: "Imagem polida de campanha de marca" },
|
|
12
|
+
|
|
13
|
+
// Brand / Editorial Reference — most brand names kept as-is
|
|
14
|
+
"brand-vogue": { label: "Estilo Vogue", description: "Assinatura editorial da revista Vogue" },
|
|
15
|
+
"brand-dior": { label: "Estilo Dior", description: "Editorial Dior — chiaroscuro e silhueta" },
|
|
16
|
+
"brand-jil-sander": { label: "Minimalismo Jil Sander", description: "Jil Sander — minimalismo arquitetônico abafado" },
|
|
17
|
+
"brand-vivienne-tam": { label: "Estilo Vivienne Tam", description: "Vivienne Tam — moda orientalista ornamentada" },
|
|
18
|
+
"brand-jacquemus": { label: "Estilo Jacquemus", description: "Jacquemus — surrealismo brincalhão banhado de sol" },
|
|
19
|
+
"brand-helmut-newton": { label: "Estilo Helmut Newton", description: "Helmut Newton — provocação em P&B de alto contraste" },
|
|
20
|
+
"brand-harpers-bazaar": { label: "Estilo Harper's Bazaar", description: "Harper's Bazaar — alta-costura glossy" },
|
|
21
|
+
|
|
22
|
+
// Documentary / Candid
|
|
23
|
+
"paparazzi": { description: "Tabloide candid com flash estourado" },
|
|
24
|
+
"street-photography": { label: "Fotografia de Rua", description: "Cena urbana flagrante e sem pose" },
|
|
25
|
+
"candid-journalism": { label: "Jornalismo Espontâneo", description: "Momento não posado de fotojornalismo" },
|
|
26
|
+
"photojournalism": { label: "Fotojornalismo", description: "Reportagem editorial padrão jornal" },
|
|
27
|
+
"documentary": { label: "Documental", description: "Retrato documental de longa duração" },
|
|
28
|
+
"snapshot": { label: "Snapshot", description: "Snapshot amador casual" },
|
|
29
|
+
|
|
30
|
+
// Studio / Formal
|
|
31
|
+
"corporate-headshot": { label: "Foto Corporativa", description: "Headshot estilo LinkedIn" },
|
|
32
|
+
"personal-branding": { label: "Personal Branding", description: "Retrato moderno de personal branding" },
|
|
33
|
+
"yearbook": { label: "Foto de Anuário", description: "Retrato de anuário escolar" },
|
|
34
|
+
"id-passport": { label: "Documento / Passaporte", description: "Foto regulamentar de passaporte" },
|
|
35
|
+
"mugshot": { description: "Retrato estilo registro policial" },
|
|
36
|
+
"wedding-portrait": { label: "Retrato de Casamento", description: "Retrato romântico estilo nupcial" },
|
|
37
|
+
"family-portrait": { label: "Retrato de Família", description: "Foto de família posada em grupo" },
|
|
38
|
+
"glamour-portrait": { label: "Retrato Glamour", description: "Retrato glamour com soft focus" },
|
|
39
|
+
"film-noir": { description: "Retrato noir de sombras duras" },
|
|
40
|
+
|
|
41
|
+
// Selfie
|
|
42
|
+
"mirror-selfie": { label: "Selfie no Espelho", description: "Selfie de corpo inteiro com celular no espelho" },
|
|
43
|
+
"gym-mirror-selfie": { label: "Selfie no Espelho da Academia", description: "Selfie no espelho do vestiário da academia" },
|
|
44
|
+
"front-cam-selfie": { label: "Selfie com Câmera Frontal", description: "Selfie com a câmera frontal e braço estendido" },
|
|
45
|
+
"bathroom-mirror-selfie": { label: "Selfie no Espelho do Banheiro", description: "Selfie no espelho do banheiro com flash" },
|
|
46
|
+
"bereal-dual": { description: "Duplo frame BeReal: frente + traseira simultâneas" },
|
|
47
|
+
"flip-cam-selfie": { description: "Selfie acidental, baixa qualidade, flip cam" },
|
|
48
|
+
"group-selfie": { label: "Selfie em Grupo", description: "Selfie de celular com várias pessoas" },
|
|
49
|
+
"lofi-baddie-selfie": { label: "Selfie Lo-Fi Anos 2010", description: "Selfie em iPhone antigo com pouca luz" },
|
|
50
|
+
|
|
51
|
+
// Print / Context
|
|
52
|
+
"album-cover": { label: "Capa de Álbum", description: "Composição quadrada de capa de álbum" },
|
|
53
|
+
"movie-poster": { label: "Cartaz de Filme", description: "Cartaz teatral cinematográfico" },
|
|
54
|
+
"advertising": { label: "Publicidade", description: "Foto publicitária glossy de campanha" },
|
|
55
|
+
"food-photography": { label: "Fotografia de Comida", description: "Foto de comida vista de cima ou em 45 graus" },
|
|
56
|
+
"real-estate": { label: "Imóveis", description: "Interior arquitetônico em grande angular" },
|
|
57
|
+
"sports-action": { label: "Ação Esportiva", description: "Momento esportivo congelado em telefoto" },
|
|
58
|
+
|
|
59
|
+
// Additional photo genres
|
|
60
|
+
"point-and-shoot": { label: "Compacta / Descartável", description: "Estética de câmera descartável, flash duro e casual" },
|
|
61
|
+
"lifestyle-blog": { label: "Blog Lifestyle", description: "Atmosfera blogueira de luz natural suave em casa ou no café" },
|
|
62
|
+
"product-shot": { label: "Foto de Produto", description: "Produto isolado e limpo em fundo neutro, e-commerce" },
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export default map
|