Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
307da15a12 | ||
|
|
90ce5fad8c | ||
|
|
fceeee6f32 | ||
|
|
445f7d5e61 |
No files matched your search
@@ -12,6 +12,7 @@ obj/
|
|||||||
gen/
|
gen/
|
||||||
obj/
|
obj/
|
||||||
bin/
|
bin/
|
||||||
|
art_sources/
|
||||||
|
|
||||||
*.tres~
|
*.tres~
|
||||||
*.tscn~
|
*.tscn~
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 125 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — the shared interface of every game
|
||||||
|
|
||||||
|
UI is the interface layer that the games share: the toolbar in the top-right corner, the in-game menu, the save indicator, notifications in the top-left corner, the background view and the common look of panels, buttons and lists. It has no story or rules of its own. Almost every other mod builds on it, which is why it is in every game and why so many mods list it as a requirement.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## The toolbar
|
||||||
|
|
||||||
|
Each icon opens a panel. The buttons are not fixed: every mod in the game adds its own, so a novel without items has no bag, and a game with the Scenario Studio has one more icon.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
In Cthangover, from left to right:
|
||||||
|
|
||||||
|
1. **Tools** — the developer tools menu (only when editors are in the game).
|
||||||
|
2. **Map** — world map (Map Engine).
|
||||||
|
3. **Bag** — inventory (Items).
|
||||||
|
4. **Characters** — party and characters (Characters).
|
||||||
|
5. **Recruits** — recruited characters (Recruiting).
|
||||||
|
6. **Skills** — skills (Skills).
|
||||||
|
7. **Menu** — the in-game menu described below (this mod).
|
||||||
|
8. **Journal** — quests (Quests).
|
||||||
|
|
||||||
|
Other games show other sets; RPG Plus, for example, adds the **character sheet**.
|
||||||
|
|
||||||
|
## The in-game menu
|
||||||
|
|
||||||
|
The gear icon opens the menu: **Resume**, **Save**, **Load**, **Settings**, **Main menu** and **Exit**. Save is greyed out in scenes that do not allow saving, as in this picture. Load, Save and Settings open the same windows as in the main menu.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Notifications
|
||||||
|
|
||||||
|
Short messages appear in the top-left corner: a new journal entry, a hint from the story. Up to four are shown at once, each for about ten seconds; more wait their turn.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## For mod authors
|
||||||
|
|
||||||
|
**Add a toolbar button and its panel** with a `ui` entry in your manifest. This is how Items adds the bag:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index` orders the icons (map 10, bag 20, characters 30, skills 40, menu 50, journal 60, studio 90);
|
||||||
|
- `button.icon` is the icon's name, `button.locale` the tooltip's translation key;
|
||||||
|
- an entry without `button` is a panel or overlay that the game opens itself — Crafting adds its workbench as `"kind": "overlay"` in the `ModLastPanel` slot and opens it from scenarios.
|
||||||
|
|
||||||
|
**Open a panel from a scenario** with the `ui.toggle_panel` action, and **show a notification** with the `notify` command:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "The journal has a new entry."
|
||||||
|
```
|
||||||
|
|
||||||
|
**Use the common look.** Panels built in code take their frames, labels, chips and buttons from the toolkit (`UiKit`) and its colour and size tokens, so a new panel matches the rest of the game and follows its theme.
|
||||||
|
|
||||||
|
## If something goes wrong
|
||||||
|
|
||||||
|
1. **A toolbar button is missing.** The mod that adds it is not part of this game; check the game's scheme in **Mods & Collections**.
|
||||||
|
2. **Save is greyed out.** The current scene does not allow saving; move to another place and try again. Authors allow it with `save_allowed: true` in the header of one of the scene's scenarios.
|
||||||
|
3. **A panel opens but is empty.** The panel's mod has nothing to show yet in this game — for example, no quests have started.
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — la interfaz común de todos los juegos
|
||||||
|
|
||||||
|
UI es la capa de interfaz que comparten todos los juegos: la barra de herramientas en la esquina superior derecha, el menú del juego, el indicador de guardado, las notificaciones en la esquina superior izquierda, la vista del fondo y el aspecto común de paneles, botones y listas. No tiene historia ni reglas propias. Casi todos los demás mods se construyen sobre ella, y por eso está presente en todos los juegos y tantos mods la declaran como dependencia.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## La barra de herramientas
|
||||||
|
|
||||||
|
Cada icono abre su panel. Los botones no son fijos: cada mod del juego añade los suyos, así que una novela sin objetos no tiene bolsa, y un juego con Scenario Studio muestra un icono más.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
En Cthangover, de izquierda a derecha:
|
||||||
|
|
||||||
|
1. **Herramientas** — el menú de herramientas de desarrollo (solo cuando hay editores en el juego).
|
||||||
|
2. **Mapa** — el mapa del mundo (Map Engine).
|
||||||
|
3. **Bolsa** — el inventario (Items).
|
||||||
|
4. **Personajes** — el grupo y los personajes (Characters).
|
||||||
|
5. **Reclutas** — los personajes reclutados (Recruiting).
|
||||||
|
6. **Habilidades** — las habilidades (Skills).
|
||||||
|
7. **Menú** — el menú del juego, descrito más abajo (este mod).
|
||||||
|
8. **Diario** — las misiones (Quests).
|
||||||
|
|
||||||
|
Otros juegos muestran otros conjuntos; RPG Plus, por ejemplo, añade la **hoja de personaje**.
|
||||||
|
|
||||||
|
## El menú del juego
|
||||||
|
|
||||||
|
El icono del engranaje abre el menú: **Continuar**, **Guardar**, **Cargar**, **Ajustes**, **Menú principal** y **Salir**. En las escenas que no permiten guardar, la opción Guardar aparece deshabilitada, como en la imagen. Cargar, Guardar y Ajustes abren las mismas ventanas que en el menú principal.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Notificaciones
|
||||||
|
|
||||||
|
En la esquina superior izquierda aparecen mensajes breves: una entrada nueva del diario, una pista de la historia. Se ven hasta cuatro a la vez, cada uno unos diez segundos; los demás esperan su turno.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Para autores de mods
|
||||||
|
|
||||||
|
**Añadir un botón a la barra de herramientas con su panel** se hace con una entrada `ui` en el manifiesto. Así añade Items la bolsa:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index` ordena los iconos (mapa 10, bolsa 20, personajes 30, habilidades 40, menú 50, diario 60, estudio 90);
|
||||||
|
- `button.icon` es el nombre del icono y `button.locale`, la clave de traducción del tooltip;
|
||||||
|
- una entrada sin `button` es un panel o una capa superpuesta que el juego abre por su cuenta: Crafting añade su mesa de trabajo como `"kind": "overlay"` en el slot `ModLastPanel` y la abre desde los escenarios.
|
||||||
|
|
||||||
|
**Abrir un panel desde un escenario** se hace con la acción `ui.toggle_panel`, y **mostrar una notificación**, con el comando `notify`:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "Nueva entrada en el diario."
|
||||||
|
```
|
||||||
|
|
||||||
|
**Usa el aspecto común.** Los paneles creados en código toman sus marcos, etiquetas, chips y botones del kit de interfaz (`UiKit`) y de sus tokens de color y tamaño, así que un panel nuevo encaja con el resto del juego y sigue su tema.
|
||||||
|
|
||||||
|
## Si algo falla
|
||||||
|
|
||||||
|
1. **Falta un botón en la barra de herramientas.** El mod que lo añade no forma parte de este juego; revisa el esquema del juego en **Mods y colecciones**.
|
||||||
|
2. **Guardar aparece deshabilitado.** La escena actual no permite guardar; ve a otro sitio e inténtalo de nuevo. Los autores lo permiten con `save_allowed: true` en la cabecera de uno de los escenarios de la escena.
|
||||||
|
3. **Un panel se abre vacío.** Su mod todavía no tiene nada que mostrar en este juego; por ejemplo, aún no ha empezado ninguna misión.
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — すべてのゲームで共有されるインターフェース
|
||||||
|
|
||||||
|
UI は全ゲームが共有するインターフェース層です。右上のツールバー、ゲーム内メニュー、セーブインジケーター、左上の通知、背景の表示、そしてパネル・ボタン・リストの共通デザインがここに集まっています。UI 自体は物語もルールも持ちません。ほぼすべての他の MOD が UI の上に成り立っているため、どのゲームにも含まれており、依存関係に挙げる MOD も非常に多くなっています。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## ツールバー
|
||||||
|
|
||||||
|
アイコンごとにパネルが開きます。ボタンは固定ではなく、ゲームに含まれる各 MOD が自分のボタンを追加します。そのため、アイテムのないノベルにはインベントリのボタンがなく、Scenario Studio を含むゲームではアイコンが一つ増えます。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Cthangover では左から順に:
|
||||||
|
|
||||||
|
1. **ツール** — 開発者ツールのメニュー(エディターがゲームに含まれているときだけ)。
|
||||||
|
2. **マップ** — ワールドマップ(Map Engine)。
|
||||||
|
3. **インベントリ** — 所持品(Items)。
|
||||||
|
4. **キャラクター** — パーティとキャラクター(Characters)。
|
||||||
|
5. **勧誘した者たち** — 勧誘で仲間にしたキャラクター(Recruiting)。
|
||||||
|
6. **スキル** — スキル(Skills)。
|
||||||
|
7. **メニュー** — 後述のゲーム内メニュー(この MOD)。
|
||||||
|
8. **日誌** — クエスト(Quests)。
|
||||||
|
|
||||||
|
他のゲームでは並びが異なります。たとえば RPG Plus は**キャラクターシート**を追加します。
|
||||||
|
|
||||||
|
## ゲーム内メニュー
|
||||||
|
|
||||||
|
歯車のアイコンでメニューが開きます:**再開**、**セーブ**、**ロード**、**設定**、**メインメニュー**、**終了**。セーブが許可されていないシーンでは、画像のように「セーブ」がグレーアウトします。「ロード」「セーブ」「設定」はメインメニューと同じウィンドウを開きます。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 通知
|
||||||
|
|
||||||
|
左上には短いメッセージが表示されます。日誌の新しい記録や、物語からのヒントなどです。同時に最大 4 件まで表示され、それぞれ約 10 秒で消えます。残りは順番を待ちます。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## MOD 作者向け
|
||||||
|
|
||||||
|
**ツールバーボタンとそのパネルを追加する**には、manifest の `ui` エントリーを使います。Items がインベントリを追加しているのがその例です:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index` がアイコンの順序を決めます(マップ 10、インベントリ 20、キャラクター 30、スキル 40、メニュー 50、日誌 60、スタジオ 90);
|
||||||
|
- `button.icon` はアイコン名、`button.locale` はツールチップの翻訳キー;
|
||||||
|
- `button` のないエントリーは、ゲームが自ら開くパネルやオーバーレイです。Crafting は作業台を `"kind": "overlay"` として `ModLastPanel` スロットに登録し、シナリオから開きます。
|
||||||
|
|
||||||
|
**シナリオからパネルを開く**には `ui.toggle_panel` アクションを、**通知を表示する**には `notify` コマンドを使います:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "日誌に新しい記録"
|
||||||
|
```
|
||||||
|
|
||||||
|
**共通デザインを使う。** コードで組み立てたパネルは、フレームやラベル、チップ、ボタンを UI キット(`UiKit`)とその色・サイズのトークンから受け取ります。新しいパネルもゲームの見た目に自然になじみ、テーマに従います。
|
||||||
|
|
||||||
|
## うまく動かないとき
|
||||||
|
|
||||||
|
1. **ツールバーにボタンがない。** そのボタンを追加する MOD がこのゲームに含まれていません。**MOD とコレクション**でゲームの構成を確認してください。
|
||||||
|
2. **「セーブ」がグレーアウトしている。** 現在のシーンはセーブを許可していません。別の場所へ移動してからもう一度。作者はシーンのシナリオのいずれかのヘッダーに `save_allowed: true` と書けばセーブを許可できます。
|
||||||
|
3. **パネルが開くが中身がない。** その MOD には、このゲームでまだ見せるものがないのです。たとえばクエストがまだ始まっていない、といった具合です。
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — 모든 게임이 공유하는 인터페이스
|
||||||
|
|
||||||
|
UI는 모든 게임이 함께 쓰는 인터페이스 계층입니다. 오른쪽 위의 툴바, 인게임 메뉴, 저장 표시, 왼쪽 위의 알림, 배경 화면, 그리고 패널·버튼·목록의 공통 디자인이 여기에 속합니다. UI 자체에는 이야기도 규칙도 없습니다. 거의 모든 다른 모드가 UI 위에서 만들어지기 때문에 모든 게임에 들어 있고, 수많은 모드가 이를 의존성으로 지정합니다.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 툴바
|
||||||
|
|
||||||
|
아이콘 하나당 패널 하나가 열립니다. 버튼 목록은 고정되어 있지 않습니다. 게임의 각 모드가 자기 버튼을 추가하므로, 아이템이 없는 소설 게임에는 인벤토리 버튼이 없고 Scenario Studio가 포함된 게임에는 아이콘이 하나 더 보입니다.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Cthangover 기준 왼쪽부터:
|
||||||
|
|
||||||
|
1. **도구** — 개발자 도구 메뉴(게임에 편집기가 있을 때만).
|
||||||
|
2. **지도** — 월드 맵(Map Engine).
|
||||||
|
3. **인벤토리** — 소지품(Items).
|
||||||
|
4. **캐릭터** — 파티와 캐릭터(Characters).
|
||||||
|
5. **영입자** — 영입한 캐릭터(Recruiting).
|
||||||
|
6. **스킬** — 스킬(Skills).
|
||||||
|
7. **메뉴** — 아래에서 설명할 인게임 메뉴(이 모드).
|
||||||
|
8. **일지** — 퀘스트(Quests).
|
||||||
|
|
||||||
|
다른 게임에서는 구성이 다릅니다. 예를 들어 RPG Plus는 **캐릭터 시트**를 추가합니다.
|
||||||
|
|
||||||
|
## 인게임 메뉴
|
||||||
|
|
||||||
|
톱니바퀴 아이콘을 누르면 메뉴가 열립니다: **계속**, **저장**, **불러오기**, **설정**, **메인 메뉴**, **나가기**. 저장이 허용되지 않는 장면에서는 그림처럼 저장 항목이 회색으로 비활성화됩니다. 불러오기, 저장, 설정은 메인 메뉴와 같은 창을 엽니다.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 알림
|
||||||
|
|
||||||
|
왼쪽 위에는 짧은 메시지가 나타납니다. 일지에 새 항목이 생겼다거나, 이야기가 힌트를 건네는 식입니다. 한 번에 최대 네 개까지 표시되고 각각 열 초 정도 머문 뒤 사라지며, 나머지는 차례를 기다립니다.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 모드 제작자를 위해
|
||||||
|
|
||||||
|
**툴바 버튼과 그 패널 추가하기** — manifest에 `ui` 항목을 넣으면 됩니다. Items가 인벤토리를 추가하는 방식이 그 예입니다:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index`는 아이콘 순서를 정합니다(지도 10, 인벤토리 20, 캐릭터 30, 스킬 40, 메뉴 50, 일지 60, 스튜디오 90);
|
||||||
|
- `button.icon`은 아이콘 이름, `button.locale`은 툴팁의 번역 키입니다;
|
||||||
|
- `button` 없는 항목은 게임이 스스로 여는 패널이나 오버레이입니다. Crafting은 작업대를 `"kind": "overlay"`로 `ModLastPanel` 슬롯에 넣고 시나리오에서 엽니다.
|
||||||
|
|
||||||
|
**시나리오에서 패널 열기**는 `ui.toggle_panel` 액션으로, **알림 표시**는 `notify` 명령으로 합니다:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "새 일지 항목"
|
||||||
|
```
|
||||||
|
|
||||||
|
**공통 디자인 사용하기.** 코드로 만든 패널도 프레임, 라벨, 칩, 버튼을 UI 키트(`UiKit`)와 색·크기 토큰에서 가져옵니다. 새 패널도 게임 전체와 자연스럽게 어울리고 테마를 따릅니다.
|
||||||
|
|
||||||
|
## 문제가 생겼을 때
|
||||||
|
|
||||||
|
1. **툴바에 버튼이 없다.** 그 버튼을 추가하는 모드가 이 게임에 포함되어 있지 않습니다. **모드와 컬렉션**에서 게임 구성을 확인하세요.
|
||||||
|
2. **저장이 비활성화되어 있다.** 현재 장면은 저장을 허용하지 않습니다. 다른 곳으로 이동한 뒤 다시 시도하세요. 제작자는 장면 시나리오 중 하나의 헤더에 `save_allowed: true`를 넣어 저장을 허용할 수 있습니다.
|
||||||
|
3. **패널은 열리지만 비어 있다.** 해당 모드가 이 게임에서 아직 보여 줄 것이 없는 것입니다. 예컨대 퀘스트가 아직 시작되지 않았을 때 그렇습니다.
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — общий интерфейс всех игр
|
||||||
|
|
||||||
|
UI — общий для всех игр слой интерфейса: панель инструментов в правом верхнем углу, игровое меню, индикатор сохранения, уведомления в левом верхнем углу, просмотр фона и единый вид панелей, кнопок и списков. Собственной истории и правил у него нет. Почти все остальные моды строятся поверх него — поэтому UI есть в каждой игре и значится в зависимостях у огромного числа модов.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Панель инструментов
|
||||||
|
|
||||||
|
Каждая иконка открывает свою панель. Набор кнопок не фиксирован: свой добавляет каждый мод игры, поэтому в новелле без предметов не будет сумки, а в игре со Scenario Studio появится ещё одна иконка.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
В Cthangover слева направо:
|
||||||
|
|
||||||
|
1. **Инструменты** — меню инструментов разработчика (только когда в игре есть редакторы).
|
||||||
|
2. **Карта** — карта мира (Map Engine).
|
||||||
|
3. **Сумка** — инвентарь (Items).
|
||||||
|
4. **Персонажи** — отряд и персонажи (Characters).
|
||||||
|
5. **Рекруты** — завербованные персонажи (Recruiting).
|
||||||
|
6. **Навыки** — навыки (Skills).
|
||||||
|
7. **Меню** — игровое меню, о нём ниже (этот мод).
|
||||||
|
8. **Журнал** — задания (Quests).
|
||||||
|
|
||||||
|
В других играх набор другой: например, RPG Plus добавляет **лист персонажа**.
|
||||||
|
|
||||||
|
## Игровое меню
|
||||||
|
|
||||||
|
Иконка-шестерёнка открывает меню: **Вернуться**, **Сохранить**, **Загрузить**, **Настройки**, **Главное меню** и **Выход**. В сценах, где сохранение запрещено, пункт «Сохранить» неактивен — как на скриншоте. «Загрузить», «Сохранить» и «Настройки» открывают те же окна, что и в главном меню.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Уведомления
|
||||||
|
|
||||||
|
В левом верхнем углу появляются короткие сообщения: новая запись в журнале, подсказка от сюжета. Одновременно показывается до четырёх, каждое держится на экране около десяти секунд, остальные ждут своей очереди.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Авторам модов
|
||||||
|
|
||||||
|
**Добавить кнопку на панели инструментов и её панель** можно записью `ui` в манифесте. Так Items добавляет сумку:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index` задаёт порядок иконок (карта 10, сумка 20, персонажи 30, навыки 40, меню 50, журнал 60, студия 90);
|
||||||
|
- `button.icon` — имя иконки, `button.locale` — ключ перевода подсказки;
|
||||||
|
- запись без `button` — панель или оверлей, который игра открывает сама: Crafting добавляет верстак как `"kind": "overlay"` в слот `ModLastPanel` и открывает его из сценариев.
|
||||||
|
|
||||||
|
**Открыть панель из сценария** можно действием `ui.toggle_panel`, а **показать уведомление** — командой `notify`:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "Новая запись в журнале."
|
||||||
|
```
|
||||||
|
|
||||||
|
**Придерживайтесь общего стиля.** Панели, собранные в коде, берут рамки, надписи, чипы и кнопки из набора виджетов (`UiKit`) и его токенов цвета и размера, поэтому новая панель сразу вписывается в игру и следует её теме.
|
||||||
|
|
||||||
|
## Если что-то пошло не так
|
||||||
|
|
||||||
|
1. **На панели инструментов нет кнопки.** Мод, который её добавляет, не входит в эту игру; проверьте состав игры в разделе **Моды и коллекции**.
|
||||||
|
2. **«Сохранить» неактивно.** Текущая сцена не разрешает сохранение; перейдите в другое место и попробуйте снова. Авторы разрешают его строкой `save_allowed: true` в заголовке одного из сценариев сцены.
|
||||||
|
3. **Панель открывается пустой.** Моду панели пока нечего показывать в этой игре — например, задания ещё не начались.
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — giao diện chung của mọi game
|
||||||
|
|
||||||
|
UI là lớp giao diện mà mọi game dùng chung: thanh công cụ ở góc trên bên phải, menu trong game, biểu tượng lưu, thông báo ở góc trên bên trái, khung xem nền và diện mạo thống nhất của bảng điều khiển, nút bấm, danh sách. UI không có cốt truyện hay luật chơi riêng. Gần như mọi mod khác đều được xây trên nó, vì thế nó hiện diện trong mọi game và rất nhiều mod liệt kê nó làm phụ thuộc.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Thanh công cụ
|
||||||
|
|
||||||
|
Mỗi biểu tượng mở một bảng điều khiển. Các nút không cố định: mod nào trong game cũng thêm nút của riêng mình, nên một tiểu thuyết tương tác không có túi đồ, còn game có Scenario Studio thì nhiều thêm một biểu tượng.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Trong Cthangover, từ trái sang phải:
|
||||||
|
|
||||||
|
1. **Công cụ** — menu công cụ dành cho nhà phát triển (chỉ khi game có trình soạn thảo).
|
||||||
|
2. **Bản đồ** — bản đồ thế giới (Map Engine).
|
||||||
|
3. **Túi đồ** — vật phẩm mang theo (Items).
|
||||||
|
4. **Nhân vật** — đội và các nhân vật (Characters).
|
||||||
|
5. **Người được chiêu mộ** — các nhân vật đã chiêu mộ (Recruiting).
|
||||||
|
6. **Kỹ năng** — kỹ năng (Skills).
|
||||||
|
7. **Menu** — menu trong game, nói ở dưới (mod này).
|
||||||
|
8. **Nhật ký** — nhiệm vụ (Quests).
|
||||||
|
|
||||||
|
Các game khác hiển thị bộ nút khác; chẳng hạn RPG Plus thêm **bảng nhân vật**.
|
||||||
|
|
||||||
|
## Menu trong game
|
||||||
|
|
||||||
|
Biểu tượng bánh răng mở menu: **Tiếp tục**, **Lưu**, **Tải**, **Cài đặt**, **Menu chính** và **Thoát**. Ở những cảnh không cho phép lưu, nút Lưu bị mờ đi như trong hình. Tải, Lưu và Cài đặt mở đúng những cửa sổ như ở menu chính.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Thông báo
|
||||||
|
|
||||||
|
Góc trên bên trái xuất hiện những tin nhắn ngắn: một mục mới trong nhật ký, một gợi ý từ cốt truyện. Cùng lúc hiện tối đa bốn cái, mỗi cái giữ khoảng mười giây; cái khác xếp hàng chờ tới lượt.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Cho tác giả mod
|
||||||
|
|
||||||
|
**Thêm nút thanh công cụ cùng bảng điều khiển của nó** bằng một mục `ui` trong manifest. Items thêm túi đồ theo cách này:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index` xếp thứ tự các biểu tượng (bản đồ 10, túi đồ 20, nhân vật 30, kỹ năng 40, menu 50, nhật ký 60, studio 90);
|
||||||
|
- `button.icon` là tên biểu tượng, `button.locale` là khóa dịch của chú thích;
|
||||||
|
- mục không có `button` là bảng điều khiển hoặc lớp phủ mà game tự mở — Crafting đặt bàn chế tạo của mình dưới dạng `"kind": "overlay"` ở khe `ModLastPanel` và mở nó từ kịch bản.
|
||||||
|
|
||||||
|
**Mở bảng điều khiển từ kịch bản** bằng hành động `ui.toggle_panel`, còn **hiện thông báo** bằng lệnh `notify`:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "Mục nhật ký mới"
|
||||||
|
```
|
||||||
|
|
||||||
|
**Dùng diện mạo chung.** Bảng điều khiển viết bằng code lấy khung, nhãn, thẻ và nút từ bộ công cụ giao diện (`UiKit`) cùng các token màu và kích thước, nên bảng mới tự hòa vào tổng thể game và đi theo chủ đề của nó.
|
||||||
|
|
||||||
|
## Khi có trục trặc
|
||||||
|
|
||||||
|
1. **Thiếu nút trên thanh công cụ.** Mod thêm nút đó không nằm trong game này; hãy kiểm tra thành phần của game trong **Mod và bộ sưu tập**.
|
||||||
|
2. **Nút Lưu bị mờ.** Cảnh hiện tại không cho phép lưu; hãy đến nơi khác rồi thử lại. Tác giả cho phép lưu bằng dòng `save_allowed: true` trong phần đầu một trong các kịch bản của cảnh.
|
||||||
|
3. **Bảng điều khiển mở ra nhưng trống trơn.** Mod ấy chưa có gì để hiển thị trong game này — ví dụ, chưa có nhiệm vụ nào bắt đầu.
|
||||||
+71
@@ -0,0 +1,71 @@
|
|||||||
|
# UI — 所有游戏共用的界面
|
||||||
|
|
||||||
|
UI 是所有游戏共用的界面层:右上角的工具栏、游戏内菜单、存档指示器、左上角的通知,以及背景画面和面板、按钮、列表的统一外观。它自己没有剧情,也不定规则。几乎所有其他模组都构建在它之上,所以每个游戏里都有它,大量模组也把它列为依赖。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 工具栏
|
||||||
|
|
||||||
|
每个图标都会打开一个面板。按钮并非固定不变:游戏中的每个模组都会加上自己的按钮,因此没有物品系统的小说游戏不会有背包,而带 Scenario Studio 的游戏则多出一个图标。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
在 Cthangover 中,从左到右依次是:
|
||||||
|
|
||||||
|
1. **工具** — 开发者工具菜单(仅当游戏包含编辑器时出现)。
|
||||||
|
2. **地图** — 世界地图(Map Engine)。
|
||||||
|
3. **背包** — 物品栏(Items)。
|
||||||
|
4. **角色** — 队伍和角色(Characters)。
|
||||||
|
5. **招募者** — 已招募的角色(Recruiting)。
|
||||||
|
6. **技能** — 技能(Skills)。
|
||||||
|
7. **菜单** — 下文介绍的游戏内菜单(本模组)。
|
||||||
|
8. **日志** — 任务(Quests)。
|
||||||
|
|
||||||
|
其他游戏显示的按钮不同:例如 RPG Plus 会多出**角色面板**。
|
||||||
|
|
||||||
|
## 游戏内菜单
|
||||||
|
|
||||||
|
齿轮图标打开菜单:**继续**、**保存**、**读取**、**设置**、**主菜单**和**退出**。在不允许存档的场景中,“保存”会变灰,如图所示。“读取”“保存”和“设置”打开的窗口与主菜单中相同。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 通知
|
||||||
|
|
||||||
|
左上角会出现简短消息:日志新增条目、剧情给出的提示等。同屏最多显示四条,每条停留约十秒,其余依次排队。
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## 给模组作者
|
||||||
|
|
||||||
|
**添加工具栏按钮及其面板**:在 manifest.json 里写一个 `ui` 条目。Items 就是这样添加背包的:
|
||||||
|
|
||||||
|
```json
|
||||||
|
"ui": [
|
||||||
|
{
|
||||||
|
"id": "inventory",
|
||||||
|
"kind": "panel",
|
||||||
|
"slot": "ModBeforeUIPanel",
|
||||||
|
"scene_path": "scenes/ui/inventory_panel.tscn",
|
||||||
|
"button": { "icon": "bag", "locale": "ui/inventory/title", "index": 20 },
|
||||||
|
"priority": 10
|
||||||
|
}
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
- `button.index` 决定图标顺序(地图 10、背包 20、角色 30、技能 40、菜单 50、日志 60、工作室 90);
|
||||||
|
- `button.icon` 是图标名,`button.locale` 是提示文字的翻译键;
|
||||||
|
- 不带 `button` 的条目是游戏自行打开的面板或覆盖层:Crafting 以 `"kind": "overlay"` 把工作台放进 `ModLastPanel` 槽位,并从剧本中打开它。
|
||||||
|
|
||||||
|
**从剧本打开面板**用 `ui.toggle_panel` 动作,**显示通知**用 `notify` 命令:
|
||||||
|
|
||||||
|
```scenario
|
||||||
|
notify "新的日志条目。"
|
||||||
|
```
|
||||||
|
|
||||||
|
**使用统一外观。** 用代码构建的面板会从组件库(`UiKit`)及其颜色、尺寸令牌中获取边框、文字、标签和按钮,因此新面板自然融入游戏整体风格并跟随主题变化。
|
||||||
|
|
||||||
|
## 出现问题时
|
||||||
|
|
||||||
|
1. **工具栏上少了按钮。** 添加它的模组不属于当前游戏;请在**模组与合集**中查看游戏的构成。
|
||||||
|
2. **“保存”是灰色的。** 当前场景不允许存档;换到别的地方再试。作者在场景任一剧本的头部写上 `save_allowed: true` 即可允许存档。
|
||||||
|
3. **面板打开了却是空的。** 对应模组在当前游戏中暂时没有内容可显示——例如还没有任务开始。
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = The interface layer every game shares: the toolbar, the in-game menu, the save indicator, notifications and the common look of panels, buttons and lists.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = La capa de interfaz que comparten todos los juegos: la barra de herramientas, el menú del juego, el indicador de guardado, las notificaciones y el aspecto común de paneles, botones y listas.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = すべてのゲームで共有される UI レイヤー:ツールバー、ゲーム内メニュー、セーブインジケーター、通知、そしてパネル・ボタン・リストの共通デザイン。
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = 모든 게임이 공유하는 인터페이스 레이어: 툴바, 인게임 메뉴, 저장 표시, 알림, 그리고 패널·버튼·목록의 공통 디자인입니다.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = Общий для всех игр слой интерфейса: панель инструментов, игровое меню, индикатор сохранения, уведомления и единый вид панелей, кнопок и списков.
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
# --- scenes/battle/winground.tscn ---
|
# --- scenes/battle/winground.tscn ---
|
||||||
mod_ui_base_name = UI
|
|
||||||
mod_ui_base_desc = Engine UI subsystem: widget toolkit (Widget/ModWidget/lists), ViewBox background viewport, ToolBox toolbar, GameMenu/SaveIcon, notification panels, UiKit design system and DeviceInput.
|
|
||||||
ui/battle/victory = Victory
|
ui/battle/victory = Victory
|
||||||
ui/battle/victory/return = Continue
|
ui/battle/victory/return = Continue
|
||||||
ui/battle/victory/loot_title = Loot:
|
ui/battle/victory/loot_title = Loot:
|
||||||
@@ -102,6 +100,7 @@ ui/save/game_day = Day {day}, {time}
|
|||||||
ui/save/party_size = Party: {count}
|
ui/save/party_size = Party: {count}
|
||||||
|
|
||||||
# --- GameMenu ---
|
# --- GameMenu ---
|
||||||
|
menu/title = Menu
|
||||||
menu/resume = Resume
|
menu/resume = Resume
|
||||||
menu/save = Save
|
menu/save = Save
|
||||||
menu/load = Load
|
menu/load = Load
|
||||||
|
|||||||
@@ -0,0 +1,268 @@
|
|||||||
|
# --- scenes/battle/winground.tscn ---
|
||||||
|
ui/battle/victory = Victoria
|
||||||
|
ui/battle/victory/return = Continuar
|
||||||
|
ui/battle/victory/loot_title = Botín:
|
||||||
|
|
||||||
|
# --- scenes/battle/deadground.tscn ---
|
||||||
|
ui/battle/defeat = Derrota
|
||||||
|
ui/battle/endgame/to_main_menu = Menú principal
|
||||||
|
|
||||||
|
# --- scenes/battle/battle.tscn ---
|
||||||
|
ui/battle/next = Terminar turno
|
||||||
|
|
||||||
|
# --- scenes/menu/main_menu.tscn ---
|
||||||
|
menu/newgame = Nueva partida
|
||||||
|
ui/menu/load = Cargar
|
||||||
|
menu/settings = Ajustes
|
||||||
|
menu/exit = Salir
|
||||||
|
|
||||||
|
# --- Mods ---
|
||||||
|
mods/title = Mods
|
||||||
|
mods/enable = Activar
|
||||||
|
mods/disable = Desactivar
|
||||||
|
mods/enabled = Activado
|
||||||
|
mods/disabled = Desactivado
|
||||||
|
mods/disabled_reason = Desactivado
|
||||||
|
mods/dep_disabled_reason = La dependencia «{0}» está desactivada
|
||||||
|
mods/not_in_game_reason = No forma parte del juego «{0}»
|
||||||
|
mods/dependency_disabled = Dependencia desactivada
|
||||||
|
mods/invalid_dep_format = Formato de dependencia no válido: «{0}»
|
||||||
|
mods/required_mod_not_loaded = El mod requerido «{0}» no está cargado
|
||||||
|
mods/version_mismatch = Versión no coincide: requiere {0}, encontrada {1}
|
||||||
|
mods/restart_required = Hay que reiniciar para que los cambios surtan efecto
|
||||||
|
mods/back = Atrás
|
||||||
|
mods/author = Autor
|
||||||
|
mods/version = Versión
|
||||||
|
mods/depends = Dependencias
|
||||||
|
mods/used_by = Lo usan
|
||||||
|
mods/overrides_title = Sustituciones
|
||||||
|
mods/reset_order = Restablecer orden
|
||||||
|
mods/reset_order_title = Restablecer orden
|
||||||
|
mods/reset_order_text = ¿Seguro que quieres restablecer el orden de los mods? Se recalculará automáticamente
|
||||||
|
mods/reset_order_confirm = Sí
|
||||||
|
mods/reset_order_cancel = Cancelar
|
||||||
|
mods/tab_device = Dispositivo
|
||||||
|
mods/tab_network = Red
|
||||||
|
mods/network_refresh = Actualizar
|
||||||
|
mods/network_loading = Cargando catálogo...
|
||||||
|
mods/network_ready = Catálogo cargado
|
||||||
|
mods/network_empty = No hay mods en el catálogo
|
||||||
|
mods/network_error = No se pudo cargar el catálogo
|
||||||
|
mods/network_no_urls = No hay URL de catálogo configuradas
|
||||||
|
mods/status_installed = Instalado
|
||||||
|
mods/status_update_available = Hay actualización
|
||||||
|
mods/status_not_installed = No instalado
|
||||||
|
mods/status_modified = Modificado localmente
|
||||||
|
mods/catalog_export = Exportar al catálogo
|
||||||
|
mods/catalog_title = Exportar entrada del catálogo
|
||||||
|
mods/catalog_download_url = URL de descarga
|
||||||
|
mods/catalog_category = Categoría
|
||||||
|
mods/category_story = Historia
|
||||||
|
mods/category_characters = Personajes
|
||||||
|
mods/category_gameplay = Jugabilidad
|
||||||
|
mods/category_visual = Visual
|
||||||
|
mods/category_audio = Audio
|
||||||
|
mods/category_ui = Interfaz
|
||||||
|
mods/category_locale = Idioma
|
||||||
|
mods/category_library = Biblioteca
|
||||||
|
mods/category_engine = Motor
|
||||||
|
mods/category_overhaul = Conversión total
|
||||||
|
mods/category_tools = Herramientas
|
||||||
|
mods/category_editor = Editor
|
||||||
|
mods/category_debug = Depuración
|
||||||
|
mods/category_other = Otros
|
||||||
|
mods/catalog_tags = Etiquetas (separadas por comas)
|
||||||
|
mods/catalog_changelog = Cambios
|
||||||
|
mods/catalog_status = Estado
|
||||||
|
mods/catalog_min_game_version = Versión mínima del juego
|
||||||
|
mods/catalog_icon_url = URL del icono
|
||||||
|
mods/catalog_copy = Copiar JSON
|
||||||
|
mods/catalog_export_file = Exportar a archivo
|
||||||
|
mods/catalog_close = Cerrar
|
||||||
|
mods/install_button = Instalar
|
||||||
|
mods/update_button = Actualizar
|
||||||
|
mods/overwrite_button = Sobrescribir
|
||||||
|
mods/downgrade_button = Volver a versión anterior
|
||||||
|
mods/restart_button = Hay que reiniciar
|
||||||
|
mods/installing = Instalando...
|
||||||
|
mods/install_complete = Instalación completada. Hay que reiniciar.
|
||||||
|
mods/install_failed = La instalación falló. Mira el registro para más detalles.
|
||||||
|
|
||||||
|
# --- Save/Load ---
|
||||||
|
ui/load/title = Cargar
|
||||||
|
ui/save/title = Guardar
|
||||||
|
ui/save/empty = Vacío
|
||||||
|
ui/save/overwrite_title = Sobrescribir partida
|
||||||
|
ui/save/overwrite_text = Ya hay una partida en esta ranura. ¿Sobrescribirla?
|
||||||
|
ui/save/save_button = Sobrescribir
|
||||||
|
ui/save/cancel_button = Cancelar
|
||||||
|
ui/save/game_day = Día {day}, {time}
|
||||||
|
ui/save/party_size = Grupo: {count}
|
||||||
|
|
||||||
|
# --- GameMenu ---
|
||||||
|
menu/title = Menú
|
||||||
|
menu/resume = Continuar
|
||||||
|
menu/save = Guardar
|
||||||
|
menu/load = Cargar
|
||||||
|
menu/main_menu = Menú principal
|
||||||
|
|
||||||
|
# --- Character Panel ---
|
||||||
|
ui/character_panel/title = Acciones de los personajes
|
||||||
|
ui/character_panel/reset = Restablecer
|
||||||
|
ui/character_panel/close = Cerrar
|
||||||
|
ui/character_panel/reset_title = Restablecer la asignación de acciones
|
||||||
|
ui/character_panel/reset_text = ¿Seguro que quieres restablecer todas las asignaciones de acciones? Las acciones de los personajes volverán a los valores por defecto; las acciones recogidas se quedan en la reserva.
|
||||||
|
ui/character_panel/reset_ok = Restablecer
|
||||||
|
ui/character_panel/reset_cancel = Cancelar
|
||||||
|
ui/character_panel/party = Grupo
|
||||||
|
ui/character_panel/party_sub = 3 ranuras por personaje · las cartas sin usar esperan en la reserva
|
||||||
|
ui/character_panel/template = plantilla: {0}
|
||||||
|
ui/character_panel/pool_title = Reserva de acciones
|
||||||
|
ui/character_panel/search = Buscar por nombre o ID...
|
||||||
|
ui/character_panel/filter_all = Todas
|
||||||
|
ui/character_panel/type_enemy = Objetivo enemigo
|
||||||
|
ui/character_panel/type_alias = Objetivo aliado
|
||||||
|
ui/character_panel/type_self = A uno mismo
|
||||||
|
ui/character_panel/type_passive = Pasiva
|
||||||
|
ui/character_panel/type_active = Activa
|
||||||
|
ui/character_panel/cost = {0} PA
|
||||||
|
ui/character_panel/cooldown = Recarga {0}
|
||||||
|
ui/character_panel/slot = Ranura {0}
|
||||||
|
ui/character_panel/slot_empty = + ranura vacía: arrastra una carta aquí
|
||||||
|
ui/character_panel/assigned = Asignadas {0}/{1} · en reserva {2}
|
||||||
|
ui/character_panel/hint_select = elige una carta y después una ranura
|
||||||
|
ui/character_panel/drag_hint = Arrastra una carta a una ranura · ranura↔ranura las intercambia
|
||||||
|
ui/character_panel/pool_hint = Una carta sigue siendo del jugador mientras está en la reserva. Se permiten duplicados.
|
||||||
|
ui/character_panel/pool_empty = La reserva está vacía: aquí aparecerán las acciones recogidas
|
||||||
|
ui/character_panel/nothing_found = No se encontró nada
|
||||||
|
ui/character_panel/stat_hp = PV
|
||||||
|
ui/character_panel/stat_ap = PA
|
||||||
|
ui/character_panel/stat_atk = ATQ
|
||||||
|
ui/character_panel/stat_def = DEF
|
||||||
|
|
||||||
|
# --- Inventory ---
|
||||||
|
ui/inventory/title = Inventario
|
||||||
|
ui/inventory/use = Usar
|
||||||
|
ui/inventory/drop = Tirar
|
||||||
|
ui/inventory/drop_all = Todo
|
||||||
|
ui/inventory/drop_confirm = Tirar
|
||||||
|
ui/inventory/drop_quantity = Tirar
|
||||||
|
ui/inventory/close = Cerrar
|
||||||
|
ui/inventory/no_ap = No hay PA suficientes
|
||||||
|
ui/inventory/select_target = Elige un objetivo
|
||||||
|
ui/inventory/cancel = Cancelar
|
||||||
|
ui/inventory/tab_all = Todo
|
||||||
|
ui/inventory/tab_food = Comida
|
||||||
|
ui/inventory/tab_resource = Recursos
|
||||||
|
ui/inventory/tab_recipe = Recetas
|
||||||
|
ui/inventory/tab_quest = Misiones
|
||||||
|
ui/inventory/search = Buscar en el inventario...
|
||||||
|
ui/inventory/sort_type = Por tipo
|
||||||
|
ui/inventory/sort_name = Por nombre
|
||||||
|
ui/inventory/sort_cost = Por precio
|
||||||
|
ui/inventory/sort_count = Por cantidad
|
||||||
|
ui/inventory/shown = Mostrando {0} de {1}
|
||||||
|
ui/inventory/hint_select = Clic izquierdo: seleccionar · la acción está en los detalles
|
||||||
|
ui/inventory/stack = Montón
|
||||||
|
ui/inventory/id = ID
|
||||||
|
ui/inventory/action = Acción
|
||||||
|
ui/inventory/verb = Verbo
|
||||||
|
ui/inventory/props_header = Propiedades · PropertyData
|
||||||
|
ui/inventory/props_none = sin propiedades
|
||||||
|
ui/inventory/no_action = Sin ItemAction: el objeto todavía no se puede usar
|
||||||
|
ui/inventory/cost = Precio
|
||||||
|
ui/inventory/empty = El inventario está vacío
|
||||||
|
ui/inventory/select = Selecciona un objeto de la lista
|
||||||
|
ui/inventory/ap = PA
|
||||||
|
ui/inventory/ap_cost = −1 PA
|
||||||
|
ui/inventory/used = Usado: {0}
|
||||||
|
ui/inventory/used_recipe = Receta aprendida: {0}
|
||||||
|
ui/inventory/use_failed = UseAction → false: el objeto no se gastó
|
||||||
|
ui/inventory/dropped = Tirado: {0} ×{1}
|
||||||
|
ui/inventory/applied = Aplicado: {0} → {1}
|
||||||
|
ui/inventory/applied_failed = El objetivo no aceptó el efecto: el objeto no se gastó
|
||||||
|
ui/inventory/drop_cant = No se puede tirar (CantDrop)
|
||||||
|
ui/inventory/type_quest = Misión
|
||||||
|
ui/inventory/type_used = Usable
|
||||||
|
ui/inventory/type_target = Con objetivo
|
||||||
|
ui/inventory/type_food = Comida
|
||||||
|
ui/inventory/type_resource = Recurso
|
||||||
|
ui/inventory/type_recipe = Receta
|
||||||
|
ui/inventory/type_cant_drop = No se puede tirar
|
||||||
|
ui/inventory/verb_use = Usar
|
||||||
|
ui/inventory/verb_eat = Comer
|
||||||
|
ui/inventory/verb_target = Aplicar al objetivo
|
||||||
|
ui/inventory/verb_recipe = Aprender receta
|
||||||
|
ui/inventory/tag_recipe = receta
|
||||||
|
ui/inventory/tag_target = objetivo
|
||||||
|
ui/inventory/tag_food = bebida
|
||||||
|
ui/inventory/tag_use = usar
|
||||||
|
|
||||||
|
# --- Map ---
|
||||||
|
ui/map/title = Mapa
|
||||||
|
ui/map/close = Cerrar
|
||||||
|
ui/map/subtitle = Distrito norte
|
||||||
|
ui/map/zone_count = {0} lugares
|
||||||
|
ui/map/legend_current = estás aquí
|
||||||
|
ui/map/legend_available = disponible
|
||||||
|
ui/map/legend_locked = cerrado
|
||||||
|
ui/map/hint = Clic izquierdo en un marcador: elegir lugar · Esc: cerrar el mapa
|
||||||
|
ui/map/current = Estás aquí
|
||||||
|
ui/map/available = Disponible
|
||||||
|
ui/map/locked = Cerrado
|
||||||
|
ui/map/you_are_here = estás aquí
|
||||||
|
ui/map/closed_note = cerrado
|
||||||
|
ui/map/go = Viajar
|
||||||
|
ui/map/here = Estás aquí
|
||||||
|
ui/map/transition = Transición
|
||||||
|
ui/map/card_hint = El botón de abajo cambia de escena. Esc: cerrar el mapa.
|
||||||
|
ui/map/locked_message = El camino todavía no está abierto.
|
||||||
|
ui/map/empty = Mapa no disponible
|
||||||
|
ui/map/empty_hint = No se encontró el fondo map.png: añade a un mod el fondo y los archivos de zonas map/*.json.
|
||||||
|
|
||||||
|
# --- Skills ---
|
||||||
|
ui/skills/title = Habilidades
|
||||||
|
ui/skills/grants_action = Concede una carta de acción
|
||||||
|
ui/skills/side_title = Estudio de la carta
|
||||||
|
ui/skills/collection = Colección
|
||||||
|
ui/skills/search = Buscar en la colección…
|
||||||
|
ui/skills/sort_rarity = Por rareza
|
||||||
|
ui/skills/sort_type = Por tipo
|
||||||
|
ui/skills/sort_name = Por nombre
|
||||||
|
ui/skills/filter_all = Todas
|
||||||
|
ui/skills/filter_rarities = Todas las rarezas
|
||||||
|
ui/skills/hint = Clic izquierdo: estudiar la carta · el marco y el brillo dependen de la rareza
|
||||||
|
ui/skills/reset = Restablecer filtros
|
||||||
|
ui/skills/empty = Todavía no hay habilidades
|
||||||
|
ui/skills/nothing_found = No se encontró nada
|
||||||
|
ui/skills/no_effects = Todavía no hay efectos permanentes
|
||||||
|
ui/skills/collection_effect = Efecto de la colección
|
||||||
|
ui/skills/collection_effect_hint = Total de toda la colección · se actualiza al instante
|
||||||
|
ui/skills/rarity/common = Común
|
||||||
|
ui/skills/rarity/uncommon = Poco común
|
||||||
|
ui/skills/rarity/rare = Rara
|
||||||
|
ui/skills/rarity/epic = Épica
|
||||||
|
ui/skills/rarity/legendary = Legendaria
|
||||||
|
ui/skills/type/active = Activa
|
||||||
|
ui/skills/type/passive = Pasiva
|
||||||
|
ui/skills/type/for_character = Para el personaje
|
||||||
|
|
||||||
|
# --- Quest Journal ---
|
||||||
|
ui/journal/title = Diario
|
||||||
|
ui/journal/active = Activas
|
||||||
|
ui/journal/completed = Completadas
|
||||||
|
ui/journal/close = Cerrar
|
||||||
|
ui/journal/empty = No hay misiones
|
||||||
|
ui/journal/toc = Índice
|
||||||
|
ui/journal/entry_header = Entrada
|
||||||
|
ui/journal/entry_of = Entrada {0} de {1}
|
||||||
|
ui/journal/finished = Completada
|
||||||
|
ui/journal/seals = Sellos
|
||||||
|
ui/journal/no_entries = Las páginas de esta entrada siguen en blanco. La tinta aparecerá a medida que avance la historia.
|
||||||
|
|
||||||
|
tools/unsaved_title = Cambios sin guardar
|
||||||
|
tools/unsaved_text = Tienes cambios sin guardar. ¿Cerrar sin guardar?
|
||||||
|
tools/unsaved_discard_text = Hay cambios sin guardar. ¿Descartarlos?
|
||||||
|
tools/window_maximize = Maximizar / restaurar (doble clic en el título)
|
||||||
|
tools/window_close = Cerrar
|
||||||
|
tools/menu_title = Herramientas
|
||||||
@@ -0,0 +1,268 @@
|
|||||||
|
# --- scenes/battle/winground.tscn ---
|
||||||
|
ui/battle/victory = 勝利
|
||||||
|
ui/battle/victory/return = 続ける
|
||||||
|
ui/battle/victory/loot_title = 戦利品:
|
||||||
|
|
||||||
|
# --- scenes/battle/deadground.tscn ---
|
||||||
|
ui/battle/defeat = 敗北
|
||||||
|
ui/battle/endgame/to_main_menu = メインメニュー
|
||||||
|
|
||||||
|
# --- scenes/battle/battle.tscn ---
|
||||||
|
ui/battle/next = ターン終了
|
||||||
|
|
||||||
|
# --- scenes/menu/main_menu.tscn ---
|
||||||
|
menu/newgame = ニューゲーム
|
||||||
|
ui/menu/load = ロード
|
||||||
|
menu/settings = 設定
|
||||||
|
menu/exit = 終了
|
||||||
|
|
||||||
|
# --- Mods ---
|
||||||
|
mods/title = MOD
|
||||||
|
mods/enable = 有効にする
|
||||||
|
mods/disable = 無効にする
|
||||||
|
mods/enabled = 有効
|
||||||
|
mods/disabled = 無効
|
||||||
|
mods/disabled_reason = 無効
|
||||||
|
mods/dep_disabled_reason = 依存先「{0}」が無効です
|
||||||
|
mods/not_in_game_reason = ゲーム「{0}」に含まれていません
|
||||||
|
mods/dependency_disabled = 依存先が無効
|
||||||
|
mods/invalid_dep_format = 依存の書式が不正:「{0}」
|
||||||
|
mods/required_mod_not_loaded = 必要な MOD「{0}」が読み込まれていません
|
||||||
|
mods/version_mismatch = バージョン不一致:{0} が必要、{1} を検出
|
||||||
|
mods/restart_required = 変更を反映するには再起動が必要です
|
||||||
|
mods/back = 戻る
|
||||||
|
mods/author = 作者
|
||||||
|
mods/version = バージョン
|
||||||
|
mods/depends = 依存関係
|
||||||
|
mods/used_by = 利用元
|
||||||
|
mods/overrides_title = 上書き
|
||||||
|
mods/reset_order = 順序をリセット
|
||||||
|
mods/reset_order_title = 順序をリセット
|
||||||
|
mods/reset_order_text = MOD の順序をリセットしますか? 自動で計算し直されます
|
||||||
|
mods/reset_order_confirm = はい
|
||||||
|
mods/reset_order_cancel = キャンセル
|
||||||
|
mods/tab_device = 端末
|
||||||
|
mods/tab_network = ネットワーク
|
||||||
|
mods/network_refresh = 更新
|
||||||
|
mods/network_loading = カタログを読み込み中...
|
||||||
|
mods/network_ready = カタログを読み込みました
|
||||||
|
mods/network_empty = カタログに MOD がありません
|
||||||
|
mods/network_error = カタログを読み込めませんでした
|
||||||
|
mods/network_no_urls = カタログの URL が設定されていません
|
||||||
|
mods/status_installed = インストール済み
|
||||||
|
mods/status_update_available = 更新あり
|
||||||
|
mods/status_not_installed = 未インストール
|
||||||
|
mods/status_modified = ローカルで変更
|
||||||
|
mods/catalog_export = カタログに書き出す
|
||||||
|
mods/catalog_title = カタログ項目を書き出す
|
||||||
|
mods/catalog_download_url = ダウンロード URL
|
||||||
|
mods/catalog_category = カテゴリー
|
||||||
|
mods/category_story = ストーリー
|
||||||
|
mods/category_characters = キャラクター
|
||||||
|
mods/category_gameplay = ゲームプレイ
|
||||||
|
mods/category_visual = ビジュアル
|
||||||
|
mods/category_audio = オーディオ
|
||||||
|
mods/category_ui = UI
|
||||||
|
mods/category_locale = 言語
|
||||||
|
mods/category_library = ライブラリ
|
||||||
|
mods/category_engine = エンジン
|
||||||
|
mods/category_overhaul = 大型改造
|
||||||
|
mods/category_tools = ツール
|
||||||
|
mods/category_editor = エディター
|
||||||
|
mods/category_debug = デバッグ
|
||||||
|
mods/category_other = その他
|
||||||
|
mods/catalog_tags = タグ(カンマ区切り)
|
||||||
|
mods/catalog_changelog = 変更履歴
|
||||||
|
mods/catalog_status = 状態
|
||||||
|
mods/catalog_min_game_version = 最低ゲームバージョン
|
||||||
|
mods/catalog_icon_url = アイコンの URL
|
||||||
|
mods/catalog_copy = JSON をコピー
|
||||||
|
mods/catalog_export_file = ファイルに書き出す
|
||||||
|
mods/catalog_close = 閉じる
|
||||||
|
mods/install_button = インストール
|
||||||
|
mods/update_button = 更新
|
||||||
|
mods/overwrite_button = 上書き
|
||||||
|
mods/downgrade_button = ダウングレード
|
||||||
|
mods/restart_button = 再起動が必要
|
||||||
|
mods/installing = インストール中...
|
||||||
|
mods/install_complete = インストール完了。再起動が必要です。
|
||||||
|
mods/install_failed = インストールに失敗しました。詳しくはログを見てください。
|
||||||
|
|
||||||
|
# --- Save/Load ---
|
||||||
|
ui/load/title = ロード
|
||||||
|
ui/save/title = セーブ
|
||||||
|
ui/save/empty = 空き
|
||||||
|
ui/save/overwrite_title = セーブを上書き
|
||||||
|
ui/save/overwrite_text = このスロットにはすでにセーブがあります。上書きしますか?
|
||||||
|
ui/save/save_button = 上書き
|
||||||
|
ui/save/cancel_button = キャンセル
|
||||||
|
ui/save/game_day = {day} 日目、{time}
|
||||||
|
ui/save/party_size = パーティ:{count}
|
||||||
|
|
||||||
|
# --- GameMenu ---
|
||||||
|
menu/title = メニュー
|
||||||
|
menu/resume = 再開
|
||||||
|
menu/save = セーブ
|
||||||
|
menu/load = ロード
|
||||||
|
menu/main_menu = メインメニュー
|
||||||
|
|
||||||
|
# --- Character Panel ---
|
||||||
|
ui/character_panel/title = キャラクターのアクション
|
||||||
|
ui/character_panel/reset = リセット
|
||||||
|
ui/character_panel/close = 閉じる
|
||||||
|
ui/character_panel/reset_title = アクションの割り当てをリセット
|
||||||
|
ui/character_panel/reset_text = すべてのアクションの割り当てをリセットしますか? キャラクターのアクションは既定に戻り、集めたアクションはプールに残ります。
|
||||||
|
ui/character_panel/reset_ok = リセット
|
||||||
|
ui/character_panel/reset_cancel = キャンセル
|
||||||
|
ui/character_panel/party = パーティ
|
||||||
|
ui/character_panel/party_sub = キャラクターごとに 3 スロット · 使わないカードはプールで待機
|
||||||
|
ui/character_panel/template = テンプレート:{0}
|
||||||
|
ui/character_panel/pool_title = アクションプール
|
||||||
|
ui/character_panel/search = 名前か ID で検索...
|
||||||
|
ui/character_panel/filter_all = すべて
|
||||||
|
ui/character_panel/type_enemy = 敵が対象
|
||||||
|
ui/character_panel/type_alias = 味方が対象
|
||||||
|
ui/character_panel/type_self = 自分が対象
|
||||||
|
ui/character_panel/type_passive = パッシブ
|
||||||
|
ui/character_panel/type_active = アクティブ
|
||||||
|
ui/character_panel/cost = {0} AP
|
||||||
|
ui/character_panel/cooldown = クールダウン {0}
|
||||||
|
ui/character_panel/slot = スロット {0}
|
||||||
|
ui/character_panel/slot_empty = + 空きスロット——ここにカードをドラッグ
|
||||||
|
ui/character_panel/assigned = 割り当て {0}/{1} · プール内 {2}
|
||||||
|
ui/character_panel/hint_select = カードを選んでからスロットを選ぶ
|
||||||
|
ui/character_panel/drag_hint = カードをスロットへドラッグ · スロット同士で入れ替え
|
||||||
|
ui/character_panel/pool_hint = プールにある間もカードはプレイヤーのものです。重複できます。
|
||||||
|
ui/character_panel/pool_empty = プールは空です——集めたアクションがここに表示されます
|
||||||
|
ui/character_panel/nothing_found = 何も見つかりません
|
||||||
|
ui/character_panel/stat_hp = HP
|
||||||
|
ui/character_panel/stat_ap = AP
|
||||||
|
ui/character_panel/stat_atk = 攻撃
|
||||||
|
ui/character_panel/stat_def = 防御
|
||||||
|
|
||||||
|
# --- Inventory ---
|
||||||
|
ui/inventory/title = インベントリ
|
||||||
|
ui/inventory/use = 使う
|
||||||
|
ui/inventory/drop = 捨てる
|
||||||
|
ui/inventory/drop_all = すべて
|
||||||
|
ui/inventory/drop_confirm = 捨てる
|
||||||
|
ui/inventory/drop_quantity = 捨てる
|
||||||
|
ui/inventory/close = 閉じる
|
||||||
|
ui/inventory/no_ap = AP が足りない
|
||||||
|
ui/inventory/select_target = 対象を選択
|
||||||
|
ui/inventory/cancel = キャンセル
|
||||||
|
ui/inventory/tab_all = すべて
|
||||||
|
ui/inventory/tab_food = 食べ物
|
||||||
|
ui/inventory/tab_resource = 素材
|
||||||
|
ui/inventory/tab_recipe = レシピ
|
||||||
|
ui/inventory/tab_quest = クエスト
|
||||||
|
ui/inventory/search = インベントリを検索...
|
||||||
|
ui/inventory/sort_type = 種類順
|
||||||
|
ui/inventory/sort_name = 名前順
|
||||||
|
ui/inventory/sort_cost = 価格順
|
||||||
|
ui/inventory/sort_count = 個数順
|
||||||
|
ui/inventory/shown = {1} 個中 {0} 個を表示
|
||||||
|
ui/inventory/hint_select = 左クリック——選択 · アクションは詳細に
|
||||||
|
ui/inventory/stack = スタック
|
||||||
|
ui/inventory/id = ID
|
||||||
|
ui/inventory/action = アクション
|
||||||
|
ui/inventory/verb = 動詞
|
||||||
|
ui/inventory/props_header = プロパティ · PropertyData
|
||||||
|
ui/inventory/props_none = プロパティなし
|
||||||
|
ui/inventory/no_action = ItemAction なし——このアイテムはまだ使えません
|
||||||
|
ui/inventory/cost = 価格
|
||||||
|
ui/inventory/empty = インベントリは空です
|
||||||
|
ui/inventory/select = 一覧からアイテムを選んでください
|
||||||
|
ui/inventory/ap = AP
|
||||||
|
ui/inventory/ap_cost = −1 AP
|
||||||
|
ui/inventory/used = 使った:{0}
|
||||||
|
ui/inventory/used_recipe = レシピを覚えた:{0}
|
||||||
|
ui/inventory/use_failed = UseAction → false:アイテムは消費されなかった
|
||||||
|
ui/inventory/dropped = 捨てた:{0} ×{1}
|
||||||
|
ui/inventory/applied = 使用:{0} → {1}
|
||||||
|
ui/inventory/applied_failed = 対象が効果を受け付けなかった——アイテムは消費されなかった
|
||||||
|
ui/inventory/drop_cant = 捨てられない(CantDrop)
|
||||||
|
ui/inventory/type_quest = クエスト
|
||||||
|
ui/inventory/type_used = 使用可
|
||||||
|
ui/inventory/type_target = 対象あり
|
||||||
|
ui/inventory/type_food = 食べ物
|
||||||
|
ui/inventory/type_resource = 素材
|
||||||
|
ui/inventory/type_recipe = レシピ
|
||||||
|
ui/inventory/type_cant_drop = 捨てられない
|
||||||
|
ui/inventory/verb_use = 使う
|
||||||
|
ui/inventory/verb_eat = 食べる
|
||||||
|
ui/inventory/verb_target = 対象に使う
|
||||||
|
ui/inventory/verb_recipe = レシピを覚える
|
||||||
|
ui/inventory/tag_recipe = レシピ
|
||||||
|
ui/inventory/tag_target = 対象
|
||||||
|
ui/inventory/tag_food = 飲み物
|
||||||
|
ui/inventory/tag_use = 使用
|
||||||
|
|
||||||
|
# --- Map ---
|
||||||
|
ui/map/title = マップ
|
||||||
|
ui/map/close = 閉じる
|
||||||
|
ui/map/subtitle = 北地区
|
||||||
|
ui/map/zone_count = {0} か所
|
||||||
|
ui/map/legend_current = 現在地
|
||||||
|
ui/map/legend_available = 行ける
|
||||||
|
ui/map/legend_locked = 閉鎖
|
||||||
|
ui/map/hint = マーカーを左クリック——場所を選ぶ · Esc——マップを閉じる
|
||||||
|
ui/map/current = 現在地
|
||||||
|
ui/map/available = 行ける
|
||||||
|
ui/map/locked = 閉鎖
|
||||||
|
ui/map/you_are_here = 現在地
|
||||||
|
ui/map/closed_note = 閉鎖
|
||||||
|
ui/map/go = 移動
|
||||||
|
ui/map/here = 現在地
|
||||||
|
ui/map/transition = 移動
|
||||||
|
ui/map/card_hint = 下のボタンでシーンを切り替えます。Esc——マップを閉じる。
|
||||||
|
ui/map/locked_message = 道はまだ開いていません。
|
||||||
|
ui/map/empty = マップを表示できません
|
||||||
|
ui/map/empty_hint = 背景 map.png が見つかりません——MOD に背景と map/*.json のゾーンファイルを追加してください。
|
||||||
|
|
||||||
|
# --- Skills ---
|
||||||
|
ui/skills/title = スキル
|
||||||
|
ui/skills/grants_action = アクションカードを付与
|
||||||
|
ui/skills/side_title = カードの研究
|
||||||
|
ui/skills/collection = コレクション
|
||||||
|
ui/skills/search = コレクションを検索…
|
||||||
|
ui/skills/sort_rarity = レア度順
|
||||||
|
ui/skills/sort_type = 種類順
|
||||||
|
ui/skills/sort_name = 名前順
|
||||||
|
ui/skills/filter_all = すべて
|
||||||
|
ui/skills/filter_rarities = すべてのレア度
|
||||||
|
ui/skills/hint = 左クリック——カードを調べる · 枠と輝きはレア度で変わる
|
||||||
|
ui/skills/reset = フィルターをリセット
|
||||||
|
ui/skills/empty = まだスキルがありません
|
||||||
|
ui/skills/nothing_found = 何も見つかりません
|
||||||
|
ui/skills/no_effects = まだ恒久的な効果はありません
|
||||||
|
ui/skills/collection_effect = コレクション効果
|
||||||
|
ui/skills/collection_effect_hint = コレクション全体の合計 · すぐに更新
|
||||||
|
ui/skills/rarity/common = コモン
|
||||||
|
ui/skills/rarity/uncommon = アンコモン
|
||||||
|
ui/skills/rarity/rare = レア
|
||||||
|
ui/skills/rarity/epic = エピック
|
||||||
|
ui/skills/rarity/legendary = レジェンダリー
|
||||||
|
ui/skills/type/active = アクティブ
|
||||||
|
ui/skills/type/passive = パッシブ
|
||||||
|
ui/skills/type/for_character = キャラクター用
|
||||||
|
|
||||||
|
# --- Quest Journal ---
|
||||||
|
ui/journal/title = 日誌
|
||||||
|
ui/journal/active = 進行中
|
||||||
|
ui/journal/completed = 完了
|
||||||
|
ui/journal/close = 閉じる
|
||||||
|
ui/journal/empty = クエストはありません
|
||||||
|
ui/journal/toc = 目次
|
||||||
|
ui/journal/entry_header = 記録
|
||||||
|
ui/journal/entry_of = 記録 {0} / {1}
|
||||||
|
ui/journal/finished = 完了
|
||||||
|
ui/journal/seals = 印章
|
||||||
|
ui/journal/no_entries = この記録のページはまだ白紙です。物語が進むにつれて文字が現れます。
|
||||||
|
|
||||||
|
tools/unsaved_title = 保存していない変更
|
||||||
|
tools/unsaved_text = 保存していない変更があります。保存せずに閉じますか?
|
||||||
|
tools/unsaved_discard_text = 保存していない変更があります。破棄しますか?
|
||||||
|
tools/window_maximize = 最大化 / 元に戻す(タイトルをダブルクリック)
|
||||||
|
tools/window_close = 閉じる
|
||||||
|
tools/menu_title = ツール
|
||||||
@@ -0,0 +1,268 @@
|
|||||||
|
# --- scenes/battle/winground.tscn ---
|
||||||
|
ui/battle/victory = 승리
|
||||||
|
ui/battle/victory/return = 계속
|
||||||
|
ui/battle/victory/loot_title = 전리품:
|
||||||
|
|
||||||
|
# --- scenes/battle/deadground.tscn ---
|
||||||
|
ui/battle/defeat = 패배
|
||||||
|
ui/battle/endgame/to_main_menu = 메인 메뉴
|
||||||
|
|
||||||
|
# --- scenes/battle/battle.tscn ---
|
||||||
|
ui/battle/next = 턴 종료
|
||||||
|
|
||||||
|
# --- scenes/menu/main_menu.tscn ---
|
||||||
|
menu/newgame = 새 게임
|
||||||
|
ui/menu/load = 불러오기
|
||||||
|
menu/settings = 설정
|
||||||
|
menu/exit = 나가기
|
||||||
|
|
||||||
|
# --- Mods ---
|
||||||
|
mods/title = 모드
|
||||||
|
mods/enable = 켜기
|
||||||
|
mods/disable = 끄기
|
||||||
|
mods/enabled = 켜짐
|
||||||
|
mods/disabled = 꺼짐
|
||||||
|
mods/disabled_reason = 꺼짐
|
||||||
|
mods/dep_disabled_reason = 의존 대상 "{0}"이(가) 꺼져 있습니다
|
||||||
|
mods/not_in_game_reason = 게임 "{0}"에 포함되지 않음
|
||||||
|
mods/dependency_disabled = 의존 대상이 꺼짐
|
||||||
|
mods/invalid_dep_format = 잘못된 의존성 형식: "{0}"
|
||||||
|
mods/required_mod_not_loaded = 필요한 모드 "{0}"이(가) 로드되지 않았습니다
|
||||||
|
mods/version_mismatch = 버전 불일치: {0} 필요, {1} 발견
|
||||||
|
mods/restart_required = 변경 사항을 적용하려면 다시 시작해야 합니다
|
||||||
|
mods/back = 뒤로
|
||||||
|
mods/author = 작성자
|
||||||
|
mods/version = 버전
|
||||||
|
mods/depends = 의존성
|
||||||
|
mods/used_by = 사용처
|
||||||
|
mods/overrides_title = 덮어쓰기
|
||||||
|
mods/reset_order = 순서 초기화
|
||||||
|
mods/reset_order_title = 순서 초기화
|
||||||
|
mods/reset_order_text = 모드 순서를 초기화할까요? 자동으로 다시 계산됩니다
|
||||||
|
mods/reset_order_confirm = 예
|
||||||
|
mods/reset_order_cancel = 취소
|
||||||
|
mods/tab_device = 기기
|
||||||
|
mods/tab_network = 네트워크
|
||||||
|
mods/network_refresh = 새로 고침
|
||||||
|
mods/network_loading = 카탈로그 불러오는 중...
|
||||||
|
mods/network_ready = 카탈로그를 불러왔습니다
|
||||||
|
mods/network_empty = 카탈로그에 모드가 없습니다
|
||||||
|
mods/network_error = 카탈로그를 불러오지 못했습니다
|
||||||
|
mods/network_no_urls = 카탈로그 URL이 설정되지 않았습니다
|
||||||
|
mods/status_installed = 설치됨
|
||||||
|
mods/status_update_available = 업데이트 있음
|
||||||
|
mods/status_not_installed = 설치 안 됨
|
||||||
|
mods/status_modified = 로컬에서 수정됨
|
||||||
|
mods/catalog_export = 카탈로그로 내보내기
|
||||||
|
mods/catalog_title = 카탈로그 항목 내보내기
|
||||||
|
mods/catalog_download_url = 다운로드 URL
|
||||||
|
mods/catalog_category = 분류
|
||||||
|
mods/category_story = 스토리
|
||||||
|
mods/category_characters = 캐릭터
|
||||||
|
mods/category_gameplay = 게임플레이
|
||||||
|
mods/category_visual = 비주얼
|
||||||
|
mods/category_audio = 오디오
|
||||||
|
mods/category_ui = UI
|
||||||
|
mods/category_locale = 언어
|
||||||
|
mods/category_library = 라이브러리
|
||||||
|
mods/category_engine = 엔진
|
||||||
|
mods/category_overhaul = 대규모 개편
|
||||||
|
mods/category_tools = 도구
|
||||||
|
mods/category_editor = 에디터
|
||||||
|
mods/category_debug = 디버그
|
||||||
|
mods/category_other = 기타
|
||||||
|
mods/catalog_tags = 태그 (쉼표로 구분)
|
||||||
|
mods/catalog_changelog = 변경 기록
|
||||||
|
mods/catalog_status = 상태
|
||||||
|
mods/catalog_min_game_version = 최소 게임 버전
|
||||||
|
mods/catalog_icon_url = 아이콘 URL
|
||||||
|
mods/catalog_copy = JSON 복사
|
||||||
|
mods/catalog_export_file = 파일로 내보내기
|
||||||
|
mods/catalog_close = 닫기
|
||||||
|
mods/install_button = 설치
|
||||||
|
mods/update_button = 업데이트
|
||||||
|
mods/overwrite_button = 덮어쓰기
|
||||||
|
mods/downgrade_button = 다운그레이드
|
||||||
|
mods/restart_button = 다시 시작 필요
|
||||||
|
mods/installing = 설치 중...
|
||||||
|
mods/install_complete = 설치 완료. 다시 시작해야 합니다.
|
||||||
|
mods/install_failed = 설치에 실패했습니다. 자세한 내용은 로그를 확인하세요.
|
||||||
|
|
||||||
|
# --- Save/Load ---
|
||||||
|
ui/load/title = 불러오기
|
||||||
|
ui/save/title = 저장
|
||||||
|
ui/save/empty = 비어 있음
|
||||||
|
ui/save/overwrite_title = 저장 덮어쓰기
|
||||||
|
ui/save/overwrite_text = 이 슬롯에 이미 저장 파일이 있습니다. 덮어쓸까요?
|
||||||
|
ui/save/save_button = 덮어쓰기
|
||||||
|
ui/save/cancel_button = 취소
|
||||||
|
ui/save/game_day = {day}일째, {time}
|
||||||
|
ui/save/party_size = 파티: {count}
|
||||||
|
|
||||||
|
# --- GameMenu ---
|
||||||
|
menu/title = 메뉴
|
||||||
|
menu/resume = 계속
|
||||||
|
menu/save = 저장
|
||||||
|
menu/load = 불러오기
|
||||||
|
menu/main_menu = 메인 메뉴
|
||||||
|
|
||||||
|
# --- Character Panel ---
|
||||||
|
ui/character_panel/title = 캐릭터 액션
|
||||||
|
ui/character_panel/reset = 초기화
|
||||||
|
ui/character_panel/close = 닫기
|
||||||
|
ui/character_panel/reset_title = 액션 배정 초기화
|
||||||
|
ui/character_panel/reset_text = 모든 액션 배정을 초기화할까요? 캐릭터 액션은 기본값으로 돌아가고, 모은 액션은 풀에 남습니다.
|
||||||
|
ui/character_panel/reset_ok = 초기화
|
||||||
|
ui/character_panel/reset_cancel = 취소
|
||||||
|
ui/character_panel/party = 파티
|
||||||
|
ui/character_panel/party_sub = 캐릭터마다 슬롯 3개 · 쓰지 않는 카드는 풀에서 대기
|
||||||
|
ui/character_panel/template = 템플릿: {0}
|
||||||
|
ui/character_panel/pool_title = 액션 풀
|
||||||
|
ui/character_panel/search = 이름 또는 ID로 검색...
|
||||||
|
ui/character_panel/filter_all = 전체
|
||||||
|
ui/character_panel/type_enemy = 적 대상
|
||||||
|
ui/character_panel/type_alias = 아군 대상
|
||||||
|
ui/character_panel/type_self = 자신 대상
|
||||||
|
ui/character_panel/type_passive = 패시브
|
||||||
|
ui/character_panel/type_active = 액티브
|
||||||
|
ui/character_panel/cost = {0} AP
|
||||||
|
ui/character_panel/cooldown = 재사용 대기 {0}
|
||||||
|
ui/character_panel/slot = 슬롯 {0}
|
||||||
|
ui/character_panel/slot_empty = + 빈 슬롯 — 여기로 카드를 끌어 오세요
|
||||||
|
ui/character_panel/assigned = 배정 {0}/{1} · 풀에 {2}
|
||||||
|
ui/character_panel/hint_select = 카드를 고른 다음 슬롯을 고르세요
|
||||||
|
ui/character_panel/drag_hint = 카드를 슬롯으로 끌어 놓기 · 슬롯끼리 서로 바꾸기
|
||||||
|
ui/character_panel/pool_hint = 카드는 풀에 있는 동안에도 플레이어의 것입니다. 중복이 허용됩니다.
|
||||||
|
ui/character_panel/pool_empty = 풀이 비어 있습니다 — 모은 액션이 여기에 나타납니다
|
||||||
|
ui/character_panel/nothing_found = 아무것도 찾지 못했습니다
|
||||||
|
ui/character_panel/stat_hp = HP
|
||||||
|
ui/character_panel/stat_ap = AP
|
||||||
|
ui/character_panel/stat_atk = 공격
|
||||||
|
ui/character_panel/stat_def = 방어
|
||||||
|
|
||||||
|
# --- Inventory ---
|
||||||
|
ui/inventory/title = 인벤토리
|
||||||
|
ui/inventory/use = 사용
|
||||||
|
ui/inventory/drop = 버리기
|
||||||
|
ui/inventory/drop_all = 전부
|
||||||
|
ui/inventory/drop_confirm = 버리기
|
||||||
|
ui/inventory/drop_quantity = 버리기
|
||||||
|
ui/inventory/close = 닫기
|
||||||
|
ui/inventory/no_ap = AP가 부족합니다
|
||||||
|
ui/inventory/select_target = 대상 선택
|
||||||
|
ui/inventory/cancel = 취소
|
||||||
|
ui/inventory/tab_all = 전체
|
||||||
|
ui/inventory/tab_food = 음식
|
||||||
|
ui/inventory/tab_resource = 자원
|
||||||
|
ui/inventory/tab_recipe = 레시피
|
||||||
|
ui/inventory/tab_quest = 퀘스트
|
||||||
|
ui/inventory/search = 인벤토리 검색...
|
||||||
|
ui/inventory/sort_type = 유형순
|
||||||
|
ui/inventory/sort_name = 이름순
|
||||||
|
ui/inventory/sort_cost = 가격순
|
||||||
|
ui/inventory/sort_count = 개수순
|
||||||
|
ui/inventory/shown = {1}개 중 {0}개 표시
|
||||||
|
ui/inventory/hint_select = 좌클릭 — 선택 · 액션은 상세 정보에
|
||||||
|
ui/inventory/stack = 묶음
|
||||||
|
ui/inventory/id = ID
|
||||||
|
ui/inventory/action = 액션
|
||||||
|
ui/inventory/verb = 동사
|
||||||
|
ui/inventory/props_header = 속성 · PropertyData
|
||||||
|
ui/inventory/props_none = 속성 없음
|
||||||
|
ui/inventory/no_action = ItemAction 없음 — 아직 사용할 수 없는 아이템
|
||||||
|
ui/inventory/cost = 가격
|
||||||
|
ui/inventory/empty = 인벤토리가 비어 있습니다
|
||||||
|
ui/inventory/select = 목록에서 아이템을 고르세요
|
||||||
|
ui/inventory/ap = AP
|
||||||
|
ui/inventory/ap_cost = −1 AP
|
||||||
|
ui/inventory/used = 사용함: {0}
|
||||||
|
ui/inventory/used_recipe = 레시피를 배웠다: {0}
|
||||||
|
ui/inventory/use_failed = UseAction → false: 아이템이 소모되지 않았습니다
|
||||||
|
ui/inventory/dropped = 버림: {0} ×{1}
|
||||||
|
ui/inventory/applied = 적용: {0} → {1}
|
||||||
|
ui/inventory/applied_failed = 대상이 효과를 받지 않았습니다 — 아이템이 소모되지 않았습니다
|
||||||
|
ui/inventory/drop_cant = 버릴 수 없음 (CantDrop)
|
||||||
|
ui/inventory/type_quest = 퀘스트
|
||||||
|
ui/inventory/type_used = 사용 가능
|
||||||
|
ui/inventory/type_target = 대상 지정
|
||||||
|
ui/inventory/type_food = 음식
|
||||||
|
ui/inventory/type_resource = 자원
|
||||||
|
ui/inventory/type_recipe = 레시피
|
||||||
|
ui/inventory/type_cant_drop = 버릴 수 없음
|
||||||
|
ui/inventory/verb_use = 사용
|
||||||
|
ui/inventory/verb_eat = 먹기
|
||||||
|
ui/inventory/verb_target = 대상에게 사용
|
||||||
|
ui/inventory/verb_recipe = 레시피 배우기
|
||||||
|
ui/inventory/tag_recipe = 레시피
|
||||||
|
ui/inventory/tag_target = 대상
|
||||||
|
ui/inventory/tag_food = 음료
|
||||||
|
ui/inventory/tag_use = 사용
|
||||||
|
|
||||||
|
# --- Map ---
|
||||||
|
ui/map/title = 지도
|
||||||
|
ui/map/close = 닫기
|
||||||
|
ui/map/subtitle = 북부 지구
|
||||||
|
ui/map/zone_count = 장소 {0}곳
|
||||||
|
ui/map/legend_current = 현재 위치
|
||||||
|
ui/map/legend_available = 갈 수 있음
|
||||||
|
ui/map/legend_locked = 닫힘
|
||||||
|
ui/map/hint = 표식을 좌클릭 — 장소 선택 · Esc — 지도 닫기
|
||||||
|
ui/map/current = 현재 위치
|
||||||
|
ui/map/available = 갈 수 있음
|
||||||
|
ui/map/locked = 닫힘
|
||||||
|
ui/map/you_are_here = 현재 위치
|
||||||
|
ui/map/closed_note = 닫힘
|
||||||
|
ui/map/go = 이동
|
||||||
|
ui/map/here = 현재 위치
|
||||||
|
ui/map/transition = 전환
|
||||||
|
ui/map/card_hint = 아래 버튼으로 장면을 바꿉니다. Esc — 지도 닫기.
|
||||||
|
ui/map/locked_message = 아직 길이 열리지 않았습니다.
|
||||||
|
ui/map/empty = 지도를 쓸 수 없음
|
||||||
|
ui/map/empty_hint = 배경 map.png를 찾지 못했습니다 — 모드에 배경과 map/*.json 구역 파일을 추가하세요.
|
||||||
|
|
||||||
|
# --- Skills ---
|
||||||
|
ui/skills/title = 스킬
|
||||||
|
ui/skills/grants_action = 액션 카드를 부여
|
||||||
|
ui/skills/side_title = 카드 연구
|
||||||
|
ui/skills/collection = 컬렉션
|
||||||
|
ui/skills/search = 컬렉션 검색…
|
||||||
|
ui/skills/sort_rarity = 희귀도순
|
||||||
|
ui/skills/sort_type = 유형순
|
||||||
|
ui/skills/sort_name = 이름순
|
||||||
|
ui/skills/filter_all = 전체
|
||||||
|
ui/skills/filter_rarities = 모든 희귀도
|
||||||
|
ui/skills/hint = 좌클릭 — 카드 살펴보기 · 테두리와 빛은 희귀도를 따릅니다
|
||||||
|
ui/skills/reset = 필터 초기화
|
||||||
|
ui/skills/empty = 아직 스킬이 없습니다
|
||||||
|
ui/skills/nothing_found = 아무것도 찾지 못했습니다
|
||||||
|
ui/skills/no_effects = 아직 영구 효과가 없습니다
|
||||||
|
ui/skills/collection_effect = 컬렉션 효과
|
||||||
|
ui/skills/collection_effect_hint = 컬렉션 전체 합계 · 즉시 갱신
|
||||||
|
ui/skills/rarity/common = 일반
|
||||||
|
ui/skills/rarity/uncommon = 고급
|
||||||
|
ui/skills/rarity/rare = 희귀
|
||||||
|
ui/skills/rarity/epic = 영웅
|
||||||
|
ui/skills/rarity/legendary = 전설
|
||||||
|
ui/skills/type/active = 액티브
|
||||||
|
ui/skills/type/passive = 패시브
|
||||||
|
ui/skills/type/for_character = 캐릭터용
|
||||||
|
|
||||||
|
# --- Quest Journal ---
|
||||||
|
ui/journal/title = 일지
|
||||||
|
ui/journal/active = 진행 중
|
||||||
|
ui/journal/completed = 완료
|
||||||
|
ui/journal/close = 닫기
|
||||||
|
ui/journal/empty = 퀘스트 없음
|
||||||
|
ui/journal/toc = 목차
|
||||||
|
ui/journal/entry_header = 항목
|
||||||
|
ui/journal/entry_of = 항목 {0} / {1}
|
||||||
|
ui/journal/finished = 완료
|
||||||
|
ui/journal/seals = 인장
|
||||||
|
ui/journal/no_entries = 이 항목의 페이지는 아직 비어 있습니다. 이야기가 진행되면 글자가 나타납니다.
|
||||||
|
|
||||||
|
tools/unsaved_title = 저장하지 않은 변경
|
||||||
|
tools/unsaved_text = 저장하지 않은 변경이 있습니다. 저장하지 않고 닫을까요?
|
||||||
|
tools/unsaved_discard_text = 저장하지 않은 변경이 있습니다. 버릴까요?
|
||||||
|
tools/window_maximize = 최대화 / 복원 (제목 더블클릭)
|
||||||
|
tools/window_close = 닫기
|
||||||
|
tools/menu_title = 도구
|
||||||
@@ -100,6 +100,7 @@ ui/save/game_day = День {day}, {time}
|
|||||||
ui/save/party_size = Отряд: {count}
|
ui/save/party_size = Отряд: {count}
|
||||||
|
|
||||||
# --- GameMenu ---
|
# --- GameMenu ---
|
||||||
|
menu/title = Меню
|
||||||
menu/resume = Вернуться
|
menu/resume = Вернуться
|
||||||
menu/save = Сохранить
|
menu/save = Сохранить
|
||||||
menu/load = Загрузить
|
menu/load = Загрузить
|
||||||
@@ -258,8 +259,6 @@ ui/journal/entry_of = Запись {0} из {1}
|
|||||||
ui/journal/finished = Завершено
|
ui/journal/finished = Завершено
|
||||||
ui/journal/seals = Печати
|
ui/journal/seals = Печати
|
||||||
ui/journal/no_entries = Страницы этой записи ещё пусты. Чернила появятся, когда история сдвинется с места.
|
ui/journal/no_entries = Страницы этой записи ещё пусты. Чернила появятся, когда история сдвинется с места.
|
||||||
mod_ui_base_name = Интерфейс
|
|
||||||
mod_ui_base_desc = Подсистема UI движка: набор виджетов (Widget/ModWidget, списки), ViewBox фона, тулбар ToolBox, GameMenu/SaveIcon, панели уведомлений, дизайн-система UiKit и DeviceInput. Ядро работает с модом через контракты IWidget/IToolbarHost и мосты.
|
|
||||||
|
|
||||||
tools/unsaved_title = Есть изменения
|
tools/unsaved_title = Есть изменения
|
||||||
tools/unsaved_text = У вас есть несохранённые изменения. Закрыть без сохранения?
|
tools/unsaved_text = У вас есть несохранённые изменения. Закрыть без сохранения?
|
||||||
|
|||||||
@@ -0,0 +1,268 @@
|
|||||||
|
# --- scenes/battle/winground.tscn ---
|
||||||
|
ui/battle/victory = Chiến thắng
|
||||||
|
ui/battle/victory/return = Tiếp tục
|
||||||
|
ui/battle/victory/loot_title = Chiến lợi phẩm:
|
||||||
|
|
||||||
|
# --- scenes/battle/deadground.tscn ---
|
||||||
|
ui/battle/defeat = Thất bại
|
||||||
|
ui/battle/endgame/to_main_menu = Menu chính
|
||||||
|
|
||||||
|
# --- scenes/battle/battle.tscn ---
|
||||||
|
ui/battle/next = Kết thúc lượt
|
||||||
|
|
||||||
|
# --- scenes/menu/main_menu.tscn ---
|
||||||
|
menu/newgame = Trò chơi mới
|
||||||
|
ui/menu/load = Tải
|
||||||
|
menu/settings = Cài đặt
|
||||||
|
menu/exit = Thoát
|
||||||
|
|
||||||
|
# --- Mods ---
|
||||||
|
mods/title = Mod
|
||||||
|
mods/enable = Bật
|
||||||
|
mods/disable = Tắt
|
||||||
|
mods/enabled = Đã bật
|
||||||
|
mods/disabled = Đã tắt
|
||||||
|
mods/disabled_reason = Đã tắt
|
||||||
|
mods/dep_disabled_reason = Phụ thuộc "{0}" đang tắt
|
||||||
|
mods/not_in_game_reason = Không thuộc game "{0}"
|
||||||
|
mods/dependency_disabled = Phụ thuộc đang tắt
|
||||||
|
mods/invalid_dep_format = Định dạng phụ thuộc không hợp lệ: "{0}"
|
||||||
|
mods/required_mod_not_loaded = Mod cần thiết "{0}" chưa được tải
|
||||||
|
mods/version_mismatch = Không khớp phiên bản: cần {0}, tìm thấy {1}
|
||||||
|
mods/restart_required = Cần khởi động lại để thay đổi có hiệu lực
|
||||||
|
mods/back = Quay lại
|
||||||
|
mods/author = Tác giả
|
||||||
|
mods/version = Phiên bản
|
||||||
|
mods/depends = Phụ thuộc
|
||||||
|
mods/used_by = Được dùng bởi
|
||||||
|
mods/overrides_title = Ghi đè
|
||||||
|
mods/reset_order = Đặt lại thứ tự
|
||||||
|
mods/reset_order_title = Đặt lại thứ tự
|
||||||
|
mods/reset_order_text = Bạn có chắc muốn đặt lại thứ tự mod? Nó sẽ được tính lại tự động
|
||||||
|
mods/reset_order_confirm = Có
|
||||||
|
mods/reset_order_cancel = Hủy
|
||||||
|
mods/tab_device = Thiết bị
|
||||||
|
mods/tab_network = Mạng
|
||||||
|
mods/network_refresh = Làm mới
|
||||||
|
mods/network_loading = Đang tải danh mục...
|
||||||
|
mods/network_ready = Đã tải danh mục
|
||||||
|
mods/network_empty = Không có mod trong danh mục
|
||||||
|
mods/network_error = Không tải được danh mục
|
||||||
|
mods/network_no_urls = Chưa cấu hình URL danh mục
|
||||||
|
mods/status_installed = Đã cài
|
||||||
|
mods/status_update_available = Có bản cập nhật
|
||||||
|
mods/status_not_installed = Chưa cài
|
||||||
|
mods/status_modified = Đã sửa cục bộ
|
||||||
|
mods/catalog_export = Xuất sang danh mục
|
||||||
|
mods/catalog_title = Xuất mục danh mục
|
||||||
|
mods/catalog_download_url = URL tải xuống
|
||||||
|
mods/catalog_category = Thể loại
|
||||||
|
mods/category_story = Cốt truyện
|
||||||
|
mods/category_characters = Nhân vật
|
||||||
|
mods/category_gameplay = Lối chơi
|
||||||
|
mods/category_visual = Hình ảnh
|
||||||
|
mods/category_audio = Âm thanh
|
||||||
|
mods/category_ui = Giao diện
|
||||||
|
mods/category_locale = Ngôn ngữ
|
||||||
|
mods/category_library = Thư viện
|
||||||
|
mods/category_engine = Engine
|
||||||
|
mods/category_overhaul = Đại tu
|
||||||
|
mods/category_tools = Công cụ
|
||||||
|
mods/category_editor = Trình sửa
|
||||||
|
mods/category_debug = Gỡ lỗi
|
||||||
|
mods/category_other = Khác
|
||||||
|
mods/catalog_tags = Thẻ (cách nhau bằng dấu phẩy)
|
||||||
|
mods/catalog_changelog = Nhật ký thay đổi
|
||||||
|
mods/catalog_status = Trạng thái
|
||||||
|
mods/catalog_min_game_version = Phiên bản game tối thiểu
|
||||||
|
mods/catalog_icon_url = URL biểu tượng
|
||||||
|
mods/catalog_copy = Sao chép JSON
|
||||||
|
mods/catalog_export_file = Xuất ra tệp
|
||||||
|
mods/catalog_close = Đóng
|
||||||
|
mods/install_button = Cài đặt
|
||||||
|
mods/update_button = Cập nhật
|
||||||
|
mods/overwrite_button = Ghi đè
|
||||||
|
mods/downgrade_button = Hạ phiên bản
|
||||||
|
mods/restart_button = Cần khởi động lại
|
||||||
|
mods/installing = Đang cài...
|
||||||
|
mods/install_complete = Cài xong. Cần khởi động lại.
|
||||||
|
mods/install_failed = Cài đặt thất bại. Xem nhật ký để biết chi tiết.
|
||||||
|
|
||||||
|
# --- Save/Load ---
|
||||||
|
ui/load/title = Tải
|
||||||
|
ui/save/title = Lưu
|
||||||
|
ui/save/empty = Trống
|
||||||
|
ui/save/overwrite_title = Ghi đè bản lưu
|
||||||
|
ui/save/overwrite_text = Ô này đã có bản lưu. Ghi đè?
|
||||||
|
ui/save/save_button = Ghi đè
|
||||||
|
ui/save/cancel_button = Hủy
|
||||||
|
ui/save/game_day = Ngày {day}, {time}
|
||||||
|
ui/save/party_size = Tổ đội: {count}
|
||||||
|
|
||||||
|
# --- GameMenu ---
|
||||||
|
menu/title = Menu
|
||||||
|
menu/resume = Tiếp tục
|
||||||
|
menu/save = Lưu
|
||||||
|
menu/load = Tải
|
||||||
|
menu/main_menu = Menu chính
|
||||||
|
|
||||||
|
# --- Character Panel ---
|
||||||
|
ui/character_panel/title = Hành động của nhân vật
|
||||||
|
ui/character_panel/reset = Đặt lại
|
||||||
|
ui/character_panel/close = Đóng
|
||||||
|
ui/character_panel/reset_title = Đặt lại phân bổ hành động
|
||||||
|
ui/character_panel/reset_text = Bạn có chắc muốn đặt lại mọi phân bổ hành động? Hành động của nhân vật sẽ trở về mặc định, các hành động đã thu thập vẫn ở trong kho.
|
||||||
|
ui/character_panel/reset_ok = Đặt lại
|
||||||
|
ui/character_panel/reset_cancel = Hủy
|
||||||
|
ui/character_panel/party = Tổ đội
|
||||||
|
ui/character_panel/party_sub = 3 ô cho mỗi nhân vật · thẻ chưa dùng chờ trong kho
|
||||||
|
ui/character_panel/template = mẫu: {0}
|
||||||
|
ui/character_panel/pool_title = Kho hành động
|
||||||
|
ui/character_panel/search = Tìm theo tên hoặc ID...
|
||||||
|
ui/character_panel/filter_all = Tất cả
|
||||||
|
ui/character_panel/type_enemy = Nhắm kẻ địch
|
||||||
|
ui/character_panel/type_alias = Nhắm đồng đội
|
||||||
|
ui/character_panel/type_self = Nhắm bản thân
|
||||||
|
ui/character_panel/type_passive = Bị động
|
||||||
|
ui/character_panel/type_active = Chủ động
|
||||||
|
ui/character_panel/cost = {0} AP
|
||||||
|
ui/character_panel/cooldown = Hồi chiêu {0}
|
||||||
|
ui/character_panel/slot = Ô {0}
|
||||||
|
ui/character_panel/slot_empty = + ô trống — kéo một thẻ vào đây
|
||||||
|
ui/character_panel/assigned = Đã gán {0}/{1} · trong kho {2}
|
||||||
|
ui/character_panel/hint_select = chọn một thẻ, rồi chọn một ô
|
||||||
|
ui/character_panel/drag_hint = Kéo thẻ vào ô · ô↔ô để đổi chỗ
|
||||||
|
ui/character_panel/pool_hint = Thẻ vẫn thuộc về người chơi khi ở trong kho. Được phép trùng lặp.
|
||||||
|
ui/character_panel/pool_empty = Kho trống — các hành động thu thập được sẽ xuất hiện ở đây
|
||||||
|
ui/character_panel/nothing_found = Không tìm thấy gì
|
||||||
|
ui/character_panel/stat_hp = HP
|
||||||
|
ui/character_panel/stat_ap = AP
|
||||||
|
ui/character_panel/stat_atk = ATK
|
||||||
|
ui/character_panel/stat_def = DEF
|
||||||
|
|
||||||
|
# --- Inventory ---
|
||||||
|
ui/inventory/title = Túi đồ
|
||||||
|
ui/inventory/use = Dùng
|
||||||
|
ui/inventory/drop = Vứt
|
||||||
|
ui/inventory/drop_all = Tất cả
|
||||||
|
ui/inventory/drop_confirm = Vứt
|
||||||
|
ui/inventory/drop_quantity = Vứt
|
||||||
|
ui/inventory/close = Đóng
|
||||||
|
ui/inventory/no_ap = Không đủ AP
|
||||||
|
ui/inventory/select_target = Chọn mục tiêu
|
||||||
|
ui/inventory/cancel = Hủy
|
||||||
|
ui/inventory/tab_all = Tất cả
|
||||||
|
ui/inventory/tab_food = Đồ ăn
|
||||||
|
ui/inventory/tab_resource = Tài nguyên
|
||||||
|
ui/inventory/tab_recipe = Công thức
|
||||||
|
ui/inventory/tab_quest = Nhiệm vụ
|
||||||
|
ui/inventory/search = Tìm trong túi đồ...
|
||||||
|
ui/inventory/sort_type = Theo loại
|
||||||
|
ui/inventory/sort_name = Theo tên
|
||||||
|
ui/inventory/sort_cost = Theo giá
|
||||||
|
ui/inventory/sort_count = Theo số lượng
|
||||||
|
ui/inventory/shown = Hiển thị {0} trên {1}
|
||||||
|
ui/inventory/hint_select = Chuột trái — chọn · hành động trong phần chi tiết
|
||||||
|
ui/inventory/stack = Chồng
|
||||||
|
ui/inventory/id = ID
|
||||||
|
ui/inventory/action = Hành động
|
||||||
|
ui/inventory/verb = Động từ
|
||||||
|
ui/inventory/props_header = Thuộc tính · PropertyData
|
||||||
|
ui/inventory/props_none = không có thuộc tính
|
||||||
|
ui/inventory/no_action = Không có ItemAction — vật phẩm chưa dùng được
|
||||||
|
ui/inventory/cost = Giá
|
||||||
|
ui/inventory/empty = Túi đồ trống
|
||||||
|
ui/inventory/select = Chọn một vật phẩm trong danh sách
|
||||||
|
ui/inventory/ap = AP
|
||||||
|
ui/inventory/ap_cost = −1 AP
|
||||||
|
ui/inventory/used = Đã dùng: {0}
|
||||||
|
ui/inventory/used_recipe = Đã học công thức: {0}
|
||||||
|
ui/inventory/use_failed = UseAction → false: vật phẩm không bị tiêu hao
|
||||||
|
ui/inventory/dropped = Đã vứt: {0} ×{1}
|
||||||
|
ui/inventory/applied = Đã áp dụng: {0} → {1}
|
||||||
|
ui/inventory/applied_failed = Mục tiêu không nhận hiệu ứng — vật phẩm không bị tiêu hao
|
||||||
|
ui/inventory/drop_cant = Không thể vứt (CantDrop)
|
||||||
|
ui/inventory/type_quest = Nhiệm vụ
|
||||||
|
ui/inventory/type_used = Dùng được
|
||||||
|
ui/inventory/type_target = Có mục tiêu
|
||||||
|
ui/inventory/type_food = Đồ ăn
|
||||||
|
ui/inventory/type_resource = Tài nguyên
|
||||||
|
ui/inventory/type_recipe = Công thức
|
||||||
|
ui/inventory/type_cant_drop = Không thể vứt
|
||||||
|
ui/inventory/verb_use = Dùng
|
||||||
|
ui/inventory/verb_eat = Ăn
|
||||||
|
ui/inventory/verb_target = Dùng lên mục tiêu
|
||||||
|
ui/inventory/verb_recipe = Học công thức
|
||||||
|
ui/inventory/tag_recipe = công thức
|
||||||
|
ui/inventory/tag_target = mục tiêu
|
||||||
|
ui/inventory/tag_food = đồ uống
|
||||||
|
ui/inventory/tag_use = dùng
|
||||||
|
|
||||||
|
# --- Map ---
|
||||||
|
ui/map/title = Bản đồ
|
||||||
|
ui/map/close = Đóng
|
||||||
|
ui/map/subtitle = Quận phía bắc
|
||||||
|
ui/map/zone_count = {0} địa điểm
|
||||||
|
ui/map/legend_current = bạn ở đây
|
||||||
|
ui/map/legend_available = có thể đến
|
||||||
|
ui/map/legend_locked = đã đóng
|
||||||
|
ui/map/hint = Chuột trái vào điểm đánh dấu — chọn địa điểm · Esc — đóng bản đồ
|
||||||
|
ui/map/current = Bạn ở đây
|
||||||
|
ui/map/available = Có thể đến
|
||||||
|
ui/map/locked = Đã đóng
|
||||||
|
ui/map/you_are_here = bạn ở đây
|
||||||
|
ui/map/closed_note = đã đóng
|
||||||
|
ui/map/go = Di chuyển
|
||||||
|
ui/map/here = Bạn ở đây
|
||||||
|
ui/map/transition = Chuyển cảnh
|
||||||
|
ui/map/card_hint = Nút bên dưới chuyển cảnh. Esc — đóng bản đồ.
|
||||||
|
ui/map/locked_message = Con đường chưa mở.
|
||||||
|
ui/map/empty = Bản đồ không khả dụng
|
||||||
|
ui/map/empty_hint = Không tìm thấy phông nền map.png — hãy thêm phông nền và các tệp vùng map/*.json vào một mod.
|
||||||
|
|
||||||
|
# --- Skills ---
|
||||||
|
ui/skills/title = Kỹ năng
|
||||||
|
ui/skills/grants_action = Cấp một thẻ hành động
|
||||||
|
ui/skills/side_title = Nghiên cứu thẻ
|
||||||
|
ui/skills/collection = Bộ sưu tập
|
||||||
|
ui/skills/search = Tìm trong bộ sưu tập…
|
||||||
|
ui/skills/sort_rarity = Theo độ hiếm
|
||||||
|
ui/skills/sort_type = Theo loại
|
||||||
|
ui/skills/sort_name = Theo tên
|
||||||
|
ui/skills/filter_all = Tất cả
|
||||||
|
ui/skills/filter_rarities = Mọi độ hiếm
|
||||||
|
ui/skills/hint = Chuột trái — xem thẻ · khung và ánh sáng theo độ hiếm
|
||||||
|
ui/skills/reset = Đặt lại bộ lọc
|
||||||
|
ui/skills/empty = Chưa có kỹ năng nào
|
||||||
|
ui/skills/nothing_found = Không tìm thấy gì
|
||||||
|
ui/skills/no_effects = Chưa có hiệu ứng vĩnh viễn
|
||||||
|
ui/skills/collection_effect = Hiệu ứng bộ sưu tập
|
||||||
|
ui/skills/collection_effect_hint = Tổng của cả bộ sưu tập · cập nhật tức thì
|
||||||
|
ui/skills/rarity/common = Thường
|
||||||
|
ui/skills/rarity/uncommon = Khá hiếm
|
||||||
|
ui/skills/rarity/rare = Hiếm
|
||||||
|
ui/skills/rarity/epic = Sử thi
|
||||||
|
ui/skills/rarity/legendary = Huyền thoại
|
||||||
|
ui/skills/type/active = Chủ động
|
||||||
|
ui/skills/type/passive = Bị động
|
||||||
|
ui/skills/type/for_character = Cho nhân vật
|
||||||
|
|
||||||
|
# --- Quest Journal ---
|
||||||
|
ui/journal/title = Nhật ký
|
||||||
|
ui/journal/active = Đang làm
|
||||||
|
ui/journal/completed = Đã xong
|
||||||
|
ui/journal/close = Đóng
|
||||||
|
ui/journal/empty = Không có nhiệm vụ
|
||||||
|
ui/journal/toc = Mục lục
|
||||||
|
ui/journal/entry_header = Mục
|
||||||
|
ui/journal/entry_of = Mục {0} trên {1}
|
||||||
|
ui/journal/finished = Đã xong
|
||||||
|
ui/journal/seals = Ấn triện
|
||||||
|
ui/journal/no_entries = Các trang của mục này vẫn còn trống. Mực sẽ hiện ra khi câu chuyện tiếp diễn.
|
||||||
|
|
||||||
|
tools/unsaved_title = Thay đổi chưa lưu
|
||||||
|
tools/unsaved_text = Bạn có thay đổi chưa lưu. Đóng mà không lưu?
|
||||||
|
tools/unsaved_discard_text = Có thay đổi chưa lưu. Bỏ chúng?
|
||||||
|
tools/window_maximize = Phóng to / khôi phục (nhấp đúp vào tiêu đề)
|
||||||
|
tools/window_close = Đóng
|
||||||
|
tools/menu_title = Công cụ
|
||||||
@@ -0,0 +1,268 @@
|
|||||||
|
# --- scenes/battle/winground.tscn ---
|
||||||
|
ui/battle/victory = 胜利
|
||||||
|
ui/battle/victory/return = 继续
|
||||||
|
ui/battle/victory/loot_title = 战利品:
|
||||||
|
|
||||||
|
# --- scenes/battle/deadground.tscn ---
|
||||||
|
ui/battle/defeat = 失败
|
||||||
|
ui/battle/endgame/to_main_menu = 主菜单
|
||||||
|
|
||||||
|
# --- scenes/battle/battle.tscn ---
|
||||||
|
ui/battle/next = 结束回合
|
||||||
|
|
||||||
|
# --- scenes/menu/main_menu.tscn ---
|
||||||
|
menu/newgame = 新游戏
|
||||||
|
ui/menu/load = 读取
|
||||||
|
menu/settings = 设置
|
||||||
|
menu/exit = 退出
|
||||||
|
|
||||||
|
# --- Mods ---
|
||||||
|
mods/title = 模组
|
||||||
|
mods/enable = 启用
|
||||||
|
mods/disable = 停用
|
||||||
|
mods/enabled = 已启用
|
||||||
|
mods/disabled = 已停用
|
||||||
|
mods/disabled_reason = 已停用
|
||||||
|
mods/dep_disabled_reason = 依赖"{0}"已停用
|
||||||
|
mods/not_in_game_reason = 不属于游戏"{0}"
|
||||||
|
mods/dependency_disabled = 依赖已停用
|
||||||
|
mods/invalid_dep_format = 依赖格式无效:"{0}"
|
||||||
|
mods/required_mod_not_loaded = 所需模组"{0}"未加载
|
||||||
|
mods/version_mismatch = 版本不匹配:需要 {0},找到 {1}
|
||||||
|
mods/restart_required = 需要重启才能使更改生效
|
||||||
|
mods/back = 返回
|
||||||
|
mods/author = 作者
|
||||||
|
mods/version = 版本
|
||||||
|
mods/depends = 依赖
|
||||||
|
mods/used_by = 被使用于
|
||||||
|
mods/overrides_title = 覆盖项
|
||||||
|
mods/reset_order = 重置顺序
|
||||||
|
mods/reset_order_title = 重置顺序
|
||||||
|
mods/reset_order_text = 确定要重置模组顺序吗?它会被自动重新计算
|
||||||
|
mods/reset_order_confirm = 是
|
||||||
|
mods/reset_order_cancel = 取消
|
||||||
|
mods/tab_device = 设备
|
||||||
|
mods/tab_network = 网络
|
||||||
|
mods/network_refresh = 刷新
|
||||||
|
mods/network_loading = 正在加载目录...
|
||||||
|
mods/network_ready = 目录已加载
|
||||||
|
mods/network_empty = 目录中没有模组
|
||||||
|
mods/network_error = 无法加载目录
|
||||||
|
mods/network_no_urls = 没有配置目录 URL
|
||||||
|
mods/status_installed = 已安装
|
||||||
|
mods/status_update_available = 有可用更新
|
||||||
|
mods/status_not_installed = 未安装
|
||||||
|
mods/status_modified = 本地已修改
|
||||||
|
mods/catalog_export = 导出到目录
|
||||||
|
mods/catalog_title = 导出目录条目
|
||||||
|
mods/catalog_download_url = 下载 URL
|
||||||
|
mods/catalog_category = 分类
|
||||||
|
mods/category_story = 剧情
|
||||||
|
mods/category_characters = 角色
|
||||||
|
mods/category_gameplay = 玩法
|
||||||
|
mods/category_visual = 视觉
|
||||||
|
mods/category_audio = 音频
|
||||||
|
mods/category_ui = 界面
|
||||||
|
mods/category_locale = 语言
|
||||||
|
mods/category_library = 库
|
||||||
|
mods/category_engine = 引擎
|
||||||
|
mods/category_overhaul = 大型改动
|
||||||
|
mods/category_tools = 工具
|
||||||
|
mods/category_editor = 编辑器
|
||||||
|
mods/category_debug = 调试
|
||||||
|
mods/category_other = 其他
|
||||||
|
mods/catalog_tags = 标签(逗号分隔)
|
||||||
|
mods/catalog_changelog = 更新日志
|
||||||
|
mods/catalog_status = 状态
|
||||||
|
mods/catalog_min_game_version = 最低游戏版本
|
||||||
|
mods/catalog_icon_url = 图标 URL
|
||||||
|
mods/catalog_copy = 复制 JSON
|
||||||
|
mods/catalog_export_file = 导出到文件
|
||||||
|
mods/catalog_close = 关闭
|
||||||
|
mods/install_button = 安装
|
||||||
|
mods/update_button = 更新
|
||||||
|
mods/overwrite_button = 覆盖
|
||||||
|
mods/downgrade_button = 降级
|
||||||
|
mods/restart_button = 需要重启
|
||||||
|
mods/installing = 正在安装...
|
||||||
|
mods/install_complete = 安装完成。需要重启。
|
||||||
|
mods/install_failed = 安装失败。详情请查看日志。
|
||||||
|
|
||||||
|
# --- Save/Load ---
|
||||||
|
ui/load/title = 读取
|
||||||
|
ui/save/title = 保存
|
||||||
|
ui/save/empty = 空
|
||||||
|
ui/save/overwrite_title = 覆盖存档
|
||||||
|
ui/save/overwrite_text = 这个栏位已有存档。要覆盖吗?
|
||||||
|
ui/save/save_button = 覆盖
|
||||||
|
ui/save/cancel_button = 取消
|
||||||
|
ui/save/game_day = 第 {day} 天,{time}
|
||||||
|
ui/save/party_size = 队伍:{count}
|
||||||
|
|
||||||
|
# --- GameMenu ---
|
||||||
|
menu/title = 菜单
|
||||||
|
menu/resume = 继续
|
||||||
|
menu/save = 保存
|
||||||
|
menu/load = 读取
|
||||||
|
menu/main_menu = 主菜单
|
||||||
|
|
||||||
|
# --- Character Panel ---
|
||||||
|
ui/character_panel/title = 角色行动
|
||||||
|
ui/character_panel/reset = 重置
|
||||||
|
ui/character_panel/close = 关闭
|
||||||
|
ui/character_panel/reset_title = 重置行动分配
|
||||||
|
ui/character_panel/reset_text = 确定要重置所有行动分配吗?角色的行动会恢复默认,收集到的行动会留在池中。
|
||||||
|
ui/character_panel/reset_ok = 重置
|
||||||
|
ui/character_panel/reset_cancel = 取消
|
||||||
|
ui/character_panel/party = 队伍
|
||||||
|
ui/character_panel/party_sub = 每个角色 3 个栏位 · 未使用的卡牌在池中等待
|
||||||
|
ui/character_panel/template = 模板:{0}
|
||||||
|
ui/character_panel/pool_title = 行动池
|
||||||
|
ui/character_panel/search = 按名称或 ID 搜索...
|
||||||
|
ui/character_panel/filter_all = 全部
|
||||||
|
ui/character_panel/type_enemy = 目标敌人
|
||||||
|
ui/character_panel/type_alias = 目标队友
|
||||||
|
ui/character_panel/type_self = 目标自己
|
||||||
|
ui/character_panel/type_passive = 被动
|
||||||
|
ui/character_panel/type_active = 主动
|
||||||
|
ui/character_panel/cost = {0} AP
|
||||||
|
ui/character_panel/cooldown = 冷却 {0}
|
||||||
|
ui/character_panel/slot = 栏位 {0}
|
||||||
|
ui/character_panel/slot_empty = + 空栏位——把卡牌拖到这里
|
||||||
|
ui/character_panel/assigned = 已分配 {0}/{1} · 池中 {2}
|
||||||
|
ui/character_panel/hint_select = 先选卡牌,再选栏位
|
||||||
|
ui/character_panel/drag_hint = 把卡牌拖进栏位 · 栏位之间可交换
|
||||||
|
ui/character_panel/pool_hint = 卡牌在池中时仍归玩家所有。允许重复。
|
||||||
|
ui/character_panel/pool_empty = 池是空的——收集到的行动会出现在这里
|
||||||
|
ui/character_panel/nothing_found = 什么都没找到
|
||||||
|
ui/character_panel/stat_hp = HP
|
||||||
|
ui/character_panel/stat_ap = AP
|
||||||
|
ui/character_panel/stat_atk = 攻击
|
||||||
|
ui/character_panel/stat_def = 防御
|
||||||
|
|
||||||
|
# --- Inventory ---
|
||||||
|
ui/inventory/title = 背包
|
||||||
|
ui/inventory/use = 使用
|
||||||
|
ui/inventory/drop = 丢弃
|
||||||
|
ui/inventory/drop_all = 全部
|
||||||
|
ui/inventory/drop_confirm = 丢弃
|
||||||
|
ui/inventory/drop_quantity = 丢弃
|
||||||
|
ui/inventory/close = 关闭
|
||||||
|
ui/inventory/no_ap = AP 不足
|
||||||
|
ui/inventory/select_target = 选择目标
|
||||||
|
ui/inventory/cancel = 取消
|
||||||
|
ui/inventory/tab_all = 全部
|
||||||
|
ui/inventory/tab_food = 食物
|
||||||
|
ui/inventory/tab_resource = 资源
|
||||||
|
ui/inventory/tab_recipe = 配方
|
||||||
|
ui/inventory/tab_quest = 任务
|
||||||
|
ui/inventory/search = 搜索背包...
|
||||||
|
ui/inventory/sort_type = 按类型
|
||||||
|
ui/inventory/sort_name = 按名称
|
||||||
|
ui/inventory/sort_cost = 按价格
|
||||||
|
ui/inventory/sort_count = 按数量
|
||||||
|
ui/inventory/shown = 显示 {1} 个中的 {0} 个
|
||||||
|
ui/inventory/hint_select = 左键——选择 · 行动在详情中
|
||||||
|
ui/inventory/stack = 堆叠
|
||||||
|
ui/inventory/id = ID
|
||||||
|
ui/inventory/action = 动作
|
||||||
|
ui/inventory/verb = 动词
|
||||||
|
ui/inventory/props_header = 属性 · PropertyData
|
||||||
|
ui/inventory/props_none = 没有属性
|
||||||
|
ui/inventory/no_action = 没有 ItemAction——物品暂时无法使用
|
||||||
|
ui/inventory/cost = 价格
|
||||||
|
ui/inventory/empty = 背包是空的
|
||||||
|
ui/inventory/select = 在列表中选择一个物品
|
||||||
|
ui/inventory/ap = AP
|
||||||
|
ui/inventory/ap_cost = −1 AP
|
||||||
|
ui/inventory/used = 已使用:{0}
|
||||||
|
ui/inventory/used_recipe = 学会了配方:{0}
|
||||||
|
ui/inventory/use_failed = UseAction → false:物品未被消耗
|
||||||
|
ui/inventory/dropped = 已丢弃:{0} ×{1}
|
||||||
|
ui/inventory/applied = 已作用:{0} → {1}
|
||||||
|
ui/inventory/applied_failed = 目标没有接受效果——物品未被消耗
|
||||||
|
ui/inventory/drop_cant = 无法丢弃(CantDrop)
|
||||||
|
ui/inventory/type_quest = 任务
|
||||||
|
ui/inventory/type_used = 可使用
|
||||||
|
ui/inventory/type_target = 需要目标
|
||||||
|
ui/inventory/type_food = 食物
|
||||||
|
ui/inventory/type_resource = 资源
|
||||||
|
ui/inventory/type_recipe = 配方
|
||||||
|
ui/inventory/type_cant_drop = 不可丢弃
|
||||||
|
ui/inventory/verb_use = 使用
|
||||||
|
ui/inventory/verb_eat = 吃
|
||||||
|
ui/inventory/verb_target = 对目标使用
|
||||||
|
ui/inventory/verb_recipe = 学习配方
|
||||||
|
ui/inventory/tag_recipe = 配方
|
||||||
|
ui/inventory/tag_target = 目标
|
||||||
|
ui/inventory/tag_food = 饮品
|
||||||
|
ui/inventory/tag_use = 使用
|
||||||
|
|
||||||
|
# --- Map ---
|
||||||
|
ui/map/title = 地图
|
||||||
|
ui/map/close = 关闭
|
||||||
|
ui/map/subtitle = 北区
|
||||||
|
ui/map/zone_count = {0} 个地点
|
||||||
|
ui/map/legend_current = 你在这里
|
||||||
|
ui/map/legend_available = 可前往
|
||||||
|
ui/map/legend_locked = 已关闭
|
||||||
|
ui/map/hint = 左键点击标记——选择地点 · Esc——关闭地图
|
||||||
|
ui/map/current = 你在这里
|
||||||
|
ui/map/available = 可前往
|
||||||
|
ui/map/locked = 已关闭
|
||||||
|
ui/map/you_are_here = 你在这里
|
||||||
|
ui/map/closed_note = 已关闭
|
||||||
|
ui/map/go = 前往
|
||||||
|
ui/map/here = 你在这里
|
||||||
|
ui/map/transition = 切换
|
||||||
|
ui/map/card_hint = 下方的按钮会切换场景。Esc——关闭地图。
|
||||||
|
ui/map/locked_message = 道路尚未开放。
|
||||||
|
ui/map/empty = 地图不可用
|
||||||
|
ui/map/empty_hint = 找不到背景 map.png——请在模组中加入该背景和 map/*.json 区域文件。
|
||||||
|
|
||||||
|
# --- Skills ---
|
||||||
|
ui/skills/title = 技能
|
||||||
|
ui/skills/grants_action = 授予一张行动卡
|
||||||
|
ui/skills/side_title = 研究卡牌
|
||||||
|
ui/skills/collection = 收藏
|
||||||
|
ui/skills/search = 搜索收藏…
|
||||||
|
ui/skills/sort_rarity = 按稀有度
|
||||||
|
ui/skills/sort_type = 按类型
|
||||||
|
ui/skills/sort_name = 按名称
|
||||||
|
ui/skills/filter_all = 全部
|
||||||
|
ui/skills/filter_rarities = 全部稀有度
|
||||||
|
ui/skills/hint = 左键——研究卡牌 · 边框和光芒随稀有度变化
|
||||||
|
ui/skills/reset = 重置筛选
|
||||||
|
ui/skills/empty = 还没有技能
|
||||||
|
ui/skills/nothing_found = 什么都没找到
|
||||||
|
ui/skills/no_effects = 还没有永久效果
|
||||||
|
ui/skills/collection_effect = 收藏效果
|
||||||
|
ui/skills/collection_effect_hint = 整个收藏的总和 · 即时更新
|
||||||
|
ui/skills/rarity/common = 普通
|
||||||
|
ui/skills/rarity/uncommon = 优秀
|
||||||
|
ui/skills/rarity/rare = 稀有
|
||||||
|
ui/skills/rarity/epic = 史诗
|
||||||
|
ui/skills/rarity/legendary = 传说
|
||||||
|
ui/skills/type/active = 主动
|
||||||
|
ui/skills/type/passive = 被动
|
||||||
|
ui/skills/type/for_character = 用于角色
|
||||||
|
|
||||||
|
# --- Quest Journal ---
|
||||||
|
ui/journal/title = 日志
|
||||||
|
ui/journal/active = 进行中
|
||||||
|
ui/journal/completed = 已完成
|
||||||
|
ui/journal/close = 关闭
|
||||||
|
ui/journal/empty = 没有任务
|
||||||
|
ui/journal/toc = 目录
|
||||||
|
ui/journal/entry_header = 条目
|
||||||
|
ui/journal/entry_of = 第 {0} 条,共 {1} 条
|
||||||
|
ui/journal/finished = 已完成
|
||||||
|
ui/journal/seals = 印记
|
||||||
|
ui/journal/no_entries = 这个条目的页面还是空的。随着故事推进,墨迹会出现。
|
||||||
|
|
||||||
|
tools/unsaved_title = 未保存的更改
|
||||||
|
tools/unsaved_text = 你有未保存的更改。不保存就关闭吗?
|
||||||
|
tools/unsaved_discard_text = 有未保存的更改。要放弃吗?
|
||||||
|
tools/window_maximize = 最大化 / 还原(双击标题)
|
||||||
|
tools/window_close = 关闭
|
||||||
|
tools/menu_title = 工具
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = Lớp giao diện mà mọi game dùng chung: thanh công cụ, menu trong game, biểu tượng lưu, thông báo và diện mạo thống nhất của bảng điều khiển, nút bấm, danh sách.
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
mod_ui_base_name = UI
|
||||||
|
mod_ui_base_desc = 所有游戏共用的界面层:工具栏、游戏内菜单、存档指示器、通知,以及面板、按钮和列表的统一外观。
|
||||||
+1
-1
@@ -3,7 +3,7 @@
|
|||||||
"name": "UI",
|
"name": "UI",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"author": "ct",
|
"author": "ct",
|
||||||
"description": "Engine UI subsystem: widget toolkit (Widget/ModWidget/lists), ViewBox background viewport, ToolBox toolbar, GameMenu/SaveIcon, notification panels, UiKit design system, DeviceInput. Kernel keeps only contracts (IWidget, IDialogBox, IToolbarHost, ISaveIconHost, IBackgroundView, IUiLazyConstruct, MenuRegistry, ToolFactory, NotificationBuffer, SceneEventController, CthangoverTheme/UiTokens boot styling) and drives this mod through those seams.",
|
"description": "The interface layer every game shares: the toolbar, the in-game menu, the save indicator, notifications and the common look of panels, buttons and lists.",
|
||||||
"category": "ui",
|
"category": "ui",
|
||||||
"depends": [],
|
"depends": [],
|
||||||
"sources": [
|
"sources": [
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ namespace Cthangover.Mods.Interface.Menu
|
|||||||
private ISettingsPanel _settingsPanel;
|
private ISettingsPanel _settingsPanel;
|
||||||
private ISaveLoadPanel _saveLoadPanel;
|
private ISaveLoadPanel _saveLoadPanel;
|
||||||
private Button _saveBtn;
|
private Button _saveBtn;
|
||||||
|
private Label _title;
|
||||||
private readonly Dictionary<Button, string> _btnKeys = new();
|
private readonly Dictionary<Button, string> _btnKeys = new();
|
||||||
|
|
||||||
/// <summary>Wires menu buttons, instantiates the hidden settings and save/load panels from the <see cref="MenuRegistry"/>, and subscribes to language changes.</summary>
|
/// <summary>Wires menu buttons, instantiates the hidden settings and save/load panels from the <see cref="MenuRegistry"/>, and subscribes to language changes.</summary>
|
||||||
@@ -42,6 +43,7 @@ namespace Cthangover.Mods.Interface.Menu
|
|||||||
_btnKeys[GetNode<Button>("Panel/Margin/VBox/SettingsBtn")] = "menu/settings";
|
_btnKeys[GetNode<Button>("Panel/Margin/VBox/SettingsBtn")] = "menu/settings";
|
||||||
_btnKeys[GetNode<Button>("Panel/Margin/VBox/MainMenuBtn")] = "menu/main_menu";
|
_btnKeys[GetNode<Button>("Panel/Margin/VBox/MainMenuBtn")] = "menu/main_menu";
|
||||||
_btnKeys[GetNode<Button>("Panel/Margin/VBox/ExitBtn")] = "menu/exit";
|
_btnKeys[GetNode<Button>("Panel/Margin/VBox/ExitBtn")] = "menu/exit";
|
||||||
|
_title = GetNode<Label>("Panel/Margin/VBox/Title");
|
||||||
|
|
||||||
AttachPanel(MenuRegistry.OpenPanel("settings"));
|
AttachPanel(MenuRegistry.OpenPanel("settings"));
|
||||||
AttachPanel(MenuRegistry.OpenPanel("save_load"));
|
AttachPanel(MenuRegistry.OpenPanel("save_load"));
|
||||||
@@ -92,6 +94,7 @@ namespace Cthangover.Mods.Interface.Menu
|
|||||||
{
|
{
|
||||||
foreach (var kv in _btnKeys)
|
foreach (var kv in _btnKeys)
|
||||||
kv.Key.Text = TranslationServer.Translate(kv.Value);
|
kv.Key.Text = TranslationServer.Translate(kv.Value);
|
||||||
|
_title.Text = TranslationServer.Translate("menu/title");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnReturnClick()
|
private void OnReturnClick()
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
using Cthangover.Core.UI.Theming;
|
||||||
|
using Godot;
|
||||||
|
|
||||||
|
namespace Cthangover.Mods.Interface.Theming
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Shared source palettes for editable fields and read-only previews.
|
||||||
|
/// Each call returns a new highlighter: Godot binds it to one TextEdit and
|
||||||
|
/// keeps a per-document cache, so sharing a resource between editors would
|
||||||
|
/// mix their text. Scenario commands are supplied by the caller to keep
|
||||||
|
/// the UI toolkit independent of the dialog engine.
|
||||||
|
/// </summary>
|
||||||
|
public static class SourceSyntax
|
||||||
|
{
|
||||||
|
/// <summary>Colours JSON strings, numbers, punctuation and literal values, including unfinished input.</summary>
|
||||||
|
public static CodeHighlighter CreateJsonHighlighter()
|
||||||
|
{
|
||||||
|
var highlighter = CreateBase();
|
||||||
|
highlighter.AddColorRegion("\"", "\"", UiTokens.AccentBright);
|
||||||
|
return highlighter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Colours Godot text scene/resource sections, strings, constructors, numbers and comments.</summary>
|
||||||
|
public static CodeHighlighter CreateTscnHighlighter()
|
||||||
|
{
|
||||||
|
var highlighter = CreateBase();
|
||||||
|
highlighter.FunctionColor = UiTokens.TypeTarget;
|
||||||
|
highlighter.AddColorRegion("\"", "\"", UiTokens.AccentBright);
|
||||||
|
highlighter.AddColorRegion(";", "", UiTokens.Faint, true);
|
||||||
|
foreach (var section in new[] { "gd_scene", "gd_resource", "ext_resource", "sub_resource", "resource", "node", "connection", "editable" })
|
||||||
|
highlighter.AddKeywordColor(section, UiTokens.TypeTarget);
|
||||||
|
return highlighter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Colours scenario commands, named arguments, quoted dialogue, labels and comments.</summary>
|
||||||
|
public static CodeHighlighter CreateScenarioHighlighter(IEnumerable<string> commands)
|
||||||
|
{
|
||||||
|
var highlighter = CreateBase();
|
||||||
|
if (commands != null)
|
||||||
|
{
|
||||||
|
foreach (var command in commands)
|
||||||
|
highlighter.AddKeywordColor(command, UiTokens.Info);
|
||||||
|
}
|
||||||
|
highlighter.AddKeywordColor("select", UiTokens.Info);
|
||||||
|
highlighter.AddKeywordColor("option", UiTokens.Info);
|
||||||
|
foreach (var argument in new[] {
|
||||||
|
"key", "first", "second", "hide_color", "wait", "speed", "hidden",
|
||||||
|
"sprites", "loop", "target", "quest_id", "show", "hide", "duration"
|
||||||
|
})
|
||||||
|
highlighter.AddKeywordColor(argument, UiTokens.Accent);
|
||||||
|
highlighter.AddColorRegion("\"", "\"", UiTokens.AccentBright);
|
||||||
|
highlighter.AddColorRegion("#", "", UiTokens.Faint, true);
|
||||||
|
highlighter.AddColorRegion(":", " ", UiTokens.TypeTarget, true);
|
||||||
|
return highlighter;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static CodeHighlighter CreateBase()
|
||||||
|
{
|
||||||
|
var highlighter = new CodeHighlighter
|
||||||
|
{
|
||||||
|
NumberColor = UiTokens.Info,
|
||||||
|
SymbolColor = UiTokens.Muted,
|
||||||
|
FunctionColor = UiTokens.Body,
|
||||||
|
MemberVariableColor = UiTokens.Body,
|
||||||
|
};
|
||||||
|
foreach (var literal in new[] { "true", "false", "null" })
|
||||||
|
highlighter.AddKeywordColor(literal, UiTokens.TypeTarget);
|
||||||
|
return highlighter;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+18
-3
@@ -99,15 +99,30 @@ namespace Cthangover.Mods.Interface.View
|
|||||||
{
|
{
|
||||||
var result = layerName?.ToLowerInvariant() switch
|
var result = layerName?.ToLowerInvariant() switch
|
||||||
{
|
{
|
||||||
"background" => InteractiveLayerBackground ??= CreateLayerDirect("InteractiveLayer_Background", 1),
|
"background" => InteractiveLayerBackground ??= CreateSceneLayer("InteractiveLayer_Background"),
|
||||||
"foreground" => InteractiveLayerForeground ??= CreateLayerDirect("InteractiveLayer_Foreground", 3),
|
"foreground" => InteractiveLayerForeground ??= CreateSceneLayer("InteractiveLayer_Foreground"),
|
||||||
"ui" => InteractiveLayerUI ??= CreateLayerDirect("InteractiveLayer_UI", 5),
|
"ui" => InteractiveLayerUI ??= CreateLayerDirect("InteractiveLayer_UI", 5),
|
||||||
_ => InteractiveLayerForeground ??= CreateLayerDirect("InteractiveLayer_Foreground", 3)
|
_ => InteractiveLayerForeground ??= CreateSceneLayer("InteractiveLayer_Foreground")
|
||||||
};
|
};
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates a layer that belongs to the picture itself. It keeps the default
|
||||||
|
/// z index and is ordered by its place among the ViewBox children instead: a
|
||||||
|
/// z index is global to the canvas, so it lifted scene objects over the dialog
|
||||||
|
/// box, the toolbar and the open panels that follow the ViewBox in the tree.
|
||||||
|
/// The background layer stays below the foreground one whichever comes first.
|
||||||
|
/// </summary>
|
||||||
|
private Control CreateSceneLayer(string name)
|
||||||
|
{
|
||||||
|
var layer = CreateLayerDirect(name, 0);
|
||||||
|
if (InteractiveLayerForeground != null)
|
||||||
|
MoveChild(layer, InteractiveLayerForeground.GetIndex());
|
||||||
|
return layer;
|
||||||
|
}
|
||||||
|
|
||||||
private Control CreateLayerDirect(string name, int zIndex)
|
private Control CreateLayerDirect(string name, int zIndex)
|
||||||
{
|
{
|
||||||
var layer = new Control
|
var layer = new Control
|
||||||
|
|||||||
Reference in new issue
Block a user