@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.
- 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,116 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Swords
|
|
5
|
+
"katana": { label: "카타나", description: "외날의 부드럽게 휘어진 칼날, 가오리 가죽으로 감싼 손잡이, 디스크 모양의 츠바 가드, 거울 같은 광택 마감을 가진 일본 카타나입니다" },
|
|
6
|
+
"longsword": { label: "롱소드", description: "곧게 가늘어지는 양날 칼, 십자 가드, 가죽으로 감싼 그립, 둥근 폼멜을 가진 중세 양날 롱소드입니다" },
|
|
7
|
+
"broadsword": { label: "브로드소드", description: "넓고 곧은 양날 칼, 바스켓 힐트 가드, 튼튼한 가죽 그립을 가진 무거운 브로드소드입니다" },
|
|
8
|
+
"rapier": { label: "레이피어", description: "길고 좁은 찌르기 칼, 화려한 스웹트 힐트 바스켓 가드, 구형 폼멜을 가진 슬림한 레이피어입니다" },
|
|
9
|
+
"saber": { label: "사브르", description: "외날의 휘어진 칼, 황동 너클 보우 가드, 가죽 그립을 가진 기병용 사브르입니다" },
|
|
10
|
+
"scimitar": { label: "시미터", description: "넓은 외날 칼, 화려한 십자 가드, 둥근 금속 폼멜을 가진 휘어진 시미터입니다" },
|
|
11
|
+
"claymore": { label: "클레이모어", description: "긴 곧은 칼, 앞쪽으로 기울어진 십자 가드, 큰 가죽 그립을 가진 거대한 양손 스코틀랜드 클레이모어입니다" },
|
|
12
|
+
"cutlass": { label: "커틀러스", description: "짧고 휘어진 외날 칼, 황동 컵 모양 핸드 가드, 풍파를 겪은 목재 그립을 가진 해적 커틀러스입니다" },
|
|
13
|
+
"wakizashi": { label: "와키자시", description: "부드럽게 휘어진 칼날, 작은 츠바, 가오리 가죽으로 감싼 손잡이를 가진 짧은 일본식 와키자시 컴패니언 검입니다" },
|
|
14
|
+
"falchion": { label: "팔치온", description: "클리버 같은 가늘어지는 외날 칼, 단순한 십자 가드, 리벳된 가죽 그립을 가진 무거운 팔치온입니다" },
|
|
15
|
+
|
|
16
|
+
// Daggers & Knives
|
|
17
|
+
"dagger": { label: "단검", description: "좁고 뾰족한 칼날, 십자 가드, 가죽으로 감싼 그립을 가진 클래식 양날 단검입니다" },
|
|
18
|
+
"bowie-knife": { label: "보위 나이프", description: "클립 포인트 칼날, 황동 가드, 적층 가죽 와셔 손잡이, 십자 가드를 가진 큰 보위 나이프입니다" },
|
|
19
|
+
"kukri": { label: "쿠크리", description: "앞으로 휘어진 넓은 칼날, 목재 손잡이, 안쪽으로 각진 리커브가 특징인 네팔 쿠크리입니다" },
|
|
20
|
+
"stiletto": { label: "스틸레토", description: "길고 바늘처럼 가는 삼각형 칼날, 미니멀한 십자 가드, 가늘어지는 손잡이를 가진 슬림한 스틸레토입니다" },
|
|
21
|
+
"dirk": { label: "더크", description: "긴 곧은 외날 칼, 켈트 매듭 손잡이, 화려한 폼멜을 가진 스코틀랜드 더크입니다" },
|
|
22
|
+
"tanto": { label: "탄토", description: "각진 끌 모양 끝, 작은 츠바, 감싼 가오리 가죽 손잡이를 가진 일본 탄토 단검입니다" },
|
|
23
|
+
"switchblade": { label: "잭나이프", description: "스프링 작동식 접이식 칼날, 진주나 레진 사이드 패널, 광택 나는 릴리스 버튼을 가진 포켓 잭나이프입니다" },
|
|
24
|
+
"trench-knife": { label: "트렌치 나이프", description: "슬림한 양날 칼날과 그립을 감싸는 황동 너클 더스터 핸드가드를 가진 군용 트렌치 나이프입니다" },
|
|
25
|
+
|
|
26
|
+
// Axes
|
|
27
|
+
"battle-axe": { label: "전투도끼", description: "넓고 휘어진 절단날, 베어드 프로파일, 철제 띠로 묶은 긴 목재 자루를 가진 무거운 양손 전투도끼입니다" },
|
|
28
|
+
"tomahawk": { label: "토마호크", description: "작은 단일 비트 철제 헤드, 곧은 목재 자루, 그립 근처의 가죽 감기를 가진 가벼운 투척용 토마호크입니다" },
|
|
29
|
+
"hatchet": { label: "손도끼", description: "짧은 목재 손잡이, 작은 단일 비트 강철 헤드, 망치질된 마감을 가진 콤팩트한 손도끼입니다" },
|
|
30
|
+
"halberd": { label: "할버드", description: "도끼날, 찌르는 창 끝, 키 큰 목재 자루 위의 후방 후크를 결합한 긴 폴 할버드입니다" },
|
|
31
|
+
"greataxe": { label: "그레이트 액스", description: "거대한 양면 초승달 헤드, 철제 보강 띠, 양손이 필요한 길고 무거운 자루를 가진 거대한 그레이트 액스입니다" },
|
|
32
|
+
"bearded-axe": { label: "베어드 액스", description: "길어진 하단 칼날, 좁은 철제 헤드, 가죽으로 감싼 키 큰 목재 자루를 가진 바이킹 베어드 액스입니다" },
|
|
33
|
+
|
|
34
|
+
// Polearms
|
|
35
|
+
"spear": { label: "창", description: "잎 모양 철제 창두를 키 큰 곧은 목재 자루에 묶고 베이스에 작은 버트 캡이 있는 단순한 창입니다" },
|
|
36
|
+
"lance": { label: "랜스", description: "긴 목재 자루, 원뿔형 강철 끝, 그립을 보호하는 플레어드 핸드 가드를 가진 마상 시합용 랜스입니다" },
|
|
37
|
+
"pike": { label: "파이크", description: "작은 삼각형 창두가 사람 키의 두 배인 거대한 목재 자루 위에 장착된 매우 긴 파이크입니다" },
|
|
38
|
+
"glaive": { label: "글레이브", description: "긴 휘어진 외날 칼날이 목재 자루에 장착되고 작은 십자 가드로 가늘어지는 글레이브 폴암입니다" },
|
|
39
|
+
"trident": { label: "삼지창", description: "날카로운 미늘 갈래, 중앙 자루, 긴 목재 폴을 가진 세 갈래 삼지창입니다" },
|
|
40
|
+
"naginata": { label: "나기나타", description: "휘어진 외날 칼날이 긴 옻칠 목재 폴에 장착되고 비단 감기가 있는 일본 나기나타입니다" },
|
|
41
|
+
|
|
42
|
+
// Bows & Crossbows
|
|
43
|
+
"longbow": { label: "롱보우", description: "주목 한 조각, 왁스칠한 린넨 활시위, 가죽으로 감싼 그립을 가진 키 큰 영국식 롱보우입니다" },
|
|
44
|
+
"recurve-bow": { label: "리커브 보우", description: "궁수에서 멀어지는 휘어진 림, 가죽으로 감싼 라이저, 팽팽한 활시위를 가진 전통 리커브 보우입니다" },
|
|
45
|
+
"compound-bow": { label: "컴파운드 보우", description: "알루미늄 캠, 각 끝의 풀리 휠, 카본 파이버 화살 받침, 조준 핀 어레이를 가진 모던 컴파운드 보우입니다" },
|
|
46
|
+
"crossbow": { label: "크로스보우", description: "수평 목재 스톡, 강철 프로드, 팽팽한 시위, 레일 아래 트리거 메커니즘을 가진 중세 크로스보우입니다" },
|
|
47
|
+
"short-bow": { label: "쇼트 보우", description: "단순한 곡선 프로파일, 왁스칠한 활시위, 가운데 가죽 그립을 가진 콤팩트한 목재 쇼트 보우입니다" },
|
|
48
|
+
|
|
49
|
+
// Blunt & Impact
|
|
50
|
+
"mace": { label: "메이스", description: "왕관 모양 무거운 헤드에 돌출된 철제 플랜지, 짧은 철제 자루를 가진 중세 플랜지드 메이스입니다" },
|
|
51
|
+
"war-hammer": { label: "워 해머", description: "한쪽에 평평한 타격면과 다른 쪽에 휘어진 스파이크가 있는 무거운 철제 헤드를 가진 긴 손잡이 워 해머입니다" },
|
|
52
|
+
"club": { label: "곤봉", description: "두꺼운 옹이 진 헤드, 가늘어지는 자루, 베이스 근처의 사용감 있는 가죽 그립을 가진 단순한 목재 곤봉입니다" },
|
|
53
|
+
"morning-star": { label: "모닝 스타", description: "큰 철제 공이 사방으로 키 큰 스파이크가 솟아 있는 모닝 스타입니다" },
|
|
54
|
+
"flail": { label: "플레일", description: "스파이크 철제 공이 짧은 사슬로 목재 자루와 연결되고 철제 끝 캡이 있는 군용 플레일입니다" },
|
|
55
|
+
"nunchaku": { label: "쌍절곤", description: "두 개의 광택 나는 목재 봉이 짧은 길이의 꼰 줄이나 사슬로 연결된 무술용 쌍절곤입니다" },
|
|
56
|
+
|
|
57
|
+
// Throwing
|
|
58
|
+
"shuriken": { label: "수리검", description: "중심 허브에서 방사되는 여러 면도날 같은 뾰족한 점, 검게 처리된 강철 마감을 가진 금속 투척 별입니다" },
|
|
59
|
+
"throwing-knife": { label: "투척 나이프", description: "잎 모양 양날 칼날, 미니멀한 손잡이, 광택 나는 강철 마감을 가진 균형 잡힌 투척 나이프입니다" },
|
|
60
|
+
"boomerang": { label: "부메랑", description: "굽힘, 부족 패턴 페인팅, 매끄러운 공기역학적 프로파일을 가진 휘어진 목재 부메랑입니다" },
|
|
61
|
+
"javelin": { label: "투창", description: "슬림한 강철 끝, 가늘어지는 목재 자루, 균형점 근처의 가죽 그립 감기를 가진 가벼운 투척 투창입니다" },
|
|
62
|
+
"bolas": { label: "볼라스", description: "꼰 가죽 끈으로 묶인 세 개의 무게가 있는 돌 또는 철제 공이 중앙 매듭에서 만나는 볼라스입니다" },
|
|
63
|
+
|
|
64
|
+
// Modern Firearms
|
|
65
|
+
"pistol": { label: "권총", description: "매트 블랙 폴리머 프레임, 리브드 슬라이드, 트리거 가드, 평평한 탄창 베이스를 가진 모던 반자동 권총입니다" },
|
|
66
|
+
"revolver": { label: "리볼버", description: "회전 실린더, 긴 총신, 뒤로 젖혀진 해머, 체크된 목재 그립을 가진 6연발 리볼버입니다" },
|
|
67
|
+
"assault-rifle": { label: "돌격소총", description: "긴 총신, 접이식 스톡, 레일의 광학 사이트, 휘어진 분리식 탄창을 가진 군용 돌격소총입니다" },
|
|
68
|
+
"shotgun": { label: "샷건", description: "넓은 보어 총신, 전술 포어엔드, 아래의 튜브 탄창, 목재 또는 합성 스톡을 가진 펌프 액션 샷건입니다" },
|
|
69
|
+
"smg": { label: "기관단총", description: "짧은 총신, 측면 마운트 탄창, 접이식 와이어 스톡, 일체형 포어그립을 가진 콤팩트한 기관단총입니다" },
|
|
70
|
+
"sniper-rifle": { label: "저격소총", description: "긴 총신, 고배율 스코프, 양각대, 인체공학적 폴리머 스톡을 가진 볼트 액션 저격소총입니다" },
|
|
71
|
+
"machine-gun": { label: "기관총", description: "긴 핀이 있는 총신, 양각대, 운반 손잡이, 측면에서 공급되는 탄띠를 가진 무거운 벨트 급송식 기관총입니다" },
|
|
72
|
+
|
|
73
|
+
// Historical Firearms
|
|
74
|
+
"musket": { label: "머스킷", description: "활강 철제 총신, 호두나무 스톡, 황동 피팅, 총구 근처에 고정된 총검을 가진 긴 부싯돌식 머스킷입니다" },
|
|
75
|
+
"flintlock-pistol": { label: "부싯돌식 권총", description: "휘어진 목재 그립, 새겨진 황동 피팅, 부싯돌 해머, 단일 긴 총신을 가진 화려한 부싯돌식 권총입니다" },
|
|
76
|
+
"blunderbuss": { label: "블런더버스", description: "플레어드 총구, 견고한 목재 스톡의 황동 피팅, 해적 시대의 존재감을 가진 짧은 부싯돌식 블런더버스입니다" },
|
|
77
|
+
"dueling-pistol": { label: "결투용 권총", description: "슬림한 팔각형 총신, 정교하게 새겨진 록워크, 광택 나는 호두나무 그립을 가진 우아한 결투용 권총입니다" },
|
|
78
|
+
|
|
79
|
+
// Explosives & Siege
|
|
80
|
+
"grenade": { label: "수류탄", description: "당겨진 안전핀에 의해 고정된 스푼 레버를 가진 파인애플 텍스처 철제 파편 수류탄입니다" },
|
|
81
|
+
"stick-grenade": { label: "막대 수류탄", description: "긴 목재 손잡이 위에 장착된 철제 탄두와 베이스의 당김 줄 퓨즈를 가진 원통형 막대 수류탄입니다" },
|
|
82
|
+
"dynamite": { label: "다이너마이트", description: "끈으로 감싸 묶은 빨간 다이너마이트 막대 다발과 타오르는 끝을 가진 긴 부글거리는 퓨즈가 연결되어 있습니다" },
|
|
83
|
+
"bomb": { label: "만화 폭탄", description: "위쪽에서 연기 나는 말린 퓨즈가 나오는 둥근 검은 만화 폭탄과 광택 있는 구형 철제 셸입니다" },
|
|
84
|
+
"rocket-launcher": { label: "로켓 발사기", description: "긴 튜브, 전방 그립, 후방 배기 콘, 광학 조준 사이트를 가진 어깨 발사식 로켓 발사기입니다" },
|
|
85
|
+
"cannon": { label: "대포", description: "목재 휠 캐리지에 장착된 긴 활강 총신과 연기 나는 환기구를 가진 주철 머즐 로딩 대포입니다" },
|
|
86
|
+
"catapult": { label: "투석기", description: "젖혀진 긴 투척 암, 카운터웨이트나 비틀림 번들, 돌이 든 바구니를 가진 목재 공성 투석기입니다" },
|
|
87
|
+
"trebuchet": { label: "트레뷰셋", description: "거대한 카운터웨이트, 긴 투척 암, 꼰 슬링, 무거운 목재 프레임을 가진 키 큰 중세 트레뷰셋입니다" },
|
|
88
|
+
|
|
89
|
+
// Sci-Fi
|
|
90
|
+
"laser-pistol": { label: "레이저 권총", description: "빛나는 네온 에너지 코일, 능선 있는 금속 본체, 짧은 이미터 총신을 가진 콤팩트한 SF 레이저 권총입니다" },
|
|
91
|
+
"plasma-rifle": { label: "플라즈마 라이플", description: "빛나는 푸른 에너지 셀, 환기되는 총신 슈라우드, 홀로그래픽 사이트를 가진 미래형 플라즈마 라이플입니다" },
|
|
92
|
+
"lightsaber": { label: "라이트세이버", description: "금속 리브드 손잡이에서 채도 높은 에너지의 키 큰 빛나는 칼날과 흐릿한 플라즈마 후광을 발산하는 레이저 검입니다" },
|
|
93
|
+
"blaster": { label: "블래스터", description: "각진 차체, 빛나는 에너지 챔버, 냉각 환기구, 위에 장착된 스코프를 가진 레트로 미래형 블래스터 권총입니다" },
|
|
94
|
+
"phaser": { label: "페이저", description: "미니멀한 곡선 그립, 빛나는 이미터 끝, 강도를 제어하는 매끄러운 패널을 가진 매끈한 SF 페이저입니다" },
|
|
95
|
+
"rail-gun": { label: "레일건", description: "평행한 금속 레일, 차체를 따라 거대한 커패시터, 빛나는 발사체 챔버를 가진 무거운 전자기 레일건입니다" },
|
|
96
|
+
"emp-grenade": { label: "EMP 수류탄", description: "노출된 코일, 빛나는 푸른 표시등, 홀로그래픽 무장 다이얼을 가진 구형 전자기 펄스 수류탄입니다" },
|
|
97
|
+
|
|
98
|
+
// Fantasy / Magical
|
|
99
|
+
"enchanted-sword": { label: "인챈트 검", description: "빛나는 룬이 새겨진 칼날, 금 상감 십자 가드, 폼멜에 박힌 보석을 가진 인챈트 검입니다" },
|
|
100
|
+
"magic-staff": { label: "마법 지팡이", description: "비틀린 목재 자루가 끝에서 빛나는 크리스털을 들고 있는 가지의 왕관으로 끝나는 키 큰 옹이 진 마법사 지팡이입니다" },
|
|
101
|
+
"runed-dagger": { label: "룬 단검", description: "빛나는 룬으로 새겨진 칼날, 뼈 손잡이, 가장자리를 따라 소용돌이치는 어두운 에너지를 가진 신비한 단검입니다" },
|
|
102
|
+
"wizard-wand": { label: "마법사 완드", description: "옹이 진 소용돌이, 가죽 그립, 뾰족한 끝에서 새어 나오는 작은 마법의 불꽃을 가진 슬림한 목재 완드입니다" },
|
|
103
|
+
"war-horn": { label: "전쟁 호른", description: "가죽과 은색 띠로 묶인 거대한 휘어진 전쟁 호른으로, 한쪽 끝에 마우스피스와 다른 쪽에 플레어된 울리는 입구가 있습니다" },
|
|
104
|
+
"sorcerer-orb": { label: "마법사의 오브", description: "비틀린 은색 발톱 스탠드에 들린 크리스털 마법사의 오브로, 유리 구체 안에 소용돌이치는 비전 안개가 떠 있습니다" },
|
|
105
|
+
|
|
106
|
+
// Additional weapons
|
|
107
|
+
"zweihander": { label: "츠바이헨더", description: "양손으로 다루는 독일 르네상스 시대의 그레이트소드입니다" },
|
|
108
|
+
"slingshot": { label: "새총", description: "고무줄이 달린 Y자형 목재 프레임입니다" },
|
|
109
|
+
"blowgun": { label: "블로건", description: "숨으로 다트를 발사하는 긴 파이프입니다" },
|
|
110
|
+
"service-pistol": { label: "서비스 권총", description: "모던 반자동 사이드암입니다" },
|
|
111
|
+
"hunting-rifle": { label: "사냥 라이플", description: "스코프가 장착된 볼트 액션 호두나무 스톡 라이플입니다" },
|
|
112
|
+
"plasma-sword": { label: "플라즈마 소드 / 라이트세이버", description: "밝은 빛을 내뿜는 SF 에너지 검입니다" },
|
|
113
|
+
"gravity-gun": { label: "그래비티 건", description: "물리 법칙을 조작하는 SF 원거리 무기입니다" },
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export default map
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// Swords
|
|
5
|
+
"katana": { description: "Katana japonesa com lâmina de fio único levemente curvada, cabo enrolado em pele de raia, guarda tsuba em forma de disco e acabamento polido tipo espelho" },
|
|
6
|
+
"longsword": { label: "Espada Longa", description: "Espada longa medieval de dois gumes, com lâmina reta e afilada, cruzeta, empunhadura envolta em couro e pomo redondo" },
|
|
7
|
+
"broadsword": { label: "Espada Larga", description: "Espada larga e pesada com lâmina reta de dois gumes, guarda em cesto e empunhadura robusta envolta em couro" },
|
|
8
|
+
"rapier": { label: "Florete", description: "Florete esguio com lâmina longa, estreita e perfurante, guarda ornamentada em cesto curvado e pomo esférico" },
|
|
9
|
+
"saber": { label: "Sabre", description: "Sabre de cavalaria com lâmina curvada de fio único, guarda de latão em arco protegendo os dedos e empunhadura em couro estriado" },
|
|
10
|
+
"scimitar": { label: "Cimitarra", description: "Cimitarra curvada com lâmina larga de fio único, cruzeta ornamentada e pomo metálico arredondado" },
|
|
11
|
+
"claymore": { description: "Claymore escocesa massiva de duas mãos, com lâmina longa e reta, cruzeta inclinada para frente e empunhadura grande envolta em couro" },
|
|
12
|
+
"cutlass": { label: "Sabre de Abordagem", description: "Sabre de abordagem pirata com lâmina curta e curvada de fio único, guarda em forma de cuia em latão e empunhadura de madeira envelhecida" },
|
|
13
|
+
"wakizashi": { description: "Lâmina curta japonesa wakizashi, companheira da katana, com fio levemente curvado, pequena tsuba e cabo envolto em pele de raia" },
|
|
14
|
+
"falchion": { label: "Falchion", description: "Falchion pesado de fio único, com lâmina afilada tipo cutelo, cruzeta simples e empunhadura de couro rebitada" },
|
|
15
|
+
|
|
16
|
+
// Daggers & Knives
|
|
17
|
+
"dagger": { label: "Adaga", description: "Adaga clássica de dois gumes, com lâmina estreita e pontiaguda, cruzeta e empunhadura envolta em couro" },
|
|
18
|
+
"bowie-knife": { description: "Grande faca Bowie com lâmina de ponta clip-point, guarda de latão, cabo de couro empilhado e cruzeta" },
|
|
19
|
+
"kukri": { description: "Kukri nepalesa com lâmina larga curvada para frente, cabo de madeira e recurva interna característica" },
|
|
20
|
+
"stiletto": { description: "Stiletto esguio com lâmina triangular longa e fina como agulha, cruzeta mínima e cabo afilado" },
|
|
21
|
+
"dirk": { description: "Dirk escocês com lâmina longa e reta de fio único, empunhadura entrelaçada com nós celtas e pomo ornamentado" },
|
|
22
|
+
"tanto": { description: "Adaga tanto japonesa com ponta angular tipo cinzel, pequena tsuba e cabo envolto em pele de raia" },
|
|
23
|
+
"switchblade": { label: "Canivete Automático", description: "Canivete automático de bolso com lâmina dobrável acionada por mola, painéis laterais em pérola ou resina e botão de liberação polido" },
|
|
24
|
+
"trench-knife": { label: "Faca de Trincheira", description: "Faca militar de trincheira com lâmina esguia de dois gumes e guarda soco-inglês de latão envolvendo a empunhadura" },
|
|
25
|
+
|
|
26
|
+
// Axes
|
|
27
|
+
"battle-axe": { label: "Machado de Guerra", description: "Pesado machado de guerra de duas mãos, com fio largo curvado, perfil barbado e cabo longo de madeira reforçado por bandas de ferro" },
|
|
28
|
+
"tomahawk": { description: "Tomahawk leve de arremesso, com pequena cabeça de ferro de gume único, cabo reto de madeira e enrolamento de couro próximo à empunhadura" },
|
|
29
|
+
"hatchet": { label: "Machadinha", description: "Machadinha compacta com cabo curto de madeira, pequena cabeça de aço de gume único e acabamento martelado" },
|
|
30
|
+
"halberd": { label: "Alabarda", description: "Alabarda longa combinando lâmina de machado, ponta de lança perfurante e gancho traseiro sobre um cabo alto de madeira" },
|
|
31
|
+
"greataxe": { label: "Grande Machado", description: "Grande machado massivo com cabeça enorme em forma de crescente duplo, bandas de reforço em ferro e cabo longo e pesado que exige duas mãos" },
|
|
32
|
+
"bearded-axe": { label: "Machado Barbado", description: "Machado barbado viking com fio inferior alongado, cabeça estreita de ferro e cabo alto de madeira envolto em couro" },
|
|
33
|
+
|
|
34
|
+
// Polearms
|
|
35
|
+
"spear": { label: "Lança", description: "Lança simples com ponta de ferro em forma de folha amarrada a um cabo alto e reto de madeira, com pequena ponteira na base" },
|
|
36
|
+
"lance": { label: "Lança de Justa", description: "Lança de justa com cabo longo de madeira, ponta cônica de aço e guarda flamejada protegendo a empunhadura" },
|
|
37
|
+
"pike": { label: "Pique", description: "Pique muito longo com pequena ponta triangular montada no topo de um mastro de madeira do dobro da altura de um homem" },
|
|
38
|
+
"glaive": { description: "Glaive — alabarda com lâmina longa curvada de fio único montada em cabo de madeira, terminando em pequena cruzeta" },
|
|
39
|
+
"trident": { label: "Tridente", description: "Tridente de três pontas com farpas afiadas, haste central e longo cabo de madeira" },
|
|
40
|
+
"naginata": { description: "Naginata japonesa com lâmina curvada de fio único montada em longo cabo de madeira lacada, com enrolamentos de seda" },
|
|
41
|
+
|
|
42
|
+
// Bows & Crossbows
|
|
43
|
+
"longbow": { label: "Arco Longo", description: "Alto arco longo inglês feito de uma peça única de teixo, corda de linho encerada e empunhadura envolta em couro" },
|
|
44
|
+
"recurve-bow": { label: "Arco Recurvo", description: "Arco recurvo tradicional com braços que se afastam do arqueiro, riser envolto em couro e corda esticada" },
|
|
45
|
+
"compound-bow": { label: "Arco Composto", description: "Arco composto moderno com cames de alumínio, roldanas em cada ponta, descanso de flecha em fibra de carbono e conjunto de pinos de mira" },
|
|
46
|
+
"crossbow": { label: "Besta", description: "Besta medieval com coronha horizontal de madeira, arco de aço, corda esticada e mecanismo de gatilho sob o trilho" },
|
|
47
|
+
"short-bow": { label: "Arco Curto", description: "Arco curto compacto de madeira com perfil curvado simples, corda encerada e empunhadura de couro no meio" },
|
|
48
|
+
|
|
49
|
+
// Blunt & Impact
|
|
50
|
+
"mace": { label: "Maça", description: "Maça flangeada medieval com cabeça pesada coroada por flanges de ferro salientes sobre um cabo curto de ferro" },
|
|
51
|
+
"war-hammer": { label: "Martelo de Guerra", description: "Martelo de guerra de cabo longo, com cabeça pesada de ferro tendo face de impacto plana de um lado e ponta curvada do outro" },
|
|
52
|
+
"club": { label: "Porrete", description: "Porrete simples de madeira com cabeça grossa e nodosa, cabo afilado e empunhadura de couro desgastada perto da base" },
|
|
53
|
+
"morning-star": { description: "Morning star com cabo de madeira encimado por uma grande bola de ferro eriçada de espigões altos em todas as direções" },
|
|
54
|
+
"flail": { label: "Mangual", description: "Mangual militar com bola de ferro com espigões conectada por curta corrente a um cabo de madeira com ponteira de ferro" },
|
|
55
|
+
"nunchaku": { description: "Nunchaku de artes marciais com dois bastões de madeira polida unidos por uma curta corda trançada ou corrente" },
|
|
56
|
+
|
|
57
|
+
// Throwing
|
|
58
|
+
"shuriken": { description: "Estrela de arremesso shuriken com várias pontas afiadas como navalhas irradiando de um eixo central, com acabamento de aço escurecido" },
|
|
59
|
+
"throwing-knife": { label: "Faca de Arremesso", description: "Faca de arremesso balanceada com lâmina em forma de folha de dois gumes, cabo mínimo e acabamento polido em aço" },
|
|
60
|
+
"boomerang": { description: "Bumerangue curvo de madeira com curva em cotovelo, padrões tribais pintados e perfil aerodinâmico suave" },
|
|
61
|
+
"javelin": { label: "Dardo", description: "Dardo leve de arremesso com ponta esguia de aço, cabo de madeira afilado e enrolamento de couro perto do ponto de equilíbrio" },
|
|
62
|
+
"bolas": { description: "Bolas: três pesos de pedra ou ferro amarrados por cordas trançadas de couro que se encontram em um nó central" },
|
|
63
|
+
|
|
64
|
+
// Modern Firearms
|
|
65
|
+
"pistol": { label: "Pistola", description: "Pistola semiautomática moderna com armação preta fosca em polímero, ferrolho ranhurado, guarda-mato e base de carregador rente" },
|
|
66
|
+
"revolver": { label: "Revólver", description: "Revólver six-shooter com cilindro giratório, cano longo, cão engatilhado e empunhadura quadriculada de madeira" },
|
|
67
|
+
"assault-rifle": { label: "Fuzil de Assalto", description: "Fuzil de assalto militar com cano longo, coronha retrátil, mira óptica no trilho e carregador curvado destacável" },
|
|
68
|
+
"shotgun": { label: "Espingarda", description: "Espingarda pump-action com cano de calibre largo, telha tática, carregador tubular embaixo e coronha de madeira ou sintética" },
|
|
69
|
+
"smg": { label: "Submetralhadora", description: "Submetralhadora compacta com cano curto, carregador montado lateralmente, coronha de arame dobrável e empunhadura dianteira integrada" },
|
|
70
|
+
"sniper-rifle": { label: "Rifle Sniper", description: "Rifle sniper de ferrolho com cano longo, luneta de alta magnificação, bipé e coronha ergonômica em polímero" },
|
|
71
|
+
"machine-gun": { label: "Metralhadora", description: "Pesada metralhadora alimentada por cinta com cano longo aletado, bipé, alça de transporte e fita de munição alimentando pela lateral" },
|
|
72
|
+
|
|
73
|
+
// Historical Firearms
|
|
74
|
+
"musket": { label: "Mosquete", description: "Mosquete longo de pederneira com cano de ferro de alma lisa, coronha de nogueira, guarnições de latão e baioneta fixada perto da boca" },
|
|
75
|
+
"flintlock-pistol": { label: "Pistola de Pederneira", description: "Pistola de pederneira ornamentada com empunhadura curvada de madeira, guarnições de latão gravadas, cão de pederneira e cano único e longo" },
|
|
76
|
+
"blunderbuss": { label: "Bacamarte", description: "Bacamarte curto de pederneira com boca alargada, guarnições de latão sobre coronha robusta de madeira e presença da era pirata" },
|
|
77
|
+
"dueling-pistol": { label: "Pistola de Duelo", description: "Elegante pistola de duelo com cano octogonal esguio, mecanismo finamente gravado e empunhadura polida de nogueira" },
|
|
78
|
+
|
|
79
|
+
// Explosives & Siege
|
|
80
|
+
"grenade": { label: "Granada", description: "Granada de fragmentação de ferro com textura de abacaxi, alavanca de spoon presa por pino de segurança puxado" },
|
|
81
|
+
"stick-grenade": { label: "Granada de Cabo", description: "Granada de cabo cilíndrica com ogiva de ferro montada no topo de um longo cabo de madeira e estopim de cordão de tração na base" },
|
|
82
|
+
"dynamite": { label: "Dinamite", description: "Bastões agrupados de dinamite vermelha amarrados com barbante e ligados a um longo estopim crepitante com ponta acesa" },
|
|
83
|
+
"bomb": { label: "Bomba de Desenho", description: "Bomba preta redonda de desenho animado com estopim enrolado e fumegante saindo do topo e casca esférica de ferro brilhante" },
|
|
84
|
+
"rocket-launcher": { label: "Lança-Foguetes", description: "Lança-foguetes de ombro com tubo longo, empunhadura dianteira, cone de exaustão traseiro e mira óptica" },
|
|
85
|
+
"cannon": { label: "Canhão", description: "Canhão de ferro fundido carregado pela boca, montado em carreta de madeira com rodas, cano longo de alma lisa e respiradouro fumegante" },
|
|
86
|
+
"catapult": { label: "Catapulta", description: "Catapulta de cerco de madeira com longo braço de arremesso engatilhado, contrapeso ou feixe de torção e cesto carregado com pedra" },
|
|
87
|
+
"trebuchet": { label: "Trabuco", description: "Alto trabuco medieval com contrapeso massivo, longo braço de arremesso, funda trançada e armação pesada de madeira" },
|
|
88
|
+
|
|
89
|
+
// Sci-Fi
|
|
90
|
+
"laser-pistol": { label: "Pistola de Laser", description: "Compacta pistola laser sci-fi com bobinas de energia neon brilhante, corpo metálico estriado e curto cano emissor" },
|
|
91
|
+
"plasma-rifle": { label: "Rifle de Plasma", description: "Futurístico rifle de plasma com células de energia azul brilhante, capas ventiladas no cano e mira holográfica" },
|
|
92
|
+
"lightsaber": { label: "Sabre de Luz", description: "Espada laser com cabo metálico estriado emitindo uma lâmina alta e brilhante de energia saturada com halo plasmático nebuloso" },
|
|
93
|
+
"blaster": { description: "Blaster pistola retrofuturista com corpo robusto, câmara de energia brilhante, aletas de resfriamento e mira montada no topo" },
|
|
94
|
+
"phaser": { description: "Elegante phaser sci-fi com empunhadura curvada minimalista, ponta emissora brilhante e painel liso para controle de intensidade" },
|
|
95
|
+
"rail-gun": { label: "Canhão Eletromagnético", description: "Pesado canhão eletromagnético com trilhos metálicos paralelos, capacitores massivos ao longo do corpo e câmara de projétil brilhante" },
|
|
96
|
+
"emp-grenade": { label: "Granada EMP", description: "Granada esférica de pulso eletromagnético com bobinas expostas, luzes indicadoras azuis brilhantes e mostrador holográfico de armamento" },
|
|
97
|
+
|
|
98
|
+
// Fantasy / Magical
|
|
99
|
+
"enchanted-sword": { label: "Espada Encantada", description: "Espada encantada com lâmina gravada por runas brilhantes, cruzeta com incrustações de ouro e gema embutida no pomo" },
|
|
100
|
+
"magic-staff": { label: "Cajado Mágico", description: "Alto cajado de mago retorcido, com haste de madeira torcida terminando em coroa de galhos segurando um cristal brilhante" },
|
|
101
|
+
"runed-dagger": { label: "Adaga Rúnica", description: "Adaga mística com lâmina inscrita em runas brilhantes, cabo de osso e energia sombria deslizando pelo fio" },
|
|
102
|
+
"wizard-wand": { label: "Varinha de Mago", description: "Varinha esguia de madeira com espirais entalhadas, empunhadura de couro e pequenas faíscas de magia escapando da ponta" },
|
|
103
|
+
"war-horn": { label: "Berrante de Guerra", description: "Massivo berrante de guerra curvado, encadernado em couro e bandas de prata, com bocal em uma extremidade e abertura flamejante na outra" },
|
|
104
|
+
"sorcerer-orb": { label: "Orbe de Feiticeiro", description: "Orbe de cristal de feiticeiro sustentado por um suporte torcido de prata em forma de garra, com névoa arcana rodopiando suspensa dentro da esfera de vidro" },
|
|
105
|
+
"zweihander": { label: "Zweihänder", description: "Espada longa renascentista alemã empunhada com as duas mãos" },
|
|
106
|
+
"slingshot": { label: "Estilingue", description: "Armação de madeira em formato de Y com elástico" },
|
|
107
|
+
"blowgun": { label: "Zarabatana", description: "Tubo longo que dispara dardos com o sopro" },
|
|
108
|
+
"service-pistol": { label: "Pistola de Serviço", description: "Pistola lateral semiautomática moderna" },
|
|
109
|
+
"hunting-rifle": { label: "Rifle de Caça", description: "Rifle de ferrolho com coronha de madeira e luneta" },
|
|
110
|
+
"plasma-sword": { label: "Espada de Plasma / Sabre de Luz", description: "Lâmina de energia sci-fi emitindo brilho intenso" },
|
|
111
|
+
"gravity-gun": { label: "Arma de Gravidade", description: "Arma sci-fi de longo alcance que manipula a física" },
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export default map
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// -------------------- Swords --------------------
|
|
5
|
+
"katana": { label: "Катана", description: "Японская катана с однолезвийным мягко изогнутым клинком, рукоятью, обмотанной кожей ската, дискообразной гардой цуба и зеркальной полировкой" },
|
|
6
|
+
"longsword": { label: "Длинный меч", description: "Средневековый двулезвийный длинный меч с прямым сужающимся клинком, крестовиной, кожаной рукоятью и круглым навершием" },
|
|
7
|
+
"broadsword": { label: "Широкий меч", description: "Тяжёлый широкий меч с широким прямым двулезвийным клинком, корзинчатой гардой и крепкой кожаной рукоятью" },
|
|
8
|
+
"rapier": { label: "Рапира", description: "Тонкая рапира с длинным узким колющим клинком, богато украшенной корзинчатой гардой и сферическим навершием" },
|
|
9
|
+
"saber": { label: "Сабля", description: "Кавалерийская сабля с однолезвийным изогнутым клинком, латунной защитой костяшек и ребристой кожаной рукоятью" },
|
|
10
|
+
"scimitar": { label: "Ятаган", description: "Изогнутый ятаган с широким однолезвийным клинком, богато украшенной крестовиной и круглым металлическим навершием" },
|
|
11
|
+
"claymore": { label: "Клеймор", description: "Огромный двуручный шотландский клеймор с длинным прямым клинком, направленной вперёд крестовиной и большой обтянутой кожей рукоятью" },
|
|
12
|
+
"cutlass": { label: "Абордажная сабля", description: "Пиратская абордажная сабля с коротким изогнутым однолезвийным клинком, латунной чашевидной защитой руки и потёртой деревянной рукоятью" },
|
|
13
|
+
"wakizashi": { label: "Вакидзаси", description: "Короткий японский клинок-компаньон вакидзаси с мягко изогнутым лезвием, маленькой цубой и рукоятью, обмотанной кожей ската" },
|
|
14
|
+
"falchion": { label: "Фальшион", description: "Тяжёлый однолезвийный фальшион с тесакоподобным сужающимся клинком, простой крестовиной и заклёпанной кожаной рукоятью" },
|
|
15
|
+
|
|
16
|
+
// -------------------- Daggers & Knives --------------------
|
|
17
|
+
"dagger": { label: "Кинжал", description: "Классический двулезвийный кинжал с узким заострённым клинком, крестовиной и обмотанной кожей рукоятью" },
|
|
18
|
+
"bowie-knife": { label: "Нож Боуи", description: "Большой нож Боуи с лезвием с обратным скосом, латунной гардой, рукоятью из стопки кожаных шайб и крестовиной" },
|
|
19
|
+
"kukri": { label: "Кукри", description: "Непальский кукри с изогнутым вперёд широким клинком, деревянной рукоятью и характерным внутренним изгибом" },
|
|
20
|
+
"stiletto": { label: "Стилет", description: "Тонкий стилет с длинным игольчатым треугольным клинком, минимальной крестовиной и сужающейся рукоятью" },
|
|
21
|
+
"dirk": { label: "Дирк", description: "Шотландский дирк с длинным прямым однолезвийным клинком, переплетённой кельтским узлом рукоятью и богато украшенным навершием" },
|
|
22
|
+
"tanto": { label: "Танто", description: "Японский кинжал танто с угловатым острием в форме долото, маленькой цубой и обмотанной кожей ската рукоятью" },
|
|
23
|
+
"switchblade": { label: "Выкидной нож", description: "Карманный выкидной нож со складным клинком на пружине, перламутровыми боковыми панелями и полированной кнопкой" },
|
|
24
|
+
"trench-knife": { label: "Окопный нож", description: "Военный окопный нож с тонким двулезвийным клинком и латунным кастетом-рукоятью" },
|
|
25
|
+
|
|
26
|
+
// -------------------- Axes --------------------
|
|
27
|
+
"battle-axe": { label: "Боевой топор", description: "Тяжёлый двуручный боевой топор с широкой изогнутой режущей кромкой, бородатым профилем и длинным деревянным топорищем, скреплённым железными обручами" },
|
|
28
|
+
"tomahawk": { label: "Томагавк", description: "Лёгкий метательный томагавк с маленькой однолезвийной железной головкой, прямым деревянным топорищем и кожаной обмоткой возле рукояти" },
|
|
29
|
+
"hatchet": { label: "Топорик", description: "Компактный топорик с короткой деревянной рукоятью, маленькой однолезвийной стальной головкой и кованой отделкой" },
|
|
30
|
+
"halberd": { label: "Алебарда", description: "Длиннодревковая алебарда, сочетающая лезвие топора, колющий копейный наконечник и задний крюк на высоком деревянном древке" },
|
|
31
|
+
"greataxe": { label: "Великий топор", description: "Огромный великий топор с большой двусторонней полумесячной головкой, железными усиливающими обручами и длинным тяжёлым топорищем для двух рук" },
|
|
32
|
+
"bearded-axe": { label: "Бородатый топор", description: "Викингский бородатый топор с удлинённой нижней режущей кромкой, узкой железной головкой и высоким деревянным топорищем, обмотанным кожей" },
|
|
33
|
+
|
|
34
|
+
// -------------------- Polearms --------------------
|
|
35
|
+
"spear": { label: "Копьё", description: "Простое копьё с листовидным железным наконечником, привязанным к высокому прямому деревянному древку, с маленькой накладкой основания" },
|
|
36
|
+
"lance": { label: "Кавалерийское копьё", description: "Турнирное копьё с длинным деревянным древком, коническим стальным наконечником и расширенной защитой руки" },
|
|
37
|
+
"pike": { label: "Пика", description: "Очень длинная пика с маленьким треугольным наконечником на возвышающемся деревянном шесте вдвое выше человека" },
|
|
38
|
+
"glaive": { label: "Глефа", description: "Древковое оружие глефа с длинным изогнутым однолезвийным клинком на деревянном древке, сужающемся до маленькой крестовины" },
|
|
39
|
+
"trident": { label: "Трезубец", description: "Трёхзубый трезубец с острыми зазубренными зубцами, центральным стержнем и длинным деревянным шестом" },
|
|
40
|
+
"naginata": { label: "Нагината", description: "Японская нагината с изогнутым однолезвийным клинком на длинном лакированном деревянном древке с шёлковыми обмотками" },
|
|
41
|
+
|
|
42
|
+
// -------------------- Bows & Crossbows --------------------
|
|
43
|
+
"longbow": { label: "Длинный лук", description: "Высокий английский длинный лук из цельного куска тиса, навощённой льняной тетивой и обмотанной кожей рукоятью" },
|
|
44
|
+
"recurve-bow": { label: "Рекурсивный лук", description: "Традиционный рекурсивный лук с плечами, изгибающимися от стрелка, обмотанной кожей рукоятью и натянутой тетивой" },
|
|
45
|
+
"compound-bow": { label: "Блочный лук", description: "Современный блочный лук с алюминиевыми эксцентриками, шкивами на каждом конце, углепластиковой полочкой стрелы и набором прицельных штифтов" },
|
|
46
|
+
"crossbow": { label: "Арбалет", description: "Средневековый арбалет с горизонтальным деревянным ложем, стальной дугой, натянутой тетивой и спусковым механизмом под направляющей" },
|
|
47
|
+
"short-bow": { label: "Короткий лук", description: "Компактный деревянный короткий лук с простым изогнутым профилем, навощённой тетивой и кожаной рукоятью посередине" },
|
|
48
|
+
|
|
49
|
+
// -------------------- Blunt & Impact --------------------
|
|
50
|
+
"mace": { label: "Булава", description: "Средневековая фланговая булава с тяжёлой коронованной головкой с выступающими железными фланцами на коротком железном стержне" },
|
|
51
|
+
"war-hammer": { label: "Боевой молот", description: "Длиннорукий боевой молот с тяжёлой железной головкой с плоской ударной стороной с одной стороны и изогнутым шипом с другой" },
|
|
52
|
+
"club": { label: "Дубина", description: "Простая деревянная дубина с толстой узловатой головкой, сужающимся стержнем и потёртой кожаной рукоятью у основания" },
|
|
53
|
+
"morning-star": { label: "Моргенштерн", description: "Моргенштерн с деревянным стержнем, увенчанным большим железным шаром, ощетинившимся высокими шипами во все стороны" },
|
|
54
|
+
"flail": { label: "Цеп", description: "Военный цеп с шипастым железным шаром, соединённым короткой цепью с деревянной рукоятью с железной торцевой накладкой" },
|
|
55
|
+
"nunchaku": { label: "Нунчаки", description: "Боевые нунчаки с двумя полированными деревянными батонами, соединёнными короткой плетёной верёвкой или цепью" },
|
|
56
|
+
|
|
57
|
+
// -------------------- Throwing --------------------
|
|
58
|
+
"shuriken": { label: "Сюрикен", description: "Металлическая метательная звезда с несколькими острыми точками, расходящимися от центрального хаба, и почернённой стальной отделкой" },
|
|
59
|
+
"throwing-knife": { label: "Метательный нож", description: "Сбалансированный метательный нож с листовидным двулезвийным клинком, минимальной рукоятью и полированной стальной отделкой" },
|
|
60
|
+
"boomerang": { label: "Бумеранг", description: "Изогнутый деревянный бумеранг с локтевым изгибом, расписанными племенными узорами и гладким аэродинамическим профилем" },
|
|
61
|
+
"javelin": { label: "Дротик", description: "Лёгкий метательный дротик с тонким стальным наконечником, сужающимся деревянным древком и кожаной рукоятью у точки баланса" },
|
|
62
|
+
"bolas": { label: "Бола", description: "Три утяжеленных каменных или железных шара, связанных плетёными кожаными шнурами, сходящимися к центральному узлу" },
|
|
63
|
+
|
|
64
|
+
// -------------------- Modern Firearms --------------------
|
|
65
|
+
"pistol": { label: "Пистолет", description: "Современный полуавтоматический пистолет с матово-чёрной полимерной рамкой, ребристым затвором, спусковой скобой и встроенным основанием магазина" },
|
|
66
|
+
"revolver": { label: "Револьвер", description: "Шестизарядный револьвер с вращающимся барабаном, длинным стволом, взведённым курком и клетчатой деревянной рукоятью" },
|
|
67
|
+
"assault-rifle": { label: "Штурмовая винтовка", description: "Военная штурмовая винтовка с длинным стволом, складным прикладом, оптическим прицелом на планке и изогнутым съёмным магазином" },
|
|
68
|
+
"shotgun": { label: "Дробовик", description: "Помповый дробовик с широким стволом, тактическим цевьём, трубчатым магазином снизу и деревянным или синтетическим прикладом" },
|
|
69
|
+
"smg": { label: "Пистолет-пулемёт", description: "Компактный пистолет-пулемёт с коротким стволом, боковым магазином, складным проволочным прикладом и встроенной передней рукоятью" },
|
|
70
|
+
"sniper-rifle": { label: "Снайперская винтовка", description: "Болтовая снайперская винтовка с длинным стволом, прицелом высокого увеличения, сошками и эргономичным полимерным прикладом" },
|
|
71
|
+
"machine-gun": { label: "Пулемёт", description: "Тяжёлый ленточный пулемёт с длинным оребрённым стволом, сошками, ручкой для переноски и патронной лентой, подающейся сбоку" },
|
|
72
|
+
|
|
73
|
+
// -------------------- Historical Firearms --------------------
|
|
74
|
+
"musket": { label: "Мушкет", description: "Длинный кремнёвый мушкет с гладкоствольным железным стволом, ореховым прикладом, латунной фурнитурой и штыком, закреплённым около дула" },
|
|
75
|
+
"flintlock-pistol": { label: "Кремнёвый пистолет", description: "Богато украшенный кремнёвый пистолет с изогнутой деревянной рукоятью, гравированной латунной фурнитурой, кремнёвым курком и одним длинным стволом" },
|
|
76
|
+
"blunderbuss": { label: "Мушкетон", description: "Короткий кремнёвый мушкетон с раструбом дула, латунной фурнитурой на крепком деревянном прикладе и присутствием пиратской эпохи" },
|
|
77
|
+
"dueling-pistol": { label: "Дуэльный пистолет", description: "Элегантный дуэльный пистолет с тонким восьмиугольным стволом, тонко гравированным замком и полированной ореховой рукоятью" },
|
|
78
|
+
|
|
79
|
+
// -------------------- Explosives & Siege --------------------
|
|
80
|
+
"grenade": { label: "Граната", description: "Чугунная осколочная граната с текстурой ананаса с рычагом-ложкой, удерживаемым выдернутой чекой" },
|
|
81
|
+
"stick-grenade": { label: "Граната-колотушка", description: "Цилиндрическая граната-колотушка с железной боеголовкой на длинной деревянной ручке и шнуром-запалом у основания" },
|
|
82
|
+
"dynamite": { label: "Динамит", description: "Связки шашек красного динамита, обмотанные шпагатом и соединённые с длинным шипящим запалом с горящим кончиком" },
|
|
83
|
+
"bomb": { label: "Мультяшная бомба", description: "Круглая чёрная мультяшная бомба с дымящимся закрученным запалом сверху и блестящей сферической железной оболочкой" },
|
|
84
|
+
"rocket-launcher": { label: "Ракетный гранатомёт", description: "Ракетный гранатомёт, выстреливаемый с плеча, с длинной трубой, передней рукоятью, задним выхлопным конусом и оптическим прицелом наведения" },
|
|
85
|
+
"cannon": { label: "Пушка", description: "Чугунная дульнозарядная пушка на деревянном колёсном лафете с длинным гладкоствольным стволом и дымящимся запальным отверстием" },
|
|
86
|
+
"catapult": { label: "Катапульта", description: "Деревянная осадная катапульта с длинной метательной рукоятью, отведённой назад, противовесом или торсионным узлом и корзиной, загруженной камнем" },
|
|
87
|
+
"trebuchet": { label: "Требушет", description: "Высокий средневековый требушет с массивным противовесом, длинной метательной рукоятью, плетёной пращой и тяжёлой деревянной рамой" },
|
|
88
|
+
|
|
89
|
+
// -------------------- Sci-Fi --------------------
|
|
90
|
+
"laser-pistol": { label: "Лазерный пистолет", description: "Компактный научно-фантастический лазерный пистолет со светящимися неоновыми энергетическими катушками, ребристым металлическим корпусом и коротким излучателем-стволом" },
|
|
91
|
+
"plasma-rifle": { label: "Плазменная винтовка", description: "Футуристическая плазменная винтовка со светящимися синими энергетическими ячейками, вентилируемыми стволовыми кожухами и голографическим прицелом" },
|
|
92
|
+
"lightsaber": { label: "Световой меч", description: "Лазерный меч с металлической ребристой рукоятью, излучающий высокий светящийся клинок насыщенной энергии с дымчатым плазменным ореолом" },
|
|
93
|
+
"blaster": { label: "Бластер", description: "Ретро-футуристический пистолет-бластер с массивным корпусом, светящейся энергетической камерой, охлаждающими отверстиями и прицелом сверху" },
|
|
94
|
+
"phaser": { label: "Фазер", description: "Гладкий научно-фантастический фазер с минималистичной изогнутой рукоятью, светящимся кончиком излучателя и гладкой панелью управления интенсивностью" },
|
|
95
|
+
"rail-gun": { label: "Рельсотрон", description: "Тяжёлый электромагнитный рельсотрон с параллельными металлическими рельсами, массивными конденсаторами вдоль корпуса и светящейся камерой снаряда" },
|
|
96
|
+
"emp-grenade": { label: "ЭМИ-граната", description: "Сферическая граната электромагнитного импульса с открытыми катушками, светящимися синими индикаторами и голографическим диском взвода" },
|
|
97
|
+
|
|
98
|
+
// -------------------- Fantasy / Magical --------------------
|
|
99
|
+
"enchanted-sword": { label: "Зачарованный меч", description: "Зачарованный меч с светящимся клинком, гравированным рунами, золотой инкрустацией крестовины и драгоценным камнем в навершии" },
|
|
100
|
+
"magic-staff": { label: "Магический посох", description: "Высокий узловатый посох волшебника с закрученным деревянным стержнем, заканчивающимся короной из ветвей, держащих светящийся кристалл" },
|
|
101
|
+
"runed-dagger": { label: "Рунический кинжал", description: "Мистический кинжал с клинком, испещрённым светящимися рунами, костяной рукоятью и тёмной энергией, кружащейся вдоль кромки" },
|
|
102
|
+
"wizard-wand": { label: "Волшебная палочка", description: "Тонкая деревянная палочка с гофрированными завитками, кожаной рукоятью и крошечными искрами магии, утекающими из заострённого кончика" },
|
|
103
|
+
"war-horn": { label: "Боевой рог", description: "Огромный изогнутый боевой рог, обтянутый кожей и серебряными бандами, с мундштуком на одном конце и расширенным гудящим отверстием на другом" },
|
|
104
|
+
"sorcerer-orb": { label: "Сфера колдуна", description: "Хрустальная сфера колдуна, удерживаемая в закрученной серебряной когтистой подставке, с кружащейся арканной мглой внутри стеклянного шара" },
|
|
105
|
+
"zweihander": { label: "Цвайхендер", description: "Двуручный немецкий ренессансный двуручный меч" },
|
|
106
|
+
"slingshot": { label: "Рогатка", description: "Y-образная деревянная рамка с эластичной резинкой" },
|
|
107
|
+
"blowgun": { label: "Духовая трубка", description: "Длинная трубка, выстреливающая дротики дыханием" },
|
|
108
|
+
"service-pistol": { label: "Служебный пистолет", description: "Современное полуавтоматическое короткоствольное оружие" },
|
|
109
|
+
"hunting-rifle": { label: "Охотничье ружьё", description: "Болтовая винтовка с деревянным ложем и оптическим прицелом" },
|
|
110
|
+
"plasma-sword": { label: "Плазменный меч / Световой меч", description: "Научно-фантастический энергетический клинок, излучающий яркое свечение" },
|
|
111
|
+
"gravity-gun": { label: "Гравитационная пушка", description: "Научно-фантастическое дальнобойное оружие, манипулирующее физикой" },
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export default map
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import type { LocaleCatalogMap } from "./types.js"
|
|
2
|
+
|
|
3
|
+
const map: LocaleCatalogMap = {
|
|
4
|
+
// -------------------- Swords --------------------
|
|
5
|
+
"katana": { label: "武士刀", description: "日本武士刀,单刃微弯刀身、缠鲨鱼皮的刀柄、圆盘状鍔与镜面抛光" },
|
|
6
|
+
"longsword": { label: "长剑", description: "中世纪双刃长剑,直且渐细的剑身、十字护手、皮革缠柄与圆形剑首" },
|
|
7
|
+
"broadsword": { label: "阔剑", description: "重型阔剑,宽直双刃剑身、笼状护手与坚固皮革缠柄" },
|
|
8
|
+
"rapier": { label: "细剑", description: "纤细细剑,长而窄的刺剑刃、华丽的扫式护手与球形剑首" },
|
|
9
|
+
"saber": { label: "马刀", description: "骑兵马刀,单刃弯刀身、铜制指节护手与带肋皮革握把" },
|
|
10
|
+
"scimitar": { label: "弯刀", description: "弯曲的弯刀,宽阔的单刃刀身、华丽十字护手与圆形金属刀首" },
|
|
11
|
+
"claymore": { label: "苏格兰大剑", description: "巨大的双手苏格兰大剑,长直剑身、向前倾的十字护手与皮革包裹的握把" },
|
|
12
|
+
"cutlass": { label: "短弯刀", description: "海盗短弯刀,短而弯的单刃刀身、铜制杯状护手与久经风化的木质握把" },
|
|
13
|
+
"wakizashi": { label: "胁差", description: "短款日本胁差伴刀,微弯刀刃、小鍔与缠鲨鱼皮握把" },
|
|
14
|
+
"falchion": { label: "弯背刀", description: "重型单刃弯背刀,劈砍般渐细的刀身、简单十字护手与铆接皮革握把" },
|
|
15
|
+
|
|
16
|
+
// -------------------- Daggers --------------------
|
|
17
|
+
"dagger": { label: "匕首", description: "经典双刃匕首,窄而尖的刀身、十字护手与缠绕的皮革握把" },
|
|
18
|
+
"bowie-knife": { label: "鲍伊刀", description: "大型鲍伊刀,带尖切的刀身、铜质护手、堆叠皮革垫圈握把与十字护手" },
|
|
19
|
+
"kukri": { label: "廓尔喀弯刀", description: "尼泊尔廓尔喀弯刀,前弯宽刃、木质握把与独特的内弯曲" },
|
|
20
|
+
"stiletto": { label: "尖刺匕首", description: "纤细的尖刺匕首,长针状三角刀身、极简十字护手与渐细握把" },
|
|
21
|
+
"dirk": { label: "苏格兰短剑", description: "苏格兰短剑,长直单刃刀身、凯尔特结手柄与华丽剑首" },
|
|
22
|
+
"tanto": { label: "短刀", description: "日本短刀,带方角凿尖的刀身、小鍔与缠鲨鱼皮握把" },
|
|
23
|
+
"switchblade": { label: "弹簧刀", description: "口袋弹簧刀,弹簧折叠刀身、珍珠或树脂侧板与抛光释放按钮" },
|
|
24
|
+
"trench-knife": { label: "战壕刀", description: "军用战壕刀,纤细双刃刀身与裹住握把的铜制指节护手" },
|
|
25
|
+
|
|
26
|
+
// -------------------- Axes --------------------
|
|
27
|
+
"battle-axe": { label: "战斧", description: "重型双手战斧,宽弧切刃、带胡须的轮廓与铁箍捆绑的长木柄" },
|
|
28
|
+
"tomahawk": { label: "投掷战斧", description: "轻型投掷战斧,小型单刃铁头、直木柄与握把附近的皮革缠绕" },
|
|
29
|
+
"hatchet": { label: "短柄斧", description: "紧凑的短柄斧,短木柄、小型单刃钢头与锤打表面" },
|
|
30
|
+
"halberd": { label: "戟", description: "长杆戟,结合斧刃、刺枪头与后部钩的高大木杆" },
|
|
31
|
+
"greataxe": { label: "巨斧", description: "巨大的双面新月斧头、铁制加固带与需要双手挥舞的长重木柄" },
|
|
32
|
+
"bearded-axe": { label: "维京胡须斧", description: "维京胡须斧,刀刃下半部加长、窄铁头与皮革缠绕的高木柄" },
|
|
33
|
+
|
|
34
|
+
// -------------------- Polearms --------------------
|
|
35
|
+
"spear": { label: "矛", description: "简单的矛,树叶形铁矛头绑在高大笔直的木杆上,杆底有小护盖" },
|
|
36
|
+
"lance": { label: "长枪", description: "比武长枪,长木杆、锥形钢尖与保护握把的喇叭形护手" },
|
|
37
|
+
"pike": { label: "长矛", description: "极长的长矛,小三角矛头装在比人高两倍的高大木杆上" },
|
|
38
|
+
"glaive": { label: "长柄刀", description: "长柄刀,长弯单刃刀身装在木杆上,渐细到小型十字护手" },
|
|
39
|
+
"trident": { label: "三叉戟", description: "三尖三叉戟,带倒刺的尖锐齿、中央杆与长木杆" },
|
|
40
|
+
"naginata": { label: "薙刀", description: "日本薙刀,弯曲单刃刀身装在长漆木杆上,带有丝绸缠绕" },
|
|
41
|
+
|
|
42
|
+
// -------------------- Bows --------------------
|
|
43
|
+
"longbow": { label: "长弓", description: "高大的英国长弓,单一紫杉木材、上蜡的亚麻弓弦与皮革缠绕握把" },
|
|
44
|
+
"recurve-bow": { label: "反曲弓", description: "传统反曲弓,弓臂向外反曲、皮革缠绕的弓把与绷紧的弓弦" },
|
|
45
|
+
"compound-bow": { label: "复合弓", description: "现代复合弓,铝制偏心轮、每端的滑轮、碳纤维箭台与瞄准针阵列" },
|
|
46
|
+
"crossbow": { label: "弩", description: "中世纪弩,水平木质弩身、钢弩臂、绷紧的弓弦与导轨下方的扳机机构" },
|
|
47
|
+
"short-bow": { label: "短弓", description: "紧凑的木质短弓,简单的弯曲轮廓、上蜡弓弦与中部皮革握把" },
|
|
48
|
+
|
|
49
|
+
// -------------------- Blunt --------------------
|
|
50
|
+
"mace": { label: "钉锤", description: "中世纪带凸缘的钉锤,沉重冠状锤头带突出铁凸缘,装在短铁柄上" },
|
|
51
|
+
"war-hammer": { label: "战锤", description: "长柄战锤,沉重铁锤头一面有平击打面、另一面有弯曲尖刺" },
|
|
52
|
+
"club": { label: "棍棒", description: "简单的木棍,粗壮的疙瘩状头、渐细的杆与底部用旧的皮革握把" },
|
|
53
|
+
"morning-star": { label: "晨星锤", description: "晨星锤,木柄顶部装着一个布满高耸尖刺的铁球" },
|
|
54
|
+
"flail": { label: "连枷", description: "军用连枷,带尖刺的铁球用短链连接到木柄,柄端有铁帽" },
|
|
55
|
+
"nunchaku": { label: "双节棍", description: "武术双节棍,两根抛光木棒由短编织绳或链条相连" },
|
|
56
|
+
|
|
57
|
+
// -------------------- Throwing --------------------
|
|
58
|
+
"shuriken": { label: "手里剑", description: "金属投掷星,中央枢纽辐射出多个锐利尖端,呈黝黑钢面" },
|
|
59
|
+
"throwing-knife":{ label: "飞刀", description: "平衡的飞刀,树叶形双刃刀身、极简握把与抛光钢面" },
|
|
60
|
+
"boomerang": { label: "回旋镖", description: "弯曲的木质回旋镖,带肘弯、绘有部族图案与流线型轮廓" },
|
|
61
|
+
"javelin": { label: "标枪", description: "轻型投掷标枪,纤细钢尖、渐细的木杆与平衡点附近的皮革握把缠绕" },
|
|
62
|
+
"bolas": { label: "投索", description: "三个加重的石球或铁球用编织皮绳系在中心结点上" },
|
|
63
|
+
|
|
64
|
+
// -------------------- Modern Firearms --------------------
|
|
65
|
+
"pistol": { label: "手枪", description: "现代半自动手枪,哑黑色聚合物框架、带肋滑套、扳机护圈与齐平弹匣底" },
|
|
66
|
+
"revolver": { label: "左轮手枪", description: "六发左轮手枪,旋转弹巢、长枪管、击锤后扳与方格木质握把" },
|
|
67
|
+
"assault-rifle": { label: "突击步枪", description: "军用突击步枪,长枪管、可折叠枪托、导轨上的光学瞄具与可拆卸弯曲弹匣" },
|
|
68
|
+
"shotgun": { label: "霰弹枪", description: "泵动霰弹枪,大口径枪管、战术护木、下方管状弹仓与木制或合成枪托" },
|
|
69
|
+
"smg": { label: "冲锋枪", description: "紧凑型冲锋枪,短枪管、侧装弹匣、可折叠铁丝枪托与一体前握把" },
|
|
70
|
+
"sniper-rifle": { label: "狙击步枪", description: "栓动狙击步枪,长枪管、高倍率瞄准镜、双脚架与人体工学聚合物枪托" },
|
|
71
|
+
"machine-gun": { label: "机枪", description: "重型弹链供弹机枪,长长带散热片的枪管、双脚架、提把与从侧面送入的弹链" },
|
|
72
|
+
|
|
73
|
+
// -------------------- Historical Firearms --------------------
|
|
74
|
+
"musket": { label: "燧发滑膛枪", description: "长燧发滑膛枪,光滑铁枪管、胡桃木枪托、铜质配件与靠近枪口固定的刺刀" },
|
|
75
|
+
"flintlock-pistol":{ label: "燧发手枪", description: "华丽的燧发手枪,弯曲木质握把、雕花铜配件、燧石击锤与单根长枪管" },
|
|
76
|
+
"blunderbuss": { label: "喇叭口火枪", description: "短款燧发喇叭口火枪,喇叭形枪口、粗木枪托上的铜配件与海盗时代气场" },
|
|
77
|
+
"dueling-pistol": { label: "决斗手枪", description: "优雅的决斗手枪,纤细八角枪管、精雕击发机构与抛光胡桃木握把" },
|
|
78
|
+
|
|
79
|
+
// -------------------- Explosives & Siege --------------------
|
|
80
|
+
"grenade": { label: "手榴弹", description: "菠萝纹理的铁制破片手榴弹,保险栓拔出后压住勺式拉杆" },
|
|
81
|
+
"stick-grenade": { label: "柄式手榴弹", description: "圆柱形柄式手榴弹,铁制弹头装在长木柄顶部,底部带拉绳引信" },
|
|
82
|
+
"dynamite": { label: "炸药", description: "成捆的红色炸药棒,用麻绳绑在一起,连接着燃烧的长导火索" },
|
|
83
|
+
"bomb": { label: "卡通炸弹", description: "圆形黑色卡通炸弹,顶部冒烟的卷曲导火索与亮闪闪的球形铁壳" },
|
|
84
|
+
"rocket-launcher":{ label: "火箭筒", description: "肩扛式火箭筒,长发射管、前握把、后部排气锥与光学瞄准镜" },
|
|
85
|
+
"cannon": { label: "大炮", description: "铸铁前装式大炮,装在木质轮架上,长光膛枪管与冒烟的发射孔" },
|
|
86
|
+
"catapult": { label: "投石器", description: "木质攻城投石器,长长的投掷臂被拉回、配重或扭力捆绑与装载石头的篮子" },
|
|
87
|
+
"trebuchet": { label: "配重投石机", description: "高大的中世纪配重投石机,巨大配重、长投掷臂、编织吊索与重木结构框架" },
|
|
88
|
+
|
|
89
|
+
// -------------------- Sci-Fi --------------------
|
|
90
|
+
"laser-pistol": { label: "激光手枪", description: "紧凑的科幻激光手枪,发光霓虹能量线圈、带肋金属枪身与短发射枪管" },
|
|
91
|
+
"plasma-rifle": { label: "等离子步枪", description: "未来等离子步枪,发光蓝色能量电池、带通风的枪管护套与全息瞄具" },
|
|
92
|
+
"lightsaber": { label: "光剑", description: "激光剑,金属带肋手柄发出高耸的饱和能量光刃,带朦胧的等离子光晕" },
|
|
93
|
+
"blaster": { label: "镭射枪", description: "复古未来镭射手枪,粗壮枪身、发光能量舱、散热孔与顶部安装的瞄准镜" },
|
|
94
|
+
"phaser": { label: "Phaser 镭射枪", description: "光滑的科幻 Phaser 镭射枪,极简弧形握把、发光发射尖端与控制强度的光滑面板" },
|
|
95
|
+
"rail-gun": { label: "电磁炮", description: "重型电磁炮,平行金属轨道、沿身体的巨大电容器与发光的弹丸舱" },
|
|
96
|
+
"emp-grenade": { label: "电磁脉冲手雷", description: "球形电磁脉冲手雷,外露线圈、发光蓝色指示灯与全息武装拨盘" },
|
|
97
|
+
|
|
98
|
+
// -------------------- Fantasy --------------------
|
|
99
|
+
"enchanted-sword":{ label: "附魔剑", description: "附魔剑,带发光符文蚀刻的剑身、镶金的十字护手与剑首中嵌入的宝石" },
|
|
100
|
+
"magic-staff": { label: "魔法杖", description: "高耸虬曲的法师法杖,扭曲木杆顶部分叉成树枝状,握住一颗发光的水晶" },
|
|
101
|
+
"runed-dagger": { label: "符文匕首", description: "神秘匕首,刀身刻着发光符文、骨制握把与沿刃口旋绕的暗黑能量" },
|
|
102
|
+
"wizard-wand": { label: "魔杖", description: "纤细的木质魔杖,带螺旋雕刻、皮革握把与从尖端漏出的小小魔法火花" },
|
|
103
|
+
"war-horn": { label: "战斗号角", description: "巨大的弯曲战斗号角,皮革与银带捆绑,一端为吹口,另一端为喇叭形吹响开口" },
|
|
104
|
+
"sorcerer-orb": { label: "巫师水晶球", description: "扭曲银色爪式底座托起的水晶巫师水晶球,玻璃球内悬浮着旋转的奥术雾气" },
|
|
105
|
+
"zweihander": { label: "Zweihänder 双手剑", description: "德意志文艺复兴时期的双手大剑" },
|
|
106
|
+
"slingshot": { label: "弹弓", description: "Y 形木叉配橡皮筋" },
|
|
107
|
+
"blowgun": { label: "吹箭筒", description: "用气息发射飞镖的长管" },
|
|
108
|
+
"service-pistol": { label: "制式手枪", description: "现代半自动佩枪" },
|
|
109
|
+
"hunting-rifle": { label: "猎枪", description: "栓动式木托狩猎步枪,带瞄准镜" },
|
|
110
|
+
"plasma-sword": { label: "等离子剑 / 光剑", description: "科幻能量光刃,散发明亮光晕" },
|
|
111
|
+
"gravity-gun": { label: "重力枪", description: "操控物理的科幻远程武器" },
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export default map
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from "zod"
|
|
2
|
+
|
|
3
|
+
export const IMAGE_CRITIC_LEAF_MODES = [
|
|
4
|
+
"character-consistency",
|
|
5
|
+
"realism",
|
|
6
|
+
"prompt-adherence",
|
|
7
|
+
"anatomy",
|
|
8
|
+
"aesthetic",
|
|
9
|
+
"style-match",
|
|
10
|
+
] as const
|
|
11
|
+
|
|
12
|
+
export const IMAGE_CRITIC_MODES = [
|
|
13
|
+
...IMAGE_CRITIC_LEAF_MODES,
|
|
14
|
+
"all",
|
|
15
|
+
] as const
|
|
16
|
+
|
|
17
|
+
export type ImageCriticLeafMode = (typeof IMAGE_CRITIC_LEAF_MODES)[number]
|
|
18
|
+
export type ImageCriticMode = (typeof IMAGE_CRITIC_MODES)[number]
|
|
19
|
+
|
|
20
|
+
const modeResult = z.object({
|
|
21
|
+
score: z.number().min(0).max(1),
|
|
22
|
+
feedback: z.string().min(1).max(300),
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
const issue = z.object({
|
|
26
|
+
category: z.string(),
|
|
27
|
+
severity: z.enum(["blocking", "warning", "info"]),
|
|
28
|
+
description: z.string().max(400),
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
// The critic LLM frequently emits `issues` as a bare string array even when the
|
|
32
|
+
// prompt asks for objects. Coerce strings into the issue shape so an otherwise
|
|
33
|
+
// well-formed critique isn't rejected as invalid_llm_output (which surfaced as
|
|
34
|
+
// a 502 from the /v1/image-critic route). Objects pass through unchanged.
|
|
35
|
+
const issueLenient = z.preprocess(
|
|
36
|
+
(v) =>
|
|
37
|
+
typeof v === "string"
|
|
38
|
+
? { category: "general", severity: "warning", description: v.slice(0, 400) }
|
|
39
|
+
: v,
|
|
40
|
+
issue,
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
export const ImageCriticResultSchema = z.object({
|
|
44
|
+
score: z.number().min(0).max(1),
|
|
45
|
+
feedback: z.string().min(1).max(600),
|
|
46
|
+
issues: z.array(issueLenient).optional(),
|
|
47
|
+
perMode: z
|
|
48
|
+
.object({
|
|
49
|
+
"character-consistency": modeResult.optional(),
|
|
50
|
+
"realism": modeResult.optional(),
|
|
51
|
+
"prompt-adherence": modeResult.optional(),
|
|
52
|
+
"anatomy": modeResult.optional(),
|
|
53
|
+
"aesthetic": modeResult.optional(),
|
|
54
|
+
"style-match": modeResult.optional(),
|
|
55
|
+
})
|
|
56
|
+
.strict()
|
|
57
|
+
.optional(),
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
export type ImageCriticResult = z.infer<typeof ImageCriticResultSchema>
|
|
61
|
+
export type ImageCriticNodeIssue = z.infer<typeof issue>
|