diff --git a/app/data/i18n/Brazilian Portuguese.json b/app/data/i18n/Brazilian Portuguese.json index 78ff748a6..7983b4ebe 100644 --- a/app/data/i18n/Brazilian Portuguese.json +++ b/app/data/i18n/Brazilian Portuguese.json @@ -22,6 +22,8 @@ "exitconfirm": "Você tem certeza que deseja sair?
Todas as alterações que não foram salvas serão perdidas!", "fastimport": "Importação Rápida", "language": "Língua", + "filter": "Filtro:", + "loading": "Carregando…", "name": "Nome:", "nametaken": "Este nome já está em uso", "newname": "Novo nome:", @@ -42,12 +44,14 @@ "tilelayer": "Camada de tile", "wrongFormat": "Formato de arquivo incorreto", "yes": "Sim", - "cannotBeEmpty": "", - "contribute": "", - "translateToYourLanguage": "", + "cannotBeEmpty": "Isso não pode ser vazio", + "contribute": "Contribua", "zoom": "Zoom:", "zoomIn": "Ampliar", - "zoomOut": "Diminuir o zoom" + "zoomOut": "Diminuir o zoom", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "Novo", @@ -119,53 +123,13 @@ "latest": "Últimos projetos", "unableToWriteToFolders": "Ct.js não conseguiu achar um lugar apropriado para seus projetos! Tenha certeza de colocar o ct.js dentro de uma pasta que você tenha permissão para escrever.", "twitter": "Página do Twitter", - "discord": "Comunidade do Discord" + "discord": "Comunidade do Discord", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Licença do Ct.js (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Exportar para a área de trabalho", - "texture": "Gráficos", - "launch": "Compilar", - "license": "Licença", - "min": "Modo janela", - "recentProjects": "Projetos recentes", - "rooms": "Salas", - "save": "Salvar projeto", - "startScreen": "Retornar à tela inicial", - "settings": "Configurações", - "sounds": "Sons", - "ui": "UI", - "theme": "Tema", - "themeDay": "Claro", - "themeNight": "Escuro", - "types": "Tipos", - "zipExport": "Exportar para .zip", - "zipProject": "Empacotar projeto para .zip", - "codeFontDefault": "Padrão (Iosevka Light)", - "codeFontOldSchool": "Old school", - "codeFontSystem": "Sistema", - "codeFontCustom": "Personalizada…", - "newFont": "Nova fonte:", - "codeFont": "Fonte para código", - "codeLigatures": "Ligatures", - "codeDense": "Layout Denso", - "disableSounds": "Desabilitar sons de UI", - "openIncludeFolder": "Abra a pasta \"include\"", - "troubleshooting": "Solução de problemas", - "toggleDevTools": "Mostrar/Esconder Ferramentas de Dev.", - "copySystemInfo": "Copiar as informações de sistema", - "systemInfoWait": "Espere um pouco, Eu estou pegando os dados…", - "systemInfoDone": "Feito!", - "disableAcceleration": "Desabilitar a aceleração gráfica (precisa reiniciar)", - "disableBuiltInDebugger": "Desabilitar built-in debugger", - "visitDiscordForGamedevSupport": "Entre no server do Discord para ter suporte no desenvolvimento de jogos", - "postAnIssue": "Postar um erro no Github…", - "openProject": "Abrir um projeto…", - "openExample": "Abrir um projeto de exemplo…" - }, "onboarding": { "hoorayHeader": "Wow! Você acabou de criar um projeto!", "nowWhatParagraph": "Agora, o que precisamos fazer?", @@ -221,7 +185,8 @@ "maximized": "Maximizado", "fullscreen": "Tela cheia", "windowed": "Janela" - } + }, + "hideCursor": "" }, "scripts": { "heading": "Scripts", @@ -231,7 +196,19 @@ "moveUp": "Mova-se para cima", "moveDown": "Mova-se para baixo" }, - "catmodsSettings": "Configurações de Catmods" + "catmodsSettings": "Configurações de Catmods", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } + } }, "modules": { "author": "Autor deste catmod", @@ -260,13 +237,18 @@ "integrations": "Integrações", "tweaks": "Ajustes", "networking": "Networking" - } + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Criar", "import": "Importar", "skeletons": "Animação Esquelética", - "createType": "Criar um tipo disso" + "createType": "Criar um tipo disso", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Mudar cor de fundo", @@ -303,7 +285,9 @@ "movePoint": "Mover este ponto", "symmetryTool": "Ferramenta de simetria", "padding": "Preenchimento:", - "paddingNotice": "Isso afeta como uma textura é exportada: adiciona pixels duplicados nas bordas e evita artefatos sangrentos em texturas ladrilhadas e dimensionadas. O valor padrão geralmente é suficiente, mas, se você encolher as texturas fortemente, o sangramento pode reaparecer. Aumente este valor se esta textura tiver artefatos durante o jogo." + "paddingNotice": "Isso afeta como uma textura é exportada: adiciona pixels duplicados nas bordas e evita artefatos sangrentos em texturas ladrilhadas e dimensionadas. O valor padrão geralmente é suficiente, mas, se você encolher as texturas fortemente, o sangramento pode reaparecer. Aumente este valor se esta textura tiver artefatos durante o jogo.", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Criar" @@ -390,7 +374,8 @@ "draw": "Desenhar", "name": "Nome:", "step": "Passo", - "learnAboutTypes": "" + "learnAboutTypes": "Aprenda sobre programar tipos", + "visible": "" }, "rooms": { "create": "Adicionar novo", @@ -403,7 +388,10 @@ "parallax": "Parallax (X, Y):", "repeat": "Repetir:", "scale": "Escala (X, Y):", - "shift": "Trocar (X, Y):" + "shift": "Trocar (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Mover para uma nova profundidade:", @@ -446,7 +434,16 @@ "deletetiles": "Remover tiles", "movetilestolayer": "Mover para camada", "shifttiles": "Trocar tiles", - "findTileset": "" + "findTileset": "Encontrar o conjunto de tiles", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Bloco de notas do projeto", @@ -457,14 +454,11 @@ "particleEmitters": { "emittersHeading": "Emissores de partículas", "emitterHeading": "Emissor", - "from": "De:", "to": "Para:", - "textureHeading": "Textura", "selectTexture": "Selecionar…", "importBuiltin": "Importar padrão…", - "colorAndOpacityHeading": "Cor e opacidade", "stepped": "Escalonado", "steppedColor": "Cor escalonada", @@ -474,29 +468,23 @@ "darken": "Escuro", "lighten": "Claro", "burn": "Quente", - "scalingHeading": "Dimensionamento", "scale": "Dimensão:", "minimumSize": "Tamanho mínimo:", "minimumSizeHint": "Configurá-lo para valores mais baixos irá randomizar o tamanho de cada partícula. Quanto mais baixos os valores, mais forte é o efeito.", - "velocityHeading": "Velocidade", "velocity": "Velocidade:", "minimumSpeed": "Velocidade mínima:", "minimumSpeedHint": "Configurá-lo para valores mais baixos irá randomizar a velocidade de cada partícula; quanto menor o valor, mais lenta a partícula pode ser.", "maxSpeed": "Velocidade máxima:", - "gravityHeading": "Gravidade", "gravityNotice": "Observe que se for diferente de (0;0), a interpolação de velocidade será desabilitada, o que significa que apenas o primeiro nó do gráfico de velocidade terá o efeito.", - "directionHeading": "Direção", "startingDirection": "Direção inicial", "preserveTextureDirection": "Preserve texture rotation", - "rotationHeading": "Rotação", "rotationSpeed": "Velocidade de rotação", "rotationAcceleration": "Aceleração de rotação:", - "spawningHeading": "Invocando", "timeBetweenBursts": "Tempo entre rajadas:", "spawnAtOnce": "Invocar uma vez:", @@ -506,7 +494,6 @@ "emitterLifetime": "Tempo de vida do emissor, seg.:", "prewarmDelay": "Pré-aquecido / delay, sec.:", "prewarmDelayNotice": "Valores negativos irão preparar as partículas do emissor antes de mostrá-lo, o que é útil para efeitos longos, como partículas de poeira ou névoa que já deveriam estar visíveis no início da sala; valores positivos atrasarão a simulação.", - "shapeAndPositioningHeading": "Forma e posicionamento", "spawnType": "Tipo da forma:", "spawnShapes": { @@ -523,7 +510,6 @@ "startAngle": "Rotacionar, deg.:", "showShapeVisualizer": "Mostrar o visualizador de forma", "relativeEmitterPosition": "Posição relativa para outros emissores", - "addEmitter": "Adicionar outro emissor", "reset": "Resetar prévia", "changeBg": "Mudar o fundo", @@ -533,9 +519,6 @@ "newGridSize": "Novo tamanho da grid:", "setPreviewTexture": "Definir textura de prévia" }, - "types": { - "create": "Criar" - }, "patreon": { "aboutPatrons": "Patrons são pessoas que mostram seu apoio à ComigoGames no Patreon, na forma de doações recorrentes. Nem todo mundo vem de ct.js; alguns estão usando outros aplicativos da ComigoGames. Dica: se você é um criador e doa para ComigoGames via Patreon, você receberá um link para sua página aqui - essa é minha pequena ajuda para suas criações :)", "patronsHeader": "Nossos patrões", @@ -572,7 +555,114 @@ "é elegante e bonito 🎩" ] }, - "docsShortcut": { - "openDocs": "" + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "Mostrar/Esconder Ferramentas de Dev.", + "copySystemInfo": "Copiar as informações de sistema", + "systemInfoWait": "Espere um pouco, Eu estou pegando os dados…", + "systemInfoDone": "Feito!", + "disableAcceleration": "Desabilitar a aceleração gráfica (precisa reiniciar)", + "disableBuiltInDebugger": "Desabilitar built-in debugger", + "postAnIssue": "Postar um erro no Github…", + "heading": "Solução de problemas" + }, + "deploy": { + "exportDesktop": "Exportar para a área de trabalho", + "successZipExport": "Exportado com sucesso para {0}.", + "zipExport": "Exportar para .zip" + }, + "latestProjects": { + "recentProjects": "Projetos recentes" + }, + "settings": { + "theme": "Tema", + "themes": { + "Day": "Claro", + "Night": "Escuro", + "SpringStream": "Spring Stream", + "LucasDracula": "Lucas Dracula", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "Padrão (Iosevka Light)", + "codeFontOldSchool": "Old school", + "codeFontSystem": "Sistema", + "codeFontCustom": "Personalizada…", + "newFont": "Nova fonte:", + "codeFont": "Fonte para código", + "codeLigatures": "Ligatures", + "codeDense": "Layout Denso", + "heading": "Configurações", + "language": "Língua", + "translateToYourLanguage": "Traduza o ct.js!", + "disableSounds": "Desabilitar sons de UI", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Salvar projeto", + "openIncludeFolder": "Abra a pasta \"include\"", + "openProject": "Abrir um projeto…", + "openExample": "Abrir um projeto de exemplo…", + "startScreen": "Retornar à tela inicial", + "successZipProject": "Projeto zipado com sucesso para {0}.", + "zipProject": "Empacotar projeto para .zip" + }, + "meta": { + "license": "Licença", + "visitDiscordForGamedevSupport": "Entre no server do Discord para ter suporte no desenvolvimento de jogos", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Gráficos", + "launch": "Compilar", + "launchHotkeys": "(F5; Alt+F5 para rodar no seu navegador padrão)", + "min": "Modo janela", + "patrons": "Patrões", + "restart": "Reiniciar", + "rooms": "Salas", + "project": "Projeto", + "sounds": "Sons", + "ui": "UI", + "fx": "FX", + "types": "Tipos" } } diff --git a/app/data/i18n/Chinese Simplified.json b/app/data/i18n/Chinese Simplified.json index 237e51894..8844e811d 100644 --- a/app/data/i18n/Chinese Simplified.json +++ b/app/data/i18n/Chinese Simplified.json @@ -23,8 +23,6 @@ "exit": "退出", "exitconfirm": "确定要退出吗?
所有未保存的更改都将丢失!", "fastimport": "快速导入", - "language": "语言", - "translateToYourLanguage": "将ct.js翻译成您的语言", "name": "名称", "nametaken": "这个名称已经被使用了", "newname": "新名称", @@ -50,13 +48,13 @@ "yes": "是", "loading": "加载中...", "zoom": "缩放:", - "zoomIn": "放大", - "zoomOut": "缩小", - "clear": "清空", - "close": "关闭", - "couldNotLoadFromClipboard": "无法从剪贴板加载数据", - "filter": "过滤:", - "pastedFromClipboard": "从剪贴板粘贴" + "zoomIn": "放大缩小字体功能 放大缩小字体功能", + "zoomOut": "放大缩小字体功能 放大缩小字体功能", + "clear": "", + "filter": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "新建", @@ -95,8 +93,8 @@ "exportPanel": "导出项目", "firstrunnotice": "每个平台的第一次运行会比较慢, 因为ct.js会下载并保存打包所需的额外库. 这需要一些时间, 但下一次几乎是瞬间的.", "log": "消息日志", - "windowsCrossBuildWarning": "要从Linux/MacOS为Windows构建, 需要在系统中安装Wine. 安装说明对于不同的平台都是不一样的,所以你最好自己搜索一下:)", - "cannotBuildForMacOnWin": "糟糕, Windows只会生成坏掉的Mac包. 尝试使用Linux机器;例如, 在虚拟机里, 它是100%免费的!" + "windowsCrossBuildWarning": "", + "cannotBuildForMacOnWin": "" }, "intro": { "loading": "请稍等: 小猫正在聚集光速!", @@ -126,77 +124,11 @@ "unableToWriteToFolders": "Ct.js找不到合适的项目位置! 确保将ct.js应用存储在您有权写入的文件夹中.", "twitter": "Twitter 频道", "discord": "Discord 社区", - "createOrBrowseJunction": "或" + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Ct.js 许可证 (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "导出到桌面", - "texture": "纹理", - "launch": "编译并运行", - "launchHotkeys": "(F5; Alt+F5 在默认浏览器中运行)", - "license": "许可证", - "min": "窗口化", - "patrons": "赞助人", - "recentProjects": "最近的项目", - "restart": "重新启动", - "rooms": "房间", - "save": "保存项目", - "startScreen": "返回启动画面", - "project": "项目", - "settings": "设置", - "sounds": "声音", - "successZipExport": "已成功导出到{0}.", - "successZipProject": "已成功将项目压缩到{0}.", - "ui": "用户界面", - "fx": "特效", - "theme": "主题", - "themeDay": "亮色", - "themeNight": "暗色", - "themeHorizon": "地平线", - "themeHCBlack": "高对比度黑", - "themeSpringStream": "春涧流泉", - "themeLucasDracula": "卢卡斯德古拉", - "types": "类型", - "zipExport": "导出为web", - "zipProject": "将项目打包到.zip", - "codeFontDefault": "默认 (Iosevka Light)", - "codeFontOldSchool": "老派", - "codeFontSystem": "系统", - "codeFontCustom": "自定义...", - "newFont": "新字体:", - "codeFont": "代码字体", - "codeLigatures": "连字", - "codeDense": "密集布局", - "disableSounds": "关闭 UI 音效", - "changeDataFolder": "设置数据文件夹位置", - "openIncludeFolder": "打开\"include\"文件夹", - "troubleshooting": "问题排查与修复", - "toggleDevTools": "打开 Dev Tools", - "copySystemInfo": "复制系统信息", - "disableBuiltInDebugger": "关闭内置 debugger", - "forceProductionForDebug": "强制生产任务用于调试导出", - "visitDiscordForGamedevSupport": "加入 Discord 服务器以获得游戏开发支持", - "postAnIssue": "在Github上提交issue…", - "openProject": "打开项目…", - "openExample": "打开示例项目…", - "themePooxelGreen": "Pooxel绿", - "themePooxelBlue": "Pooxel蓝", - "systemInfoWait": "等一下, 我正在收集数据…", - "systemInfoDone": "完成!", - "disableAcceleration": "禁用图形加速(需要重启)" - }, - "onboarding": { - "hoorayHeader": "赞! 您成功创建了一个项目!", - "nowWhatParagraph": "接下来, 我们应该做什么?", - "openSpaceShooterTutorial": "学习如何制作 space shooter", - "openPlatformerTutorial": "学习如何制作 platformer", - "openJettyCatTutorial": "学习如何制作 Jetty Cat", - "doNothing": "跳过这个窗口开始制作伟大的游戏!", - "showOnboardingCheckbox": "在创建新项目时显示此窗口" - }, "settings": { "actions": { "heading": "动作和输入方法", @@ -236,15 +168,14 @@ "highDensity": "支持高像素密度(例如在视网膜屏幕上)", "maxFPS": "最大帧率:", "pixelatedrender": "在此处和导出的项目中禁用图像平滑 (保留清晰像素)", - "hideCursor": "隐藏系统光标指针", - "usePixiLegacy": "添加基于画布的旧版渲染器以支持较旧的浏览器和图形卡 (在您的游戏中最多增加20kb)", - "desktopBuilds": "桌面构建", - "launchMode": "启动模式:", + "desktopBuilds": "", + "launchMode": "", "launchModes": { - "maximized": "最大化", - "fullscreen": "全屏", - "windowed": "窗口" - } + "maximized": "", + "fullscreen": "", + "windowed": "" + }, + "hideCursor": "" }, "scripts": { "heading": "脚本", @@ -254,19 +185,19 @@ "moveUp": "向上移动", "moveDown": "向下移动" }, + "catmodsSettings": "", "export": { - "heading": "导出设置", - "functionWrap": "将所有代码封装在一个函数中。(使得调试更加困难,但是将游戏代码与外部环境隔离开来。在开发游戏时请勿开启.)", - "codeModifier": "代码转化", - "obfuscateWarning": "此选项将使您的代码运行速度慢15-80%,但将使您的代码极难恢复到原来的状态.", - "codeModifierAndWrapNote": "注意,这些设置只适用于导出的项目(导出为web和导出为桌面命令),因为它们显著地降低了打包速度并使调试更加困难。但是,您可以在“故障排除”主菜单中强制执行它们,强制执行用于调试导出的生产任务.", + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", "codeModifiers": { - "none": "无", - "minify": "最小化压缩", - "obfuscate": "模糊混淆" + "none": "", + "minify": "", + "obfuscate": "" } - }, - "catmodsSettings": "Cat模组设置" + } }, "modules": { "author": "这个cat模组的作者", @@ -281,34 +212,34 @@ "logs2": "变更日志", "settings": "设置", "importModules": "载入模组", - "enabledModules": "已启用模组", - "availableModules": "可用模组", - "filter": "过滤器", - "preview": "(预览)", - "previewTooltip": "这个模组还没有发布, 只是用于预览", - "deprecatedTooltip": "此模组已被弃用, 将在将来的版本中删除", + "enabledModules": "", + "availableModules": "", + "filter": "", "categories": { - "customization": "自定义", - "utilities": "工具", - "media": "多媒体", - "misc": "其他", - "desktop": "桌面构建", - "motionPlanning": "动作规划", - "inputs": "输入方法", - "fx": "特效", - "mobile": "移动设备", - "integrations": "集成", - "tweaks": "微调", - "networking": "网络" - } + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "创建", "import": "导入", "skeletons": "骨骼动画", - "createType": "从中创建一个类型", - "importFromClipboard": "从剪贴板导入", - "generatePlaceholder": "生成一个占位符" + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "改变背景颜色", @@ -344,10 +275,10 @@ "moveCenter": "移动轴", "movePoint": "移动这个点", "symmetryTool": "对称工具", - "updateFromClipboard": "从剪贴板更新", - "padding": "内边距:", - "paddingNotice": "这将影响纹理的导出方式:它在边缘上添加重复的像素, 并防止平铺和缩放纹理上的失真. 默认值通常是足够的, 但是, 如果你强烈地收缩纹理,流血可能会再次出现. 如果这个纹理在游戏中有工件, 就增加这个值.", - "previewAnimationNotice": "这是一个预览. 用this.animationSpeed属性改变它的真实拷贝." + "padding": "", + "paddingNotice": "", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "创建" @@ -393,7 +324,7 @@ "testtext": "测试文本 0123 +", "textWrap": "自动换行", "textWrapWidth": "最大宽度:", - "useCustomFont": "使用自定义字体…" + "useCustomFont": "" }, "fonts": { "fonts": "字体", @@ -405,90 +336,22 @@ "fontweight": "字体粗细:", "italic": "是否斜体?", "reimport": "重新导入", - "generateBitmapFont": "同时生成位图字体", - "bitmapFont": "位图字体", - "bitmapFontSize": "字体大小:", - "bitmapFontLineHeight": "字体行高:", - "resultingBitmapFontName": "资源名", - "charset": "字符集:", + "generateBitmapFont": "", + "bitmapFont": "", + "bitmapFontSize": "", + "bitmapFontLineHeight": "", + "resultingBitmapFontName": "", + "charset": "", "charsets": { - "punctuation": "数字和标点符号(你通常需要这些)", - "basicLatin": "基本拉丁文", - "latinExtended": "拉丁文扩展", - "cyrillic": "西里尔字母", - "greekCoptic": "希腊语和埃及语", - "custom": "自定义", - "allInFont": "绘制字体支持的所有内容" + "punctuation": "", + "basicLatin": "", + "latinExtended": "", + "cyrillic": "", + "greekCoptic": "", + "custom": "", + "allInFont": "" }, - "customCharsetHint": "输入所有你想包含的字母, 包括大写和小写." - }, - "particleEmitters": { - "emittersHeading": "粒子发射器", - "emitterHeading": "发射器", - "from": "开始:", - "to": "结束:", - "textureHeading": "纹理", - "selectTexture": "选择…", - "importBuiltin": "导入默认纹理…", - "colorAndOpacityHeading": "颜色和不透明度", - "stepped": "阶梯式", - "steppedColor": "阶梯色彩", - "steppedAlpha": "阶梯不透明度", - "blendMode": "混合模式:", - "regular": "普通", - "darken": "变暗", - "lighten": "变亮", - "burn": "燃烧", - "scalingHeading": "缩放", - "scale": "缩放:", - "minimumSize": "最小尺寸:", - "minimumSizeHint": "将其设置为较低的值将随机化每个粒子的大小. 值越低,效果越强.", - "velocityHeading": "速度", - "velocity": "速度:", - "minimumSpeed": "最小速度:", - "minimumSpeedHint": "将其设置为较低的值将随机化每个粒子的速度;该值越低,粒子可能越慢.", - "maxSpeed": "最大速度:", - "gravityHeading": "重力", - "gravityNotice": "注意,如果它不同于(0;0),速度插值将被禁用,这意味着只有速度图的第一个节点将有效果.", - "directionHeading": "方向", - "startingDirection": "开始方向", - "preserveTextureDirection": "保持纹理旋转方向", - "rotationHeading": "旋转", - "rotationSpeed": " 旋转速度", - "rotationAcceleration": " 旋转加速度:", - "spawningHeading": "增殖", - "timeBetweenBursts": "发射间隔时间:", - "spawnAtOnce": "同时增殖:", - "chanceToSpawn": "产生粒子的时机:", - "maxParticles": "最大粒子数:", - "lifetime": "粒子生命周期, 秒数.", - "emitterLifetime": "发射器生命周期, 秒数.:", - "prewarmDelay": "预热 / 延迟, 秒数.:", - "prewarmDelayNotice": "负值将在显示之前准备发射器的粒子,这对于像灰尘粒子或雾这样在房间开始时应该已经可见的长期效果是有用的;正值将延迟模拟.", - "shapeAndPositioningHeading": "形状和位置", - "spawnType": "形态类型:", - "spawnShapes": { - "point": "点", - "rectangle": "矩形", - "circle": "圆形", - "ring": "环形", - "star": "星形" - }, - "width": "宽度:", - "height": "高度:", - "radius": "半径:", - "starPoints": "点:", - "startAngle": "旋转, 角度.:", - "showShapeVisualizer": "显示形状可视化工具", - "relativeEmitterPosition": "相对于其他发射器的位置", - "addEmitter": "添加另一个发射器", - "reset": "重置预览", - "changeBg": "更换背景", - "inspectorComplete": "完成!", - "alreadyHasAnImportingTexture": "你已经有了一个名为 $1 的纹理。要么删除,要么重命名;尽管你必须导入与之前添加的相同的纹理 :)", - "changeGrid": "设置网格大小", - "newGridSize": "新的网格大小:", - "setPreviewTexture": "设置预览纹理" + "customCharsetHint": "" }, "types": { "create": "创建" @@ -503,7 +366,7 @@ "learnAboutTypes": "了解编码类型", "name": "名称:", "step": "同步", - "visible": "显示" + "visible": "" }, "rooms": { "create": "添加新的", @@ -517,9 +380,9 @@ "repeat": "重复:", "scale": "缩放比例 (X, Y):", "shift": "移位 (X, Y):", - "notBackgroundTextureWarning": "这个纹理没有被标记为背景. 它在导出时会有缺口.", - "fixBackground": "修复.", - "dismissWarning": "忽略." + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "移动到一个新的深度", @@ -563,16 +426,16 @@ "movetilestolayer": "移至图层", "shifttiles": "移动瓷砖", "findTileset": "查找一个图集", - "isUi": "是否为UI层?", - "backgroundColor": "背景颜色:", - "properties": "属性", - "sortHorizontally": "水平排序", - "sortVertically": "垂直排序", - "changecopyrotation": "旋转", + "changecopyrotation": "", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", "copyProperties": { - "position": "位置", - "rotation": "旋转", - "scale": "缩放" + "position": "", + "rotation": "", + "scale": "" } }, "notepad": { @@ -580,7 +443,7 @@ "global": "全局记事本", "helppages": "帮助", "backToHome": "回到文档主页", - "modulespages": "模组文档" + "modulespages": "" }, "patreon": { "aboutPatrons": "赞助人是以经常性捐赠的形式表示对Patreon的ComigoGames的支持. 并不是每个人都来自ct.js. 有些是正在使用ComigoGames的其他应用程序. 提示: 如果您是创作者, 并通过Patreon捐赠给ComigoGames, 您将在此处找到指向您页面的链接 — 这就是我对您的创作的小小帮助 :)", @@ -618,44 +481,195 @@ "优雅而美丽 🎩" ] }, + "onboarding": { + "hoorayHeader": "", + "nowWhatParagraph": "", + "openSpaceShooterTutorial": "", + "openPlatformerTutorial": "", + "openJettyCatTutorial": "", + "doNothing": "", + "showOnboardingCheckbox": "" + }, + "particleEmitters": { + "emittersHeading": "", + "emitterHeading": "", + "from": "", + "to": "", + "textureHeading": "", + "selectTexture": "", + "importBuiltin": "", + "colorAndOpacityHeading": "", + "stepped": "", + "steppedColor": "", + "steppedAlpha": "", + "blendMode": "", + "regular": "", + "darken": "", + "lighten": "", + "burn": "", + "scalingHeading": "", + "scale": "", + "minimumSize": "", + "minimumSizeHint": "", + "velocityHeading": "", + "velocity": "", + "minimumSpeed": "", + "minimumSpeedHint": "", + "maxSpeed": "", + "gravityHeading": "", + "gravityNotice": "", + "directionHeading": "", + "startingDirection": "", + "preserveTextureDirection": "", + "rotationHeading": "", + "rotationSpeed": "", + "rotationAcceleration": "", + "spawningHeading": "", + "timeBetweenBursts": "", + "spawnAtOnce": "", + "chanceToSpawn": "", + "maxParticles": "", + "lifetime": "", + "emitterLifetime": "", + "prewarmDelay": "", + "prewarmDelayNotice": "", + "shapeAndPositioningHeading": "", + "spawnType": "", + "spawnShapes": { + "point": "", + "rectangle": "", + "circle": "", + "ring": "", + "star": "" + }, + "width": "", + "height": "", + "radius": "", + "starPoints": "", + "startAngle": "", + "showShapeVisualizer": "", + "relativeEmitterPosition": "", + "addEmitter": "", + "reset": "", + "changeBg": "", + "inspectorComplete": "", + "alreadyHasAnImportingTexture": "", + "changeGrid": "", + "newGridSize": "", + "setPreviewTexture": "" + }, "docsPanel": { - "documentation": "文档", - "reference": "参考" + "documentation": "", + "reference": "" }, "extensionsEditor": { - "noEntries": "没有条目.", - "addRow": "添加一行" + "noEntries": "", + "addRow": "" }, "textureGenerator": { - "name": "纹理名称:", - "width": "宽度:", - "height": "高度:", - "color": "背景颜色:", - "label": "标签:", - "optional": "(可选)", - "createAndClose": "创建并关闭", - "createAndContinue": "创建并添加另一个", - "scalingAtX4": "缩放x4的小纹理", - "generationSuccessMessage": "成功地为你的项目添加了 $1 的纹理", - "filler": "过滤:", - "fillerNone": "无", - "fillerCross": "交叉", - "fillerLabel": "文本标签" + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" }, "textureInput": { - "jumpToTexture": "跳转到纹理", - "changeTexture": "更换纹理" + "jumpToTexture": "", + "changeTexture": "" }, "writableFolderPrompt": { - "headerSelectFolderForData": "选择文件夹保存 ct.js 数据", - "paragraphCouldNotPickDirectory": "噢, 不! Ct.js无法找到用于项目, 包构建和调试的文件夹. Ct.js通常会自动找到一个文件夹, 但这次它寻找的所有文件夹都是只读的", - "paragraphDirectoryDirections": "这个问题是可以解决的. 单击下面的按钮并选择要存储数据的文件夹. 如果您不确定, 可以在您的文档目录中创建一个\"ct.js\"的文件夹.", - "selectFolder": "选择文件夹…" + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" }, "writableFolderSelector": { - "folderDoesNotExist": "看上去这个文件夹不存在…你怎么做到的?", - "notADirectory": "这看上去不是一个目录! 你怎么做到的?", - "folderNotWritable": "您没有权限写入这个文件夹. 选择其他试试", - "complete": "文件夹已设置, 一切正常✅" + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "", + "copySystemInfo": "", + "systemInfoWait": "", + "systemInfoDone": "", + "disableAcceleration": "", + "disableBuiltInDebugger": "", + "postAnIssue": "", + "heading": "" + }, + "deploy": { + "exportDesktop": "导出到桌面", + "successZipExport": "已成功导出到{0}.", + "zipExport": "导出为web" + }, + "latestProjects": { + "recentProjects": "最近的项目" + }, + "settings": { + "theme": "主题", + "themes": { + "Day": "亮色", + "Night": "暗色", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "默认 (Iosevka Light)", + "codeFontOldSchool": "老派", + "codeFontSystem": "系统", + "codeFontCustom": "自定义...", + "newFont": "新字体:", + "codeFont": "代码字体", + "codeLigatures": "连字", + "codeDense": "密集布局", + "heading": "设置", + "language": "语言", + "translateToYourLanguage": "将ct.js翻译成您的语言", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "保存项目", + "openIncludeFolder": "打开\"include\"文件夹", + "openProject": "", + "openExample": "", + "startScreen": "返回启动画面", + "successZipProject": "已成功将项目压缩到{0}.", + "zipProject": "将项目打包到.zip" + }, + "meta": { + "license": "许可证", + "visitDiscordForGamedevSupport": "", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "纹理", + "launch": "编译并运行", + "min": "窗口化", + "rooms": "房间", + "sounds": "声音", + "ui": "用户界面", + "types": "类型", + "launchHotkeys": "(F5; Alt+F5 在默认浏览器中运行)", + "patrons": "赞助人", + "fx": "", + "restart": "", + "project": "" } } \ No newline at end of file diff --git a/app/data/i18n/Comments.json b/app/data/i18n/Comments.json index 0c90e004a..015c3567c 100644 --- a/app/data/i18n/Comments.json +++ b/app/data/i18n/Comments.json @@ -53,7 +53,10 @@ "clear": "", "filter": "A verb", "selectDialogue": "A verb", - "search": "Shown next to a search field" + "search": "Shown next to a search field", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "", @@ -101,61 +104,13 @@ "latest": "", "unableToWriteToFolders": "", "twitter": "", - "discord": "" + "discord": "", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "" }, - "menu": { - "ctIDE": "", - "exportDesktop": "", - "texture": "", - "launch": "", - "license": "", - "min": "", - "recentProjects": "", - "rooms": "", - "save": "", - "startScreen": "", - "sounds": "", - "successZipExport": "", - "successZipProject": "", - "ui": "", - "theme": "", - "themeDay": "", - "themeNight": "", - "types": "", - "zipExport": "", - "zipProject": "", - "codeFontDefault": "", - "codeFontOldSchool": "", - "codeFontSystem": "", - "codeFontCustom": "", - "newFont": "", - "codeFont": "", - "codeLigatures": "", - "codeDense": "", - "launchHotkeys": "", - "patrons": "", - "fx": "", - "openIncludeFolder": "", - "troubleshooting": "", - "toggleDevTools": "", - "copySystemInfo": "", - "systemInfoWait": "", - "systemInfoDone": "", - "disableAcceleration": "", - "disableBuiltInDebugger": "", - "visitDiscordForGamedevSupport": "", - "postAnIssue": "", - "restart": "", - "project": "", - "settings": "", - "themeSpringStream": "", - "themeLucasDracula": "", - "openProject": "", - "openExample": "" - }, "modules": { "author": "", "help": "As a documentation page that has all the methods and properties described", @@ -185,13 +140,18 @@ "integrations": "", "tweaks": "", "networking": "" - } + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "", "import": "A verb", "skeletons": "", - "createType": "" + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "", @@ -228,7 +188,9 @@ "movePoint": "", "symmetryTool": "", "padding": "", - "paddingNotice": "" + "paddingNotice": "", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "" @@ -315,7 +277,8 @@ "draw": "", "learnAboutTypes": "", "name": "", - "step": "" + "step": "", + "visible": "" }, "rooms": { "create": "", @@ -328,7 +291,10 @@ "parallax": "", "repeat": "", "scale": "", - "shift": "" + "shift": "", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "", @@ -373,7 +339,16 @@ "shifttiles": "", "findTileset": "", "changecopyrotation": "", - "properties": "" + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "", @@ -382,7 +357,6 @@ "backToHome": "", "modulespages": "" }, - "preview": {}, "curveEditor": { "curveLineHint": "", "dragPointHint": "", @@ -566,7 +540,8 @@ "maximized": "", "fullscreen": "", "windowed": "" - } + }, + "hideCursor": "" }, "scripts": { "heading": "", @@ -576,6 +551,126 @@ "moveUp": "", "newScriptComment": "" }, - "catmodsSettings": "" + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } + } + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "", + "copySystemInfo": "", + "systemInfoWait": "", + "systemInfoDone": "", + "disableAcceleration": "", + "disableBuiltInDebugger": "", + "postAnIssue": "", + "heading": "" + }, + "deploy": { + "exportDesktop": "", + "successZipExport": "", + "zipExport": "" + }, + "latestProjects": { + "recentProjects": "" + }, + "settings": { + "theme": "", + "themes": { + "Day": "", + "Night": "", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "", + "codeFontOldSchool": "", + "codeFontSystem": "", + "codeFontCustom": "", + "newFont": "", + "codeFont": "", + "codeLigatures": "", + "codeDense": "", + "settings": "", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "", + "openIncludeFolder": "", + "openProject": "", + "openExample": "", + "startScreen": "", + "successZipProject": "", + "zipProject": "" + }, + "meta": { + "license": "", + "visitDiscordForGamedevSupport": "", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "", + "texture": "", + "launch": "", + "min": "", + "rooms": "", + "sounds": "", + "ui": "", + "types": "", + "launchHotkeys": "", + "patrons": "", + "fx": "", + "restart": "", + "project": "" } } diff --git a/app/data/i18n/Debug.json b/app/data/i18n/Debug.json index e7a6c74df..e0cf6dd4b 100644 --- a/app/data/i18n/Debug.json +++ b/app/data/i18n/Debug.json @@ -53,7 +53,10 @@ "clear": "common.clear", "filter": "common.filter", "selectDialogue": "common.selectDialogue", - "search": "common.search" + "search": "common.search", + "close": "common.close", + "couldNotLoadFromClipboard": "common.couldNotLoadFromClipboard", + "pastedFromClipboard": "common.pastedFromClipboard" }, "colorPicker": { "current": "colorPicker.current", @@ -101,61 +104,13 @@ "latest": "intro.latest", "unableToWriteToFolders": "intro.unableToWriteToFolders", "twitter": "intro.twitter", - "discord": "intro.discord" + "discord": "intro.discord", + "examples": "intro.examples", + "createOrBrowseJunction": "intro.createOrBrowseJunction" }, "licensepanel": { "ctjslicense": "licensepanel.ctjslicense" }, - "menu": { - "ctIDE": "menu.ctIDE", - "exportDesktop": "menu.exportDesktop", - "texture": "menu.texture", - "launch": "menu.launch", - "license": "menu.license", - "min": "menu.min", - "recentProjects": "menu.recentProjects", - "rooms": "menu.rooms", - "save": "menu.save", - "startScreen": "menu.startScreen", - "sounds": "menu.sounds", - "successZipExport": "menu.successZipExport", - "successZipProject": "menu.successZipProject", - "ui": "menu.ui", - "theme": "menu.theme", - "themeDay": "menu.themeDay", - "themeNight": "menu.themeNight", - "types": "menu.types", - "zipExport": "menu.zipExport", - "zipProject": "menu.zipProject", - "codeFontDefault": "menu.codeFontDefault", - "codeFontOldSchool": "menu.codeFontOldSchool", - "codeFontSystem": "menu.codeFontSystem", - "codeFontCustom": "menu.codeFontCustom", - "newFont": "menu.newFont", - "codeFont": "menu.codeFont", - "codeLigatures": "menu.codeLigatures", - "codeDense": "menu.codeDense", - "launchHotkeys": "menu.launchHotkeys", - "patrons": "menu.patrons", - "fx": "menu.fx", - "openIncludeFolder": "menu.openIncludeFolder", - "troubleshooting": "menu.troubleshooting", - "toggleDevTools": "menu.toggleDevTools", - "copySystemInfo": "menu.copySystemInfo", - "systemInfoWait": "menu.systemInfoWait", - "systemInfoDone": "menu.systemInfoDone", - "disableAcceleration": "menu.disableAcceleration", - "disableBuiltInDebugger": "menu.disableBuiltInDebugger", - "visitDiscordForGamedevSupport": "menu.visitDiscordForGamedevSupport", - "postAnIssue": "menu.postAnIssue", - "restart": "menu.restart", - "project": "menu.project", - "settings": "menu.settings", - "themeSpringStream": "menu.themeSpringStream", - "themeLucasDracula": "menu.themeLucasDracula", - "openProject": "menu.openProject", - "openExample": "menu.openExample" - }, "modules": { "author": "modules.author", "help": "modules.help", @@ -185,13 +140,18 @@ "integrations": "modules.categories.integrations", "tweaks": "modules.categories.tweaks", "networking": "modules.categories.networking" - } + }, + "preview": "modules.preview", + "previewTooltip": "modules.previewTooltip", + "deprecatedTooltip": "modules.deprecatedTooltip" }, "texture": { "create": "texture.create", "import": "texture.import", "skeletons": "texture.skeletons", - "createType": "texture.createType" + "createType": "texture.createType", + "importFromClipboard": "texture.importFromClipboard", + "generatePlaceholder": "texture.generatePlaceholder" }, "textureview": { "bgcolor": "textureview.bgcolor", @@ -228,7 +188,9 @@ "movePoint": "textureview.movePoint", "symmetryTool": "textureview.symmetryTool", "padding": "textureview.padding", - "paddingNotice": "textureview.paddingNotice" + "paddingNotice": "textureview.paddingNotice", + "updateFromClipboard": "textureview.updateFromClipboard", + "previewAnimationNotice": "textureview.previewAnimationNotice" }, "sounds": { "create": "sounds.create" @@ -315,7 +277,8 @@ "draw": "typeview.draw", "learnAboutTypes": "typeview.learnAboutTypes", "name": "typeview.name", - "step": "typeview.step" + "step": "typeview.step", + "visible": "typeview.visible" }, "rooms": { "create": "rooms.create", @@ -328,7 +291,10 @@ "parallax": "roombackgrounds.parallax", "repeat": "roombackgrounds.repeat", "scale": "roombackgrounds.scale", - "shift": "roombackgrounds.shift" + "shift": "roombackgrounds.shift", + "notBackgroundTextureWarning": "roombackgrounds.notBackgroundTextureWarning", + "fixBackground": "roombackgrounds.fixBackground", + "dismissWarning": "roombackgrounds.dismissWarning" }, "roomtiles": { "moveTileLayer": "roomtiles.moveTileLayer", @@ -373,7 +339,16 @@ "shifttiles": "roomview.shifttiles", "findTileset": "roomview.findTileset", "changecopyrotation": "roomview.changecopyrotation", - "properties": "roomview.properties" + "properties": "roomview.properties", + "isUi": "roomview.isUi", + "backgroundColor": "roomview.backgroundColor", + "sortHorizontally": "roomview.sortHorizontally", + "sortVertically": "roomview.sortVertically", + "copyProperties": { + "position": "roomview.copyProperties.position", + "rotation": "roomview.copyProperties.rotation", + "scale": "roomview.copyProperties.scale" + } }, "notepad": { "local": "notepad.local", @@ -565,7 +540,8 @@ "maximized": "settings.rendering.launchModes.maximized", "fullscreen": "settings.rendering.launchModes.fullscreen", "windowed": "settings.rendering.launchModes.windowed" - } + }, + "hideCursor": "settings.rendering.hideCursor" }, "scripts": { "heading": "settings.scripts.heading", @@ -575,6 +551,126 @@ "moveUp": "settings.scripts.moveUp", "newScriptComment": "settings.scripts.newScriptComment" }, - "catmodsSettings": "settings.catmodsSettings" + "catmodsSettings": "settings.catmodsSettings", + "export": { + "heading": "settings.export.heading", + "functionWrap": "settings.export.functionWrap", + "codeModifier": "settings.export.codeModifier", + "obfuscateWarning": "settings.export.obfuscateWarning", + "codeModifierAndWrapNote": "settings.export.codeModifierAndWrapNote", + "codeModifiers": { + "none": "settings.export.codeModifiers.none", + "minify": "settings.export.codeModifiers.minify", + "obfuscate": "settings.export.codeModifiers.obfuscate" + } + } + }, + "extensionsEditor": { + "noEntries": "extensionsEditor.noEntries", + "addRow": "extensionsEditor.addRow" + }, + "textureGenerator": { + "name": "textureGenerator.name", + "width": "textureGenerator.width", + "height": "textureGenerator.height", + "color": "textureGenerator.color", + "label": "textureGenerator.label", + "optional": "textureGenerator.optional", + "createAndClose": "textureGenerator.createAndClose", + "createAndContinue": "textureGenerator.createAndContinue", + "scalingAtX4": "textureGenerator.scalingAtX4", + "generationSuccessMessage": "textureGenerator.generationSuccessMessage", + "filler": "textureGenerator.filler", + "fillerNone": "textureGenerator.fillerNone", + "fillerCross": "textureGenerator.fillerCross", + "fillerLabel": "textureGenerator.fillerLabel" + }, + "textureInput": { + "jumpToTexture": "textureInput.jumpToTexture", + "changeTexture": "textureInput.changeTexture" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "writableFolderPrompt.headerSelectFolderForData", + "paragraphCouldNotPickDirectory": "writableFolderPrompt.paragraphCouldNotPickDirectory", + "paragraphDirectoryDirections": "writableFolderPrompt.paragraphDirectoryDirections", + "selectFolder": "writableFolderPrompt.selectFolder" + }, + "writableFolderSelector": { + "folderDoesNotExist": "writableFolderSelector.folderDoesNotExist", + "notADirectory": "writableFolderSelector.notADirectory", + "folderNotWritable": "writableFolderSelector.folderNotWritable", + "complete": "writableFolderSelector.complete" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "mainMenu.troubleshooting.toggleDevTools", + "copySystemInfo": "mainMenu.troubleshooting.copySystemInfo", + "systemInfoWait": "mainMenu.troubleshooting.systemInfoWait", + "systemInfoDone": "mainMenu.troubleshooting.systemInfoDone", + "disableAcceleration": "mainMenu.troubleshooting.disableAcceleration", + "disableBuiltInDebugger": "mainMenu.troubleshooting.disableBuiltInDebugger", + "postAnIssue": "mainMenu.troubleshooting.postAnIssue", + "heading": "mainMenu.troubleshooting.heading" + }, + "deploy": { + "exportDesktop": "mainMenu.deploy.exportDesktop", + "successZipExport": "mainMenu.deploy.successZipExport", + "zipExport": "mainMenu.deploy.zipExport" + }, + "latestProjects": { + "recentProjects": "mainMenu.latestProjects.recentProjects" + }, + "settings": { + "theme": "mainMenu.settings.theme", + "themes": { + "Day": "mainMenu.settings.themes.themeDay", + "Night": "mainMenu.settings.themes.themeNight", + "SpringStream": "mainMenu.settings.themes.themeSpringStream", + "LucasDracula": "mainMenu.settings.themes.themeLucasDracula", + "Horizon": "mainMenu.settings.themes.themeHorizon", + "HCBlack": "mainMenu.settings.themes.themeHCBlack" + }, + "codeFontDefault": "mainMenu.settings.codeFontDefault", + "codeFontOldSchool": "mainMenu.settings.codeFontOldSchool", + "codeFontSystem": "mainMenu.settings.codeFontSystem", + "codeFontCustom": "mainMenu.settings.codeFontCustom", + "newFont": "mainMenu.settings.newFont", + "codeFont": "mainMenu.settings.codeFont", + "codeLigatures": "mainMenu.settings.codeLigatures", + "codeDense": "mainMenu.settings.codeDense", + "settings": "mainMenu.settings.settings", + "disableSounds": "mainMenu.settings.disableSounds", + "changeDataFolder": "mainMenu.settings.changeDataFolder", + "forceProductionForDebug": "mainMenu.settings.forceProductionForDebug" + }, + "project": { + "save": "mainMenu.project.save", + "openIncludeFolder": "mainMenu.project.openIncludeFolder", + "openProject": "mainMenu.project.openProject", + "openExample": "mainMenu.project.openExample", + "startScreen": "mainMenu.project.startScreen", + "successZipProject": "mainMenu.project.successZipProject", + "zipProject": "mainMenu.project.zipProject" + }, + "meta": { + "license": "mainMenu.meta.license", + "visitDiscordForGamedevSupport": "mainMenu.meta.visitDiscordForGamedevSupport", + "openIconList": "mainMenu.meta.openIconList" + } + }, + "appView": { + "ctIDE": "appView.ctIDE", + "texture": "appView.texture", + "launch": "appView.launch", + "min": "appView.min", + "rooms": "appView.rooms", + "sounds": "appView.sounds", + "ui": "appView.ui", + "types": "appView.types", + "launchHotkeys": "appView.launchHotkeys", + "patrons": "appView.patrons", + "fx": "appView.fx", + "restart": "appView.restart", + "project": "appView.project" } } diff --git a/app/data/i18n/Dutch.json b/app/data/i18n/Dutch.json index a89647209..e5723553e 100644 --- a/app/data/i18n/Dutch.json +++ b/app/data/i18n/Dutch.json @@ -23,9 +23,7 @@ "exit": "Afsluiten", "exitconfirm": "Weet u zeker dat u wilt afsluiten?
Alle niet opgeslagen veranderingen raken verloren!", "fastimport": "Snelle Import", - "language": "Taal", "loading": "Laden…", - "translateToYourLanguage": "Vertaal ct.js naar jouw taal!", "name": "Naam:", "nametaken": "Deze naam bestaat al", "newname": "Nieuwe naam:", @@ -49,7 +47,14 @@ "yes": "Ja", "zoom": "Zoom", "zoomIn": "Zoom in", - "zoomOut": "Zoom uit" + "zoomOut": "Zoom uit", + "clear": "", + "filter": "", + "selectDialogue": "", + "search": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "New", @@ -117,62 +122,21 @@ "latest": "Recente projecten", "unableToWriteToFolders": "Ct.js kon geen geschikte plaats vinden voor projecten! Zorg ervoor dat u de ct.js-app opslaat in een map waartoe u toegang heeft.", "twitter": "Twitter kanaal", - "discord": "Discord gemeenschap" + "discord": "Discord gemeenschap", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Ct.js-licentie (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Exporteer voor desktop", - "texture": "Texturen", - "launch": "Compileer en voer uit", - "launchHotkeys": "(F5; Alt+F5 om in uw standaard browser te draaien)", - "license": "License", - "min": "Windowed", - "patrons": "Patrons", - "recentProjects": "Recente projecten", - "rooms": "Kamers", - "save": "Opslaan van project", - "startScreen": "Keer terug naar het start scherm", - "settings": "Instellingen", - "sounds": "Geluiden", - "successZipExport": "{0} is succesvol geëxporteerd.", - "successZipProject": "Het project is succesvol naar {0} ingepakt.", - "ui": "UI", - "fx": "FX", - "theme": "Thema", - "themeDay": "Licht", - "themeNight": "Donker", - "types": "Soorten", - "zipExport": "Exporteer naar het web", - "zipProject": "Project inpakken naar .zip", - "codeFontDefault": "Standaard (Iosevka Licht)", - "codeFontOldSchool": "Ouderwets", - "codeFontSystem": "Systeem", - "codeFontCustom": "Aangepaste…", - "newFont": "Nieuw lettertype:", - "codeFont": "Lettertype voor code", - "codeLigatures": "Ligaturen", - "codeDense": "Dichte indeling", - "openIncludeFolder": "Open de map \"include\"", - "troubleshooting": "Probleemoplossen", - "toggleDevTools": "Schakel Dev Tools in", - "copySystemInfo": "Kopieer systeeminformatie", - "systemInfoWait": "Wacht even, ik ben data aan het verzamelen…", - "systemInfoDone": "Klaar!", - "disableAcceleration": "Schakel grafische versnelling uit (moet opnieuw worden opgestart)", - "disableBuiltInDebugger": "Schakel ingebouwde foutopsporing uit", - "visitDiscordForGamedevSupport": "Word lid van de Discord-server voor gameontwikkelings-ondersteuning", - "postAnIssue": "Plaats een probleem op Github" - }, "onboarding": { "hoorayHeader": "Wow! U heeft zojuist een project gecreëerd!", "nowWhatParagraph": "Wat zullen we nu doen?", "openSpaceShooterTutorial": "Leer om een ruimte schietspel te maken", "openPlatformerTutorial": "Leer om een platformspel te maken", "doNothing": "Sla dit scherm over", - "showOnboardingCheckbox": "Laat dit scherm zien wanneer er een nieuw project wordt gecreëerd" + "showOnboardingCheckbox": "Laat dit scherm zien wanneer er een nieuw project wordt gecreëerd", + "openJettyCatTutorial": "" }, "settings": { "actions": { @@ -208,7 +172,9 @@ "maximized": "Maximaliseren", "fullscreen": "Volledig scherm", "windowed": "Windowed" - } + }, + "desktopBuilds": "", + "hideCursor": "" }, "branding": { "heading": "Branding", @@ -222,7 +188,25 @@ "addNew": "Toevoegen van een nieuw Script", "deleteScript": "Verwijder een Script", "heading": "Scripts", - "newScriptComment": "Gebruik scripts om veelgebruikte functies te definiëren en kleine bibliotheken te importeren" + "newScriptComment": "Gebruik scripts om veelgebruikte functies te definiëren en kleine bibliotheken te importeren", + "moveDown": "", + "moveUp": "" + }, + "modules": { + "heading": "" + }, + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } } }, "modules": { @@ -237,12 +221,35 @@ "parameters": "Parameters", "logs2": "Changelog", "settings": "Instellingen", - "importModules": "Importeer Modules" + "importModules": "Importeer Modules", + "enabledModules": "", + "availableModules": "", + "filter": "", + "categories": { + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Creëer", "import": "Importeer", - "skeletons": "Skeletanimatie" + "skeletons": "Skeletanimatie", + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Verander achtergrond kleur", @@ -279,7 +286,9 @@ "movePoint": "Verplaats dit punt", "symmetryTool": "Symmetrie tool", "padding": "Opvulling:", - "paddingNotice": "Dit heeft invloed op de manier waarop een textuur wordt geëxporteerd: het voegt dubbele pixels toe aan de randen en voorkomt uitvloeiende artefacten op betegelde en geschaalde texturen. De standaardwaarde is meestal voldoende, maar als u texturen sterk verkleint, kan de bloeding opnieuw optreden. Verhoog deze waarde als u textuur artefacten heeft tijdens het spelen." + "paddingNotice": "Dit heeft invloed op de manier waarop een textuur wordt geëxporteerd: het voegt dubbele pixels toe aan de randen en voorkomt uitvloeiende artefacten op betegelde en geschaalde texturen. De standaardwaarde is meestal voldoende, maar als u texturen sterk verkleint, kan de bloeding opnieuw optreden. Verhoog deze waarde als u textuur artefacten heeft tijdens het spelen.", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Creëer" @@ -324,7 +333,8 @@ "strokeweight": "Lijn breedte:", "testtext": "Test tekst 0123 +", "textWrap": "Woordomloop", - "textWrapWidth": "Maximale breedte:" + "textWrapWidth": "Maximale breedte:", + "useCustomFont": "" }, "fonts": { "fonts": "Lettertype", @@ -335,7 +345,23 @@ "typefacename": "Lettertype naam:", "fontweight": "Lettertype breedte:", "italic": "Is cursief?", - "reimport": "Herimporteer" + "reimport": "Herimporteer", + "generateBitmapFont": "", + "bitmapFont": "", + "bitmapFontSize": "", + "bitmapFontLineHeight": "", + "resultingBitmapFontName": "", + "charset": "", + "charsets": { + "punctuation": "", + "basicLatin": "", + "latinExtended": "", + "cyrillic": "", + "greekCoptic": "", + "custom": "", + "allInFont": "" + }, + "customCharsetHint": "" }, "particleEmitters": { "emittersHeading": "Deeltjesuitspuger", @@ -417,7 +443,8 @@ "draw": "Teken", "learnAboutTypes": "Leren over code types", "name": "Naam:", - "step": "Bij Stap" + "step": "Bij Stap", + "visible": "" }, "rooms": { "create": "Creëer een nieuwe", @@ -430,7 +457,10 @@ "parallax": "Parallax (X, Y):", "repeat": "Herhaal:", "scale": "Schaal (X, Y):", - "shift": "Verschuif (X, Y):" + "shift": "Verschuif (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Beweeg naar een nieuwe diepte", @@ -473,13 +503,25 @@ "deletetiles": "Verwijder tegels", "movetilestolayer": "Beweeg naar laag", "shifttiles": "Verschuif tegels", - "findTileset": "Zoek een tegelset" + "findTileset": "Zoek een tegelset", + "changecopyrotation": "", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Project's notitieblok", "global": "Globaal notitieblok", "helppages": "Help", - "backToHome": "Terug naar documentatie thuispagina" + "backToHome": "Terug naar documentatie thuispagina", + "modulespages": "" }, "patreon": { "aboutPatrons": "Patrons zijn mensen die hun steun betuigen aan ComigoGames op Patreon, in de vorm van terugkerende donaties. Niet iedereen daar komt voor ct.js; sommigen gebruiken andere apps van ComigoGames. Tip: als je een maker bent en via Patreon aan ComigoGames doneert, krijg je hier een link naar je pagina - dat is mijn kleine hulp voor je creaties :)", @@ -516,5 +558,119 @@ "brengt licht en hoop 🌞", "is elegant en mooi 🎩" ] + }, + "docsPanel": { + "documentation": "", + "reference": "" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "Schakel Dev Tools in", + "copySystemInfo": "Kopieer systeeminformatie", + "systemInfoWait": "Wacht even, ik ben data aan het verzamelen…", + "systemInfoDone": "Klaar!", + "disableAcceleration": "Schakel grafische versnelling uit (moet opnieuw worden opgestart)", + "disableBuiltInDebugger": "Schakel ingebouwde foutopsporing uit", + "postAnIssue": "Plaats een probleem op Github", + "heading": "Probleemoplossen" + }, + "deploy": { + "exportDesktop": "Exporteer voor desktop", + "successZipExport": "{0} is succesvol geëxporteerd.", + "zipExport": "Exporteer naar het web" + }, + "latestProjects": { + "recentProjects": "Recente projecten" + }, + "settings": { + "language": "Taal", + "translateToYourLanguage": "Vertaal ct.js naar jouw taal!", + "theme": "Thema", + "themes": { + "Day": "Licht", + "Night": "Donker", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "Standaard (Iosevka Licht)", + "codeFontOldSchool": "Ouderwets", + "codeFontSystem": "Systeem", + "codeFontCustom": "Aangepaste…", + "newFont": "Nieuw lettertype:", + "codeFont": "Lettertype voor code", + "codeLigatures": "Ligaturen", + "codeDense": "Dichte indeling", + "heading": "Instellingen", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Opslaan van project", + "openIncludeFolder": "Open de map \"include\"", + "openProject": "", + "openExample": "", + "startScreen": "Keer terug naar het start scherm", + "successZipProject": "Het project is succesvol naar {0} ingepakt.", + "zipProject": "Project inpakken naar .zip" + }, + "meta": { + "license": "License", + "visitDiscordForGamedevSupport": "Word lid van de Discord-server voor gameontwikkelings-ondersteuning", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Texturen", + "launch": "Compileer en voer uit", + "launchHotkeys": "(F5; Alt+F5 om in uw standaard browser te draaien)", + "min": "Windowed", + "patrons": "Patrons", + "rooms": "Kamers", + "sounds": "Geluiden", + "ui": "UI", + "fx": "FX", + "types": "Soorten", + "restart": "", + "project": "" } } diff --git a/app/data/i18n/English.json b/app/data/i18n/English.json index 7328c1b2d..8a029e148 100644 --- a/app/data/i18n/English.json +++ b/app/data/i18n/English.json @@ -27,9 +27,7 @@ "exitconfirm": "Are you sure you want to exit?
All the unsaved changes will be lost!", "fastimport": "Fast Import", "filter": "Filter:", - "language": "Language", "loading": "Loading…", - "translateToYourLanguage": "Translate ct.js!", "name": "Name:", "nametaken": "This name is already taken", "newname": "New name:", @@ -139,63 +137,6 @@ "licensepanel": { "ctjslicense": "Ct.js License (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Export for desktop…", - "texture": "Textures", - "launch": "Launch", - "launchHotkeys": "(F5; Alt+F5 to run in your default browser)", - "license": "License", - "min": "Windowed", - "patrons": "Patrons", - "recentProjects": "Recent projects", - "restart": "Restart", - "rooms": "Rooms", - "save": "Save project", - "startScreen": "Return to the starting screen", - "project": "Project", - "settings": "Settings", - "sounds": "Sounds", - "successZipExport": "Successfully exported to {0}.", - "successZipProject": "Successfully zipped the project to {0}.", - "ui": "UI", - "fx": "FX", - "theme": "Theme", - "themeDay": "Day", - "themeNight": "Night", - "themeHorizon": "Horizon", - "themeHCBlack": "High-contrast Black", - "themeSpringStream": "Spring Stream", - "themeLucasDracula": "Lucas Dracula", - "themePooxelGreen": "Pooxel Green", - "themePooxelBlue": "Pooxel Blue", - "types": "Types", - "zipExport": "Export for web", - "zipProject": "Pack project to .zip", - "codeFontDefault": "Default (Iosevka Light)", - "codeFontOldSchool": "Old school", - "codeFontSystem": "System", - "codeFontCustom": "Custom…", - "newFont": "New font:", - "codeFont": "Font for code", - "codeLigatures": "Ligatures", - "codeDense": "Dense layout", - "disableSounds": "Disable UI sounds", - "changeDataFolder": "Set data folder location", - "openIncludeFolder": "Open \"include\" folder", - "troubleshooting": "Troubleshooting", - "toggleDevTools": "Toggle Dev Tools", - "copySystemInfo": "Copy system information", - "systemInfoWait": "Wait a bit, I'm gathering the data…", - "systemInfoDone": "Done!", - "disableAcceleration": "Disable graphics acceleration (needs restart)", - "disableBuiltInDebugger": "Disable built-in debugger", - "forceProductionForDebug": "Force production tasks for debug exports", - "visitDiscordForGamedevSupport": "Join Discord server for gamedev support", - "postAnIssue": "Post an issue on Github…", - "openProject": "Open a project…", - "openExample": "Open an example project…" - }, "onboarding": { "hoorayHeader": "Wow! You've just created a project!", "nowWhatParagraph": "Now, what should we do?", @@ -449,14 +390,11 @@ "particleEmitters": { "emittersHeading": "Particle emitters", "emitterHeading": "Emitter", - "from": "From:", "to": "To:", - "textureHeading": "Texture", "selectTexture": "Select…", "importBuiltin": "Import default…", - "colorAndOpacityHeading": "Color and Opacity", "stepped": "Stepped", "steppedColor": "Stepped color", @@ -466,29 +404,23 @@ "darken": "Darken", "lighten": "Lighten", "burn": "Burn", - "scalingHeading": "Scaling", "scale": "Scale:", "minimumSize": "Minimum size:", "minimumSizeHint": "Setting it to lower values will randomize the size of each particle. The lower the values, the stronger the effect.", - "velocityHeading": "Velocity", "velocity": "Velocity:", "minimumSpeed": "Minimum speed:", "minimumSpeedHint": "Setting it to lower values will randomize the speed of each particle; the lower the value, the slower the particle may be.", "maxSpeed": "Max speed:", - "gravityHeading": "Gravity", "gravityNotice": "Note that if it differs from (0;0), velocity interpolation will be disabled, meaning that only the first node of the velocity graph will have the effect.", - "directionHeading": "Direction", "startingDirection": "Starting direction", "preserveTextureDirection": "Preserve texture rotation", - "rotationHeading": "Rotation", "rotationSpeed": "Rotation speed", "rotationAcceleration": "Rotation acceleration:", - "spawningHeading": "Spawning", "timeBetweenBursts": "Time between bursts:", "spawnAtOnce": "Spawn at once:", @@ -498,7 +430,6 @@ "emitterLifetime": "Emitter lifetime, sec.:", "prewarmDelay": "Prewarm / delay, sec.:", "prewarmDelayNotice": "Negative values will prepare the particles of the emitter before showing it, which is useful for long effects like dust particles or mist that should already be visible on room start; positive values will delay the simulation.", - "shapeAndPositioningHeading": "Shape and Positioning", "spawnType": "Shape type:", "spawnShapes": { @@ -515,7 +446,6 @@ "startAngle": "Rotate, deg.:", "showShapeVisualizer": "Show shape visualizer", "relativeEmitterPosition": "Position relative to other emitters", - "addEmitter": "Add another emitter", "reset": "Reset preview", "changeBg": "Change background", @@ -668,5 +598,82 @@ "notADirectory": "This doesn't seem to be a directory! How did you do that?", "folderNotWritable": "You don't have access to write to this folder. Pick another one.", "complete": "Folder was set, all is good ✅" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "Toggle Dev Tools", + "copySystemInfo": "Copy system information", + "systemInfoWait": "Wait a bit, I'm gathering the data…", + "systemInfoDone": "Done!", + "disableAcceleration": "Disable graphics acceleration (needs restart)", + "disableBuiltInDebugger": "Disable built-in debugger", + "postAnIssue": "Post an issue on Github…", + "heading": "Troubleshooting" + }, + "deploy": { + "heading": "Deploy", + "exportDesktop": "Export for desktop…", + "successZipExport": "Successfully exported to {0}.", + "zipExport": "Export for web" + }, + "latestProjects": { + "recentProjects": "Recent projects" + }, + "settings": { + "heading": "Settings", + "theme": "Theme", + "themes": { + "Day": "Day", + "Night": "Night", + "SpringStream": "Spring Stream", + "LucasDracula": "Lucas Dracula", + "Horizon": "Horizon", + "HCBlack": "High-contrast Black" + }, + "language": "Language", + "translateToYourLanguage": "Translate ct.js!", + "codeFontDefault": "Default (Iosevka Light)", + "codeFontOldSchool": "Old school", + "codeFontSystem": "System", + "codeFontCustom": "Custom…", + "newFont": "New font:", + "codeFont": "Font for code", + "codeLigatures": "Ligatures", + "codeDense": "Dense layout", + "disableSounds": "Disable UI sounds", + "changeDataFolder": "Set data folder location", + "forceProductionForDebug": "Force production tasks for debug exports" + }, + "project": { + "heading": "Project", + "save": "Save project", + "openIncludeFolder": "Open \"include\" folder", + "openProject": "Open a project…", + "openExample": "Open an example project…", + "startScreen": "Return to the starting screen", + "successZipProject": "Successfully zipped the project to {0}.", + "zipProject": "Pack project to .zip" + }, + "meta": { + "heading": "Meta", + "license": "License", + "visitDiscordForGamedevSupport": "Join Discord server for gamedev support", + "openIconList": "Open the list of icons" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Textures", + "launch": "Launch", + "launchHotkeys": "(F5; Alt+F5 to run in your default browser)", + "min": "Windowed", + "patrons": "Patrons", + "restart": "Restart", + "rooms": "Rooms", + "project": "Project", + "sounds": "Sounds", + "ui": "UI", + "fx": "FX", + "types": "Types" } } diff --git a/app/data/i18n/French.json b/app/data/i18n/French.json index 1ae4bd7e0..183f11745 100644 --- a/app/data/i18n/French.json +++ b/app/data/i18n/French.json @@ -11,9 +11,9 @@ "projectPalette": "Palette de Projets" }, "curveEditor": { - "curveLineHint":"Cliquez sur la courbe pour ajouter un point", - "dragPointHint":"Faites glisser pour déplacer le point, faites un clic droit pour le supprimer", - "pointTime":"Temps:", + "curveLineHint": "Cliquez sur la courbe pour ajouter un point", + "dragPointHint": "Faites glisser pour déplacer le point, faites un clic droit pour le supprimer", + "pointTime": "Temps:", "pointValue": "Valeur:" }, "debuggerToolbar": { @@ -49,9 +49,7 @@ "exit": "Quitter", "exitconfirm": "Êtes-vous sur de vouloir quitter ?
Tout les changements non sauvegardé seront perdu!", "fastimport": "Import Rapide", - "language": "Langue", "loading": "Chargement…", - "translateToYourLanguage":"Traduisez ct.js dans votre langue!", "name": "Nom:", "nametaken": "Ce nom est déjà pris", "newname": "Nouveau nom:", @@ -75,7 +73,14 @@ "yes": "Oui", "zoom": "Zoom", "zoomIn": "Zoom sur", - "zoomOut": "Zoom sur" + "zoomOut": "Zoom sur", + "clear": "", + "filter": "", + "selectDialogue": "", + "search": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "exportPanel": { "hide": "Cacher", @@ -85,7 +90,8 @@ "exportPanel": "Exporter le Projet", "firstrunnotice": "Le premier lancement pour chaque plateforme sera lent car ct.js va télécharger et sauvegarder les librairies additionnels requises pour les rassembler. Cela va prendre un certain temps, mais les prochaines fois ce sera presque instantané.", "log": "Journal des logs", - "windowsCrossBuildWarning": "Pour construire pour windows depuis Linux/MacOS, vous avez besoin de Wine :)" + "windowsCrossBuildWarning": "Pour construire pour windows depuis Linux/MacOS, vous avez besoin de Wine :)", + "cannotBuildForMacOnWin": "" }, "intro": { "loading": "Veuillez patientez: des chatons ", @@ -94,8 +100,8 @@ "input": "Nom du projet (Lettres et chiffres)", "text": "Créer un nouveau", "nameerr": "Mauvais nom de projet.", - "saveProjectHere":"Sauvegarder le projet ici", - "selectProjectFolder":"Choisissez un fichier pour sauvegarder votre projet" + "saveProjectHere": "Sauvegarder le projet ici", + "selectProjectFolder": "Choisissez un fichier pour sauvegarder votre projet" }, "recovery": { "message": "

Recovery

ct.js has found a recovery file. Possibly, your project was not saved correctly or ct.js was shut down in case of some emergency. Here is when these files were lastly modified:

Your chosen file: {0} {1}
Recovery file: {2} {3}

What file should ct.js open?

", @@ -113,53 +119,21 @@ "latest": "Derniers projets", "twitter": "Chaîne Twitter", "discord": "Communauté Discord", - "unableToWriteToFolders": "Ct.js n'a pas pu trouver un endroit approprié pour vos projets! Assurez-vous de stocker l'application ct.js dans un dossier dans lequel vous avez accès à l'écriture." + "unableToWriteToFolders": "Ct.js n'a pas pu trouver un endroit approprié pour vos projets! Assurez-vous de stocker l'application ct.js dans un dossier dans lequel vous avez accès à l'écriture.", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Ct.js License (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Exporter pour le bureau", - "texture": "Graphiques", - "launch": "Compiler", - "launchHotkeys":"(F5/ Alt+F5 pour lancer votre navigateur par défaut", - "license": "Licence", - "min": "Fenêtré", - "patrons": "Patrons", - "recentProjects": "Projets récents", - "rooms": "Salons", - "save": "Sauvegarder le projet", - "startScreen": "Retourner à l'écran de démarrage", - "settings": "Paramètres", - "sounds": "Sons", - "ui": "IU", - "fx": "FX", - "theme": "Thème", - "themeDay": "Clair", - "themeNight": "Sombre", - "types": "Types", - "zipExport": "Exporter en .zip", - "zipProject": "Compresser le projet en .zip", - "successZipExport": "Exporté avec succès vers {0}", - "successZipProject": "Le projet à été compressé avec succès vers {0}", - "codeFontDefault": "Font par défault (Iosevka Light)", - "codeFontOldSchool": "Old school", - "codeFontSystem": "Système", - "codeFontCustom": "Customiser..", - "newFont": "Nouvelle font:", - "codeFont": "Font pour codé", - "codeLigatures": "Liaisons", - "codeDense": "Épaisse disposition", - "openIncludeFolder": "Ouvrir le dossier \"include\"" - }, "onboarding": { "hoorayHeader": "Wow! Vous venez de créer un projet!", "nowWhatParagraph": "Maintenant, que devons nous faire ?", "openSpaceShooterTutorial": "Apprendre comment créer un jeu Space-Shooter", "openPlatformerTutorial": "Apprendre comment créer un jeu de plate-forme", "doNothing": "Passer cette étape", - "showOnboardingCheckbox": "Afficher cet écran lors de la création d'un nouveau projet" + "showOnboardingCheckbox": "Afficher cet écran lors de la création d'un nouveau projet", + "openJettyCatTutorial": "" }, "settings": { "actions": { @@ -195,15 +169,17 @@ "maximized": "Maximiser", "fullscreen": "Plein écran", "windowed": "Fenêtré" - } + }, + "desktopBuilds": "", + "hideCursor": "" }, "branding": { "heading": "Étiqueter", "icon": "Logo du jeu", - "iconNotice":"Votre logo doit faire au minimum 256x256 pixels.", + "iconNotice": "Votre logo doit faire au minimum 256x256 pixels.", "accent": "Votre colorie", - "accentNotice":"Définit la couleur du chargement, ainsi que de certains autres endroits s'il est utilisé comme application mobile.", - "invertPreloaderScheme":"Inverser le schéma de couleurs du chargement" + "accentNotice": "Définit la couleur du chargement, ainsi que de certains autres endroits s'il est utilisé comme application mobile.", + "invertPreloaderScheme": "Inverser le schéma de couleurs du chargement" }, "scripts": { "heading": "Vos Scripts", @@ -212,6 +188,22 @@ "newScriptComment": "Utilisez des scripts pour définir des fonctions fréquentes et importer de petites bibliothèques", "moveUp": "Montez", "moveDown": "Déplacez-vous vers le bas" + }, + "modules": { + "heading": "" + }, + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } } }, "modules": { @@ -224,12 +216,37 @@ "parameters": "Paramétres", "logs2": "Changelog", "settings": "Réglages", - "importModules": "Importer un module" + "importModules": "Importer un module", + "dependencies": "", + "optionalDependencies": "", + "enabledModules": "", + "availableModules": "", + "filter": "", + "categories": { + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Créer", "import": "Importer", - "skeletons": "Animation squelettique" + "skeletons": "Animation squelettique", + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Changer la couleur du background", @@ -266,7 +283,9 @@ "movePoint": "Déplacer ce point", "symmetryTool": "Outil de symétrie", "padding": "Remplissage", - "paddingNotice": "Cela affecte la façon dont une texture est exportée: elle ajoute des pixels en double sur les bords et empêche les artefacts de saignement sur les textures en mosaïque et à l'échelle. La valeur par défaut est généralement suffisante, mais si vous réduisez fortement les textures, le saignement peut réapparaître. Augmentez cette valeur si cette texture contient des artefacts pendant le jeu." + "paddingNotice": "Cela affecte la façon dont une texture est exportée: elle ajoute des pixels en double sur les bords et empêche les artefacts de saignement sur les textures en mosaïque et à l'échelle. La valeur par défaut est généralement suffisante, mais si vous réduisez fortement les textures, le saignement peut réapparaître. Augmentez cette valeur si cette texture contient des artefacts pendant le jeu.", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Créer" @@ -311,7 +330,8 @@ "strokeweight": "Épaisseur du contour", "testtext": "Test texte 0123 +", "textWrap": "Retour à la ligne", - "textWrapWidth": "Retour maximum:" + "textWrapWidth": "Retour maximum:", + "useCustomFont": "" }, "fonts": { "fonts": "Polices", @@ -322,19 +342,32 @@ "typefacename": "Nom de la police", "fontweight": "Épaisseur de la police", "italic": "Format italique ?", - "reimport": "Ré-importer" + "reimport": "Ré-importer", + "generateBitmapFont": "", + "bitmapFont": "", + "bitmapFontSize": "", + "bitmapFontLineHeight": "", + "resultingBitmapFontName": "", + "charset": "", + "charsets": { + "punctuation": "", + "basicLatin": "", + "latinExtended": "", + "cyrillic": "", + "greekCoptic": "", + "custom": "", + "allInFont": "" + }, + "customCharsetHint": "" }, "particleEmitters": { "emittersHeading": "Émetteur de particules", "emitterHeading": "Émetteur", - "from": "Depuis:", "to": "Pour:", - "textureHeading": "Texture", "selectTexture": "Sélect…", "importBuiltin": "Défaut importation…", - "colorAndOpacityHeading": "Couleur et Opacitée", "stepped": "Palette", "steppedColor": "Couleur", @@ -344,29 +377,23 @@ "darken": "Sombre", "lighten": "Lumineux", "burn": "Enflammer", - "scalingHeading": "Mise à l'échelle", "scale": "Échelle:", "minimumSize": "Taille minimum:", "minimumSizeHint": "Si vous le réglez sur des valeurs inférieures, la taille de chaque particule sera aléatoire. Plus les valeurs sont faibles, plus l'effet est fort.", - "velocityHeading": "Velocité", "velocity": "Velocité:", "minimumSpeed": "Vitesse minimum:", "minimumSpeedHint": "Régler sur des petite valeurs réduit la vitesse des particules.", "maxSpeed": "Vitesse maximal:", - "gravityHeading": "Gravité", "gravityNotice": "Notez que s'il diffère de (0; 0), l'interpolation de la vitesse sera désactivée, ce qui signifie que seul le premier nœud du graphique de vitesse aura l'effet.", - "directionHeading": "Direction", "startingDirection": "Direction de départ", "preserveTextureDirection": "Préservé la rotation de la texture", - "rotationHeading": "Rotation", "rotationSpeed": "Vitesse de rotation", "rotationAcceleration": "Accélération de la rotation:", - "spawningHeading": "Multiplication", "timeBetweenBursts": "Temps entre les rafales:", "spawnAtOnce": "Apparition immédiate:", @@ -376,7 +403,6 @@ "emitterLifetime": "Temps de vie de l'émetteur, en seconde.:", "prewarmDelay": "Prewarm / delay, sec.:", "prewarmDelayNotice": "Negative values will prepare the particles of the emitter before showing it, which is useful for long effects like dust particles or mist that should already be visible on room start; positive values will delay the simulation.", - "shapeAndPositioningHeading": "Forme et Positionnement", "spawnType": "Type de formes:", "spawnShapes": { @@ -392,12 +418,15 @@ "starPoints": "Points:", "startAngle": "Rotation, deg.:", "relativeEmitterPosition": "Position relative pour un autre émetteur", - "addEmitter": "Ajouter un nouveau émetteur", "reset": "Réinitialiser la prévisualisation", "changeBg": "Changer le background", "inspectorComplete": "Complet!", - "alreadyHasAnImportingTexture": "Vous avez déjà une texture nommer $1. Supprimez-le ou renommez-le :)" + "alreadyHasAnImportingTexture": "Vous avez déjà une texture nommer $1. Supprimez-le ou renommez-le :)", + "showShapeVisualizer": "", + "changeGrid": "", + "newGridSize": "", + "setPreviewTexture": "" }, "types": { "create": "Créer" @@ -411,7 +440,8 @@ "draw": "Draw", "name": "Nom:", "step": "On Step", - "learnAboutTypes": "En apprendre plus sur les types de codage" + "learnAboutTypes": "En apprendre plus sur les types de codage", + "visible": "" }, "rooms": { "create": "Ajouter", @@ -424,7 +454,10 @@ "parallax": "Parallaxe (X, Y):", "repeat": "Répétition", "scale": "Échelle: (X, Y):", - "shift": "Décalage (X, Y):" + "shift": "Décalage (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Déplacer vers une nouvelle profondeur", @@ -467,13 +500,25 @@ "deletetiles": "Supprimer les Tiles", "movetilestolayer": "Déplacer le calque", "shifttiles": "Déplacer les Tiles", - "findTileset": "Trouver un Tile" + "findTileset": "Trouver un Tile", + "changecopyrotation": "", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Note du projet", "global": "Toutes les notes", "helppages": "Aides", - "backToHome": "Retourner à la documentations" + "backToHome": "Retourner à la documentations", + "modulespages": "" }, "docsShortcut": { "openDocs": "Ouvrir la documentation" @@ -513,5 +558,119 @@ "brings light and hope 🌞", "is elegant and beautiful 🎩" ] + }, + "docsPanel": { + "documentation": "", + "reference": "" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "", + "copySystemInfo": "", + "systemInfoWait": "", + "systemInfoDone": "", + "disableAcceleration": "", + "disableBuiltInDebugger": "", + "postAnIssue": "", + "heading": "" + }, + "deploy": { + "exportDesktop": "Exporter pour le bureau", + "successZipExport": "Exporté avec succès vers {0}", + "zipExport": "Exporter en .zip" + }, + "latestProjects": { + "recentProjects": "Projets récents" + }, + "settings": { + "language": "Langue", + "translateToYourLanguage": "Traduisez ct.js dans votre langue!", + "theme": "Thème", + "themes": { + "Day": "Clair", + "Night": "Sombre", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "Font par défault (Iosevka Light)", + "codeFontOldSchool": "Old school", + "codeFontSystem": "Système", + "codeFontCustom": "Customiser..", + "newFont": "Nouvelle font:", + "codeFont": "Font pour codé", + "codeLigatures": "Liaisons", + "codeDense": "Épaisse disposition", + "heading": "Paramètres", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Sauvegarder le projet", + "openIncludeFolder": "Ouvrir le dossier \"include\"", + "openProject": "", + "openExample": "", + "startScreen": "Retourner à l'écran de démarrage", + "successZipProject": "Le projet à été compressé avec succès vers {0}", + "zipProject": "Compresser le projet en .zip" + }, + "meta": { + "license": "Licence", + "visitDiscordForGamedevSupport": "", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Graphiques", + "launch": "Compiler", + "launchHotkeys": "(F5/ Alt+F5 pour lancer votre navigateur par défaut", + "min": "Fenêtré", + "patrons": "Patrons", + "rooms": "Salons", + "sounds": "Sons", + "ui": "IU", + "fx": "FX", + "types": "Types", + "restart": "", + "project": "" } } diff --git a/app/data/i18n/German.json b/app/data/i18n/German.json old mode 100755 new mode 100644 index effbd0733..79c10526b --- a/app/data/i18n/German.json +++ b/app/data/i18n/German.json @@ -23,9 +23,7 @@ "exit": "Beenden", "exitconfirm": "Möchten Sie das Programm wirklich beenden?
Alle ungespeicherten Änderungen gehen dabei verlohren!", "fastimport": "Schneller Import", - "language": "Sprache", "loading": "Lade...", - "translateToYourLanguage": "Übersetzen Sie ct.js in Ihre Sprache!", "name": "Name:", "nametaken": "Dieser Name wird bereits verwendet", "newname": "Neuer Name:", @@ -49,7 +47,14 @@ "yes": "Ja", "zoom": "Zoom", "zoomIn": "Zoomen in", - "zoomOut": "Verkleinern" + "zoomOut": "Verkleinern", + "clear": "", + "filter": "", + "selectDialogue": "", + "search": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "Neu", @@ -87,7 +92,9 @@ "export": "Export", "exportPanel": "Projekt exportieren", "firstrunnotice": "Die erste Ausführung wird pro Plattform etwas länger dauern, da ct.js zusätzliche Bibliotheken zum Paketieren herunterladen muss. Dies wird einige Zeit dauern, beim nächsten Mal geht es deutlich schneller.", - "log": "Nachrichten Log" + "log": "Nachrichten Log", + "windowsCrossBuildWarning": "", + "cannotBuildForMacOnWin": "" }, "intro": { "loading": "Bitte warten: Kätzchen werden auf Lichtgeschwindigkeit beschleunigt!", @@ -115,53 +122,21 @@ "latest": "Letzte Projekte", "unableToWriteToFolders": "Ct.js konnte keinen geeigneten Ort zum speichern der Projekte finden! Bitte stellen Sie sicher, dass Sie die ct.js App in einem Verzeichnis ablegen in dem Sie über Schreibrechte verfügen.", "twitter": "Twitter Channel", - "discord": "Discord Community" + "discord": "Discord Community", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Ct.js Lizenz (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Desktop Export", - "texture": "Texturen", - "launch": "Kompilieren und starten", - "launchHotkeys": "(F5; Alt+F5 zum Öffnen im Standardbrowser)", - "license": "Lizenz", - "min": "Fenster", - "patrons": "Patrons", - "recentProjects": "Letzte Projekte", - "rooms": "Räume", - "save": "Projekt speichern", - "startScreen": "Zum Startbildschirm zurückkehren", - "settings": "Einstellungen", - "sounds": "Sounds", - "successZipExport": "Erfolgreich exportiert nach {0}.", - "successZipProject": "Projekt erfolgreich gezippt nach {0}.", - "ui": "UI", - "fx": "FX", - "theme": "Thema", - "themeDay": "Hell", - "themeNight": "Dunkel", - "types": "Types", - "zipExport": "Als .zip Exportieren", - "zipProject": "Projekt als .zip komprimieren", - "codeFontDefault": "Standard (Iosevka Light)", - "codeFontOldSchool": "Old School", - "codeFontSystem": "System", - "codeFontCustom": "Benutzerdefiniert", - "newFont": "Neue Schrift", - "codeFont": "Schrift für Code", - "codeLigatures": "Ligaturen", - "codeDense": "Kondensiertes Layout", - "openIncludeFolder": "\"include\" Ordner öffnen" - }, "onboarding": { "hoorayHeader": "Wow! Sie haben gerade ein Projekt erstellt!", "nowWhatParagraph": "Nun, was sollen wir als nächstes tun?", "openSpaceShooterTutorial": "Lasst uns einen Space Shooter entwickeln", "openPlatformerTutorial": "Lasst uns ein Jump'n Run entwickeln", "doNothing": "Diesen Schritt überspringen", - "showOnboardingCheckbox": "Diesen Bildschirm anzeigen wenn ein neues Projekt erstellt wird" + "showOnboardingCheckbox": "Diesen Bildschirm anzeigen wenn ein neues Projekt erstellt wird", + "openJettyCatTutorial": "" }, "settings": { "actions": { @@ -191,7 +166,15 @@ "highDensity": "Hochauflösende Bildschirme unterstützen (z.B. Retina Displays)", "maxFPS": "Max Framerate:", "usePixiLegacy": "Füge einen Canvas basierten Renderer hinzu, um ältere Browser und Grafikkarten zu unterstützen (Spiele wachsen um ca. 20kb)", - "pixelatedrender": "Image Smoothing hier und im exportierten Projekt deaktivieren (scharfe Pixel beibehalten)" + "pixelatedrender": "Image Smoothing hier und im exportierten Projekt deaktivieren (scharfe Pixel beibehalten)", + "desktopBuilds": "", + "launchMode": "", + "launchModes": { + "maximized": "", + "fullscreen": "", + "windowed": "" + }, + "hideCursor": "" }, "branding": { "heading": "Branding", @@ -208,6 +191,22 @@ "newScriptComment": "Nutzen Sie Skripte um häufige Funktionen zu definieren und Bibliotheken zu importieren", "moveUp": "Bewegen Sie sich nach oben", "moveDown": "Bewegen Sie sich nach unten" + }, + "modules": { + "heading": "" + }, + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } } }, "modules": { @@ -220,12 +219,37 @@ "parameters": "Parameter", "logs2": "Changelog", "settings": "Einstellungen", - "importModules": "Module importieren" + "importModules": "Module importieren", + "dependencies": "", + "optionalDependencies": "", + "enabledModules": "", + "availableModules": "", + "filter": "", + "categories": { + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Erstellen", "import": "Importieren", - "skeletons": "Skelett Animation" + "skeletons": "Skelett Animation", + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Hintergrundfarbe ändern", @@ -260,7 +284,11 @@ "addPoint": "Punkt hinzufügen", "moveCenter": "Achse verschieben", "movePoint": "Punkt verschieben", - "symmetryTool": "Symmetrie-Werkzeug" + "symmetryTool": "Symmetrie-Werkzeug", + "padding": "", + "paddingNotice": "", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Erstellen" @@ -305,7 +333,8 @@ "strokeweight": "Konturstärke:", "testtext": "Test Text 0123 +", "textWrap": "Zeilenumbruch", - "textWrapWidth": "Max Breite:" + "textWrapWidth": "Max Breite:", + "useCustomFont": "" }, "fonts": { "fonts": "Schriften", @@ -316,19 +345,32 @@ "typefacename": "Typeface Name:", "fontweight": "Schriftstärke:", "italic": "Ist kursiv?", - "reimport": "Reimport" + "reimport": "Reimport", + "generateBitmapFont": "", + "bitmapFont": "", + "bitmapFontSize": "", + "bitmapFontLineHeight": "", + "resultingBitmapFontName": "", + "charset": "", + "charsets": { + "punctuation": "", + "basicLatin": "", + "latinExtended": "", + "cyrillic": "", + "greekCoptic": "", + "custom": "", + "allInFont": "" + }, + "customCharsetHint": "" }, "particleEmitters": { "emittersHeading": "Partikel Emitter", "emitterHeading": "Emitter", - "from": "Von:", "to": "Zu:", - "textureHeading": "Textur", "selectTexture": "Auswählen…", "importBuiltin": "Standard importieren…", - "colorAndOpacityHeading": "Farbe und Transparenz", "stepped": "Schrittweise", "steppedColor": "Schrittweise Farbe", @@ -338,29 +380,23 @@ "darken": "Abdunkeln", "lighten": "Aufhellen", "burn": "Nachbelichten", - "scalingHeading": "Skalieren", "scale": "Skalierung:", "minimumSize": "Mindestgröße:", "minimumSizeHint": "Niedrige Werte sorgen für zufälligere Größe der Partikel. Je geringer die Werte, desto stärker der Effekt.", - "velocityHeading": "Geschwindigkeit", "velocity": "Geschwindigkeit:", "minimumSpeed": "Minimale Geschwindigkeit:", "minimumSpeedHint": "Niedrige Werte sorgen für zufälligere Geschwindigkeit der Partikel. Je geringer die Werte, desto langsamer werden die Partikel.", "maxSpeed": "Maximale Geschwindigkeit:", - "gravityHeading": "Gravitation", "gravityNotice": "Sollte der Wert von (0;0) abweichen, wird die Interpolation der Geschwindigkeit deaktiviert. In diesem Fall wirkt der Effekt nur auf den ersten Knoten des Geschwindigkeitsgraphen.", - "directionHeading": "Richtung", "startingDirection": "Startrichtung", "preserveTextureDirection": "Rotation der Textur beibehalten", - "rotationHeading": "Rotation", "rotationSpeed": "Rotationsgeschwindigkeit", "rotationAcceleration": "Rotationsbeschleunigung:", - "spawningHeading": "Erzeugung", "timeBetweenBursts": "Zeit zwischen Erzeugungen:", "spawnAtOnce": "Gleichzeitig erzeugen:", @@ -370,7 +406,6 @@ "emitterLifetime": "Emitter Lebenszeit (sek):", "prewarmDelay": "Vorberechnen / Verzögerung (sek):", "prewarmDelayNotice": "Negative Werte sorgen für eine Vorberechnung der Partikel im Emitter bevor diese angezeigt werden. Dies ist nützlich für langsame Effekte wie Nebel-Partikel die bereits beim Start des Raums sichtbar sein sollen; positive Werte verzögern die Simulation.", - "shapeAndPositioningHeading": "Form und Positionierung", "spawnType": "Form-Typ:", "spawnShapes": { @@ -386,12 +421,15 @@ "starPoints": "Punkte:", "startAngle": "Rotation, (Grad).:", "relativeEmitterPosition": "Rel. Position zu anderen Emittern", - "addEmitter": "Weiteren Emitter hinzufügen", "reset": "Vorschau zurücksetzen", "changeBg": "Hintergrund ändern", "inspectorComplete": "Fertig!", - "alreadyHasAnImportingTexture": "Es existiret bereits eine Textur mit dem Namen $1. Benennen Sie diese um oder löschen Sie sie; Die selbe Textur muss anschließend erneut importiert werden :)" + "alreadyHasAnImportingTexture": "Es existiret bereits eine Textur mit dem Namen $1. Benennen Sie diese um oder löschen Sie sie; Die selbe Textur muss anschließend erneut importiert werden :)", + "showShapeVisualizer": "", + "changeGrid": "", + "newGridSize": "", + "setPreviewTexture": "" }, "types": { "create": "Erstellen" @@ -405,7 +443,8 @@ "draw": "Draw", "learnAboutTypes": "Lernen Sie Types zu programmieren", "name": "Name:", - "step": "On Step" + "step": "On Step", + "visible": "" }, "rooms": { "create": "Neuer Raum", @@ -418,7 +457,10 @@ "parallax": "Parallax (X, Y):", "repeat": "Wiederholen:", "scale": "Skallieren (X, Y):", - "shift": "Verschieben (X, Y):" + "shift": "Verschieben (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Auf andere Ebene verschieben", @@ -461,13 +503,25 @@ "deletetiles": "Tiles löschen ", "movetilestolayer": "Auf Ebene verschieben", "shifttiles": "Tiles verschieben", - "findTileset": "" + "findTileset": "", + "changecopyrotation": "", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Projekt Notizen", "global": "Globale Notizen", "helppages": "Hilfe", - "backToHome": "Zurück zu Doks' Homepage" + "backToHome": "Zurück zu Doks' Homepage", + "modulespages": "" }, "patreon": { "aboutPatrons": "Patrons sind Menschen, die ComigoGames auf Patreon mit einer regelmäßigen Spende unterstützen. Nicht jeder kommt dort von ct.js. Einige nutzen andere Apps von ComigoGames. Tipp: Creators welche Patreon nutzen um für ComigoGames zu spenden erhalten hier einen Link auf ihre Page — Dies ist mein kleiner Beitrag für euch. :)", @@ -504,5 +558,119 @@ "bringt Licht und Hoffnung 🌞", "ist schön und elegant 🎩" ] + }, + "docsPanel": { + "documentation": "", + "reference": "" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "", + "copySystemInfo": "", + "systemInfoWait": "", + "systemInfoDone": "", + "disableAcceleration": "", + "disableBuiltInDebugger": "", + "postAnIssue": "", + "heading": "" + }, + "deploy": { + "exportDesktop": "Desktop Export", + "successZipExport": "Erfolgreich exportiert nach {0}.", + "zipExport": "Als .zip Exportieren" + }, + "latestProjects": { + "recentProjects": "Letzte Projekte" + }, + "settings": { + "language": "Sprache", + "translateToYourLanguage": "Übersetzen Sie ct.js in Ihre Sprache!", + "theme": "Thema", + "themes": { + "Day": "Hell", + "Night": "Dunkel", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "Standard (Iosevka Light)", + "codeFontOldSchool": "Old School", + "codeFontSystem": "System", + "codeFontCustom": "Benutzerdefiniert", + "newFont": "Neue Schrift", + "codeFont": "Schrift für Code", + "codeLigatures": "Ligaturen", + "codeDense": "Kondensiertes Layout", + "heading": "Einstellungen", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Projekt speichern", + "openIncludeFolder": "\"include\" Ordner öffnen", + "openProject": "", + "openExample": "", + "startScreen": "Zum Startbildschirm zurückkehren", + "successZipProject": "Projekt erfolgreich gezippt nach {0}.", + "zipProject": "Projekt als .zip komprimieren" + }, + "meta": { + "license": "Lizenz", + "visitDiscordForGamedevSupport": "", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Texturen", + "launch": "Kompilieren und starten", + "launchHotkeys": "(F5; Alt+F5 zum Öffnen im Standardbrowser)", + "min": "Fenster", + "patrons": "Patrons", + "rooms": "Räume", + "sounds": "Sounds", + "ui": "UI", + "fx": "FX", + "types": "Types", + "restart": "", + "project": "" } } diff --git a/app/data/i18n/Polish.json b/app/data/i18n/Polish.json index e8a34e6f6..725b7a99b 100644 --- a/app/data/i18n/Polish.json +++ b/app/data/i18n/Polish.json @@ -23,9 +23,7 @@ "exit": "Wyjście", "exitconfirm": "Na pewno chcesz wyjść?
Wszystkie niezapisane zmiany zostaną utracone!", "fastimport": "Szybki import", - "language": "Język", "loading": "Ładowanie…", - "translateToYourLanguage": "Przetłumacz ct.js na swój język!", "name": "Nazwa:", "nametaken": "Ta nazwa jest już zajęta", "newname": "Nowa nazwa:", @@ -48,7 +46,15 @@ "yes": "Tak", "zoom": "Powiększenie", "zoomIn": "Powiększanie", - "zoomOut": "Pomniejszanie" + "zoomOut": "Pomniejszanie", + "select": "", + "clear": "", + "filter": "", + "selectDialogue": "", + "search": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "Nowy", @@ -66,7 +72,9 @@ "export": "Eksport", "exportPanel": "Eksportuj Projekt", "firstrunnotice": "Pierwsze uruchomienie dla każdej platformy będzie wolne, ponieważ ct.js będzie pobierać i zapisywać dodatkowe biblioteki wymagane do spakowania gry. Może to zająć trochę czasu, ale następne razy będą nimal natychmiastowe.", - "log": "Log Wiadomości" + "log": "Log Wiadomości", + "windowsCrossBuildWarning": "", + "cannotBuildForMacOnWin": "" }, "intro": { "loading": "Please wait: kittens are gathering speed of light!", @@ -94,52 +102,21 @@ "latest": "Ostatnie projekty", "unableToWriteToFolders": "Ct.js nie mógł znaleźć odpowiedniego miejsca na projekty! Upewnij się, że przechowujesz aplikację ct.js w folderze, do którego masz prawa zapisu.", "twitter": "Kanał na Twitterze", - "discord": "Społeczność na Discordzie" + "discord": "Społeczność na Discordzie", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Licencja Ct.js (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Eksportuj na komputer", - "texture": "Tekstury", - "launch": "Kompiluj i uruchom", - "launchHotkeys": "(F5; Alt+F5 żeby uruchomić w twojej domyślnej przeglądarce)", - "license": "Licencja", - "min": "W oknie", - "patrons": "Patroni", - "recentProjects": "Ostatnie projekty", - "rooms": "Pokoje", - "save": "Zapisz projekt", - "startScreen": "Powróć do ekranu początkowego", - "settings": "Ustawienia", - "sounds": "Dźwięki", - "successZipExport": "Pomyślnie eksportowano do {0}.", - "successZipProject": "Pomyślnie spakowano projekt do {0}.", - "ui": "UI", - "theme": "Motyw", - "themeDay": "Jasny", - "themeNight": "Ciemny", - "types": "Typy", - "zipExport": "Eksportuj na przeglądarkę", - "zipProject": "Spakuj projekt do .zip", - "codeFontDefault": "Domyślny (Iosevka Light)", - "codeFontOldSchool": "Old school", - "codeFontSystem": "System", - "codeFontCustom": "Dostosuj…", - "newFont": "Nowa czcionka:", - "codeFont": "Czcionka dla kodu", - "codeLigatures": "Ligatury", - "codeDense": "Gęsty układ", - "openIncludeFolder": "Otwórz folder \"include\"" - }, "onboarding": { "hoorayHeader": "Wow! Właśnie utworzyłeś projekt!", "nowWhatParagraph": "Co dalej powinniśmy zrobić?", "openSpaceShooterTutorial": "Dowiedz się jak zrobić kosmiczną strzelankę", "openPlatformerTutorial": "Dowiedz się jak zrobić platformówkę", "doNothing": "Pomiń ten ekran", - "showOnboardingCheckbox": "Pokaż ten ekran przy tworzeniu nowego projektu" + "showOnboardingCheckbox": "Pokaż ten ekran przy tworzeniu nowego projektu", + "openJettyCatTutorial": "" }, "settings": { "actions": { @@ -155,7 +132,7 @@ "multiplier": "Mnożnik", "noActionsYet": "Akcje pozwalają deweloperom na nasłuchiwanie licznych metod wejścia jednocześnie i na dynamiczną ich zmianę, wszystko za pomocą jednolitego API. Przeczytaj więcej klikając ikonę dokumentu na górze." }, - "authoring": { + "authoring": { "heading": "Authoring", "author": "Autor:", "site": "Strona domowa:", @@ -163,13 +140,21 @@ "version": "Wersja:", "versionpostfix": "Postfiks:" }, - "rendering": { + "rendering": { "heading": "Opcje renderowania", "framerate": "Klatki na sekundę:", "highDensity": "Wspieraj dużą gęstość pikseli (np. na wyświetlaczach retina)", "maxFPS": "Maksymalna ilość klatek na sekundę:", "usePixiLegacy": "Dodaj szeroko wspierany, bazujący na canvasie renderer żeby wspierać stare przeglądarki i karty graficzne (dodaje ~20kb do twojej gry)", - "pixelatedrender": "Zablokuj wygładzanie obrazu tu i w eksportowanym projekcie (zachowaj ostre piksele)" + "pixelatedrender": "Zablokuj wygładzanie obrazu tu i w eksportowanym projekcie (zachowaj ostre piksele)", + "desktopBuilds": "", + "launchMode": "", + "launchModes": { + "maximized": "", + "fullscreen": "", + "windowed": "" + }, + "hideCursor": "" }, "scripts": { "addNew": "Dodaj nowy skrypt", @@ -178,6 +163,30 @@ "newScriptComment": "Uzyj skryptów do definiowania często używanych funkcji i importowania małych bibliotek", "moveUp": "Przechodzenie w górę", "moveDown": "Przechodzenie w dół" + }, + "branding": { + "heading": "", + "accent": "", + "accentNotice": "", + "icon": "", + "iconNotice": "", + "invertPreloaderScheme": "" + }, + "modules": { + "heading": "" + }, + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } } }, "modules": { @@ -190,12 +199,37 @@ "parameters": "Parametry", "logs2": "Changelog", "settings": "Ustawienia", - "importModules": "Importuj moduły" + "importModules": "Importuj moduły", + "dependencies": "", + "optionalDependencies": "", + "enabledModules": "", + "availableModules": "", + "filter": "", + "categories": { + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Stwórz", "import": "Importuj", - "skeletons": "Animacja szkieletowa" + "skeletons": "Animacja szkieletowa", + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Zmień kolor tła", @@ -230,7 +264,11 @@ "addPoint": "Dodaj punkt", "moveCenter": "Przesuń oś", "movePoint": "Przesuń ten punkt", - "symmetryTool": "Narzędzie symetrii" + "symmetryTool": "Narzędzie symetrii", + "padding": "", + "paddingNotice": "", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Stwórz" @@ -275,7 +313,8 @@ "strokeweight": "Grubość linii:", "testtext": "Testowy tekst 0123 +", "textWrap": "Zawijanie tekstu", - "textWrapWidth": "Maksymalna szerokość:" + "textWrapWidth": "Maksymalna szerokość:", + "useCustomFont": "" }, "fonts": { "fonts": "Czcionki", @@ -286,7 +325,23 @@ "typefacename": "Nazwa typeface:", "fontweight": "Grubość czcionki:", "italic": "Czy jest pochyła?", - "reimport": "Importuj ponownie" + "reimport": "Importuj ponownie", + "generateBitmapFont": "", + "bitmapFont": "", + "bitmapFontSize": "", + "bitmapFontLineHeight": "", + "resultingBitmapFontName": "", + "charset": "", + "charsets": { + "punctuation": "", + "basicLatin": "", + "latinExtended": "", + "cyrillic": "", + "greekCoptic": "", + "custom": "", + "allInFont": "" + }, + "customCharsetHint": "" }, "types": { "create": "Stwórz" @@ -300,7 +355,8 @@ "draw": "Rysuj", "learnAboutTypes": "Dowiedz się więcej o typach kodowania", "name": "Nazwa:", - "step": "Przy kroku" + "step": "Przy kroku", + "visible": "" }, "rooms": { "create": "Dodaj nowy", @@ -313,7 +369,10 @@ "parallax": "Paralaksa (X, Y):", "repeat": "Powtarzanie:", "scale": "Skalowanie (X, Y):", - "shift": "Przesunięcie (X, Y):" + "shift": "Przesunięcie (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Przenieś na nową głębię", @@ -356,13 +415,25 @@ "deletetiles": "Usuń kafelki", "movetilestolayer": "Przenieś do warstwy", "shifttiles": "Przesuń kafelki", - "findTileset": "Znajdź tileset" + "findTileset": "Znajdź tileset", + "changecopyrotation": "", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Notatnik projektu", "global": "Globalny notatnik", "helppages": "Pomoc", - "backToHome": "Wróć na stronę domową dokumentacji" + "backToHome": "Wróć na stronę domową dokumentacji", + "modulespages": "" }, "patreon": { "aboutPatrons": "Patroni to ludzie, którzy okazują swoje wsparcie dla ComigoGames na Patreonie w formie powtarzających się wpłat. Nie każdy tam pochodzi z ct.js; niektórzy używają innych aplikacji od ComigoGames. Porada: jeśli jesteś twórcą i wesprzesz ComigoGames na Patreonie, dostaniesz link na swoją stonę tutaj - to moja mała pomoc dla twoich dzieł :)", @@ -399,5 +470,207 @@ "wprowadza światło i nadzieję 🌞", "jest elegancki i piękny 🎩" ] + }, + "curveEditor": { + "curveLineHint": "", + "dragPointHint": "", + "pointTime": "", + "pointValue": "" + }, + "debuggerToolbar": { + "pause": "", + "resume": "", + "restartGame": "", + "restartRoom": "", + "switchRoom": "", + "toggleDevTools": "", + "screenshot": "", + "enterFullscreen": "", + "exitFullscreen": "", + "links": "", + "openExternal": "", + "close": "" + }, + "particleEmitters": { + "emittersHeading": "", + "emitterHeading": "", + "from": "", + "to": "", + "textureHeading": "", + "selectTexture": "", + "importBuiltin": "", + "colorAndOpacityHeading": "", + "stepped": "", + "steppedColor": "", + "steppedAlpha": "", + "blendMode": "", + "regular": "", + "darken": "", + "lighten": "", + "burn": "", + "scalingHeading": "", + "scale": "", + "minimumSize": "", + "minimumSizeHint": "", + "velocityHeading": "", + "velocity": "", + "minimumSpeed": "", + "minimumSpeedHint": "", + "maxSpeed": "", + "gravityHeading": "", + "gravityNotice": "", + "directionHeading": "", + "startingDirection": "", + "preserveTextureDirection": "", + "rotationHeading": "", + "rotationSpeed": "", + "rotationAcceleration": "", + "spawningHeading": "", + "timeBetweenBursts": "", + "spawnAtOnce": "", + "chanceToSpawn": "", + "maxParticles": "", + "lifetime": "", + "emitterLifetime": "", + "prewarmDelay": "", + "prewarmDelayNotice": "", + "shapeAndPositioningHeading": "", + "spawnType": "", + "spawnShapes": { + "point": "", + "rectangle": "", + "circle": "", + "ring": "", + "star": "" + }, + "width": "", + "height": "", + "radius": "", + "starPoints": "", + "startAngle": "", + "showShapeVisualizer": "", + "relativeEmitterPosition": "", + "addEmitter": "", + "reset": "", + "changeBg": "", + "inspectorComplete": "", + "alreadyHasAnImportingTexture": "", + "changeGrid": "", + "newGridSize": "", + "setPreviewTexture": "" + }, + "docsPanel": { + "documentation": "", + "reference": "" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "", + "copySystemInfo": "", + "systemInfoWait": "", + "systemInfoDone": "", + "disableAcceleration": "", + "disableBuiltInDebugger": "", + "postAnIssue": "", + "heading": "" + }, + "deploy": { + "exportDesktop": "Eksportuj na komputer", + "successZipExport": "Pomyślnie eksportowano do {0}.", + "zipExport": "Eksportuj na przeglądarkę" + }, + "latestProjects": { + "recentProjects": "Ostatnie projekty" + }, + "settings": { + "language": "Język", + "translateToYourLanguage": "Przetłumacz ct.js na swój język!", + "theme": "Motyw", + "themes": { + "Day": "Jasny", + "Night": "Ciemny", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "Domyślny (Iosevka Light)", + "codeFontOldSchool": "Old school", + "codeFontSystem": "System", + "codeFontCustom": "Dostosuj…", + "newFont": "Nowa czcionka:", + "codeFont": "Czcionka dla kodu", + "codeLigatures": "Ligatury", + "codeDense": "Gęsty układ", + "heading": "Ustawienia", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Zapisz projekt", + "openIncludeFolder": "Otwórz folder \"include\"", + "openProject": "", + "openExample": "", + "startScreen": "Powróć do ekranu początkowego", + "successZipProject": "Pomyślnie spakowano projekt do {0}.", + "zipProject": "Spakuj projekt do .zip" + }, + "meta": { + "license": "Licencja", + "visitDiscordForGamedevSupport": "", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Tekstury", + "launch": "Kompiluj i uruchom", + "launchHotkeys": "(F5; Alt+F5 żeby uruchomić w twojej domyślnej przeglądarce)", + "min": "W oknie", + "patrons": "Patroni", + "rooms": "Pokoje", + "sounds": "Dźwięki", + "ui": "UI", + "types": "Typy", + "fx": "", + "restart": "", + "project": "" } } diff --git a/app/data/i18n/Romanian.json b/app/data/i18n/Romanian.json index fa28d0c6e..d08190cb8 100644 --- a/app/data/i18n/Romanian.json +++ b/app/data/i18n/Romanian.json @@ -22,8 +22,6 @@ "exit": "Ieși", "exitconfirm": "Ești sigur că vrei să ieși?
Toate modificările nesalvate se vor pierde!", "fastimport": "Import Rapid", - "language": "Limbă", - "translateToYourLanguage": "Tradu ct.js în limba ta!", "name": "Nume:", "nametaken": "Acest nume este deja în uz", "newname": "Nume nou:", @@ -47,7 +45,16 @@ "contribute": "", "zoom": "Zoom", "zoomIn": "Mărire", - "zoomOut": "Micșorare" + "zoomOut": "Micșorare", + "loading": "", + "select": "", + "clear": "", + "filter": "", + "selectDialogue": "", + "search": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "Nou", @@ -65,7 +72,9 @@ "export": "Exportă", "exportPanel": "Exportă proiectul", "firstrunnotice": "Prima rulare pentru fiecare platformă va fi lentă deoarece ct.js va descărca și salva bibliotecile necesare pentru împachetare. Va dura ceva timp, dar data viitoare va fi aproape instant.", - "log": "Jurnal de mesaje" + "log": "Jurnal de mesaje", + "windowsCrossBuildWarning": "", + "cannotBuildForMacOnWin": "" }, "intro": { "loading": "Vă rugăm așteptați: pisicuțele accelerează la viteza luminii!", @@ -73,7 +82,9 @@ "button": "Crează", "input": "Numele proiectului (litere și cifre)", "text": "Crează un nou proiect", - "nameerr": "Numele proiectului este greșit" + "nameerr": "Numele proiectului este greșit", + "saveProjectHere": "", + "selectProjectFolder": "" }, "recovery": { "message": "

Recuperare

ct.js a găsit un fișier de recuperare. Probabil că proiectul tău nu a fost salvat corect sau ct.js a fost oprit forțat. Iată când au fost modificate ultima dată aceste fișiere:

Fișiere alese: {0} {1}
Fișiere de recuperare: {2} {3}

Ce fișier ar trebui să deschida ct.js?

", @@ -91,42 +102,13 @@ "discord": "Comunitatea pe Discord", "loadingProject": "", "loadingProjectError": "", - "unableToWriteToFolders": "" + "unableToWriteToFolders": "", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Exportă pentru desktop", - "texture": "Texturi", - "launch": "Compilează", - "license": "Licență", - "min": "Windowed", - "recentProjects": "Proiecte recente", - "rooms": "Camere", - "save": "Salvează proiectul", - "startScreen": "Întoarce-te la ecranul de pornire", - "settings": "Setări", - "sounds": "Sunete", - "successZipExport": "Exportat cu succes în {0}.", - "successZipProject": "Proiectul a fost arhivat (zip) cu succes în {0}.", - "ui": "Interfață", - "theme": "Temă", - "themeDay": "Deschisă", - "themeNight": "Întunecată", - "types": "Tipuri", - "zipExport": "Exportă .zip", - "zipProject": "Împachetază proiectul în .zip", - "codeFontDefault": "", - "codeFontOldSchool": "", - "codeFontSystem": "", - "codeFontCustom": "", - "newFont": "", - "codeFont": "", - "codeLigatures": "", - "codeDense": "" - }, "settings": { "actions": { "heading": "Acțiuni și metode de introducere", @@ -152,7 +134,18 @@ "rendering": { "heading": "Opțiuni de randare", "framerate": "Framerate:", - "pixelatedrender": "Dezactivează netezirea imaginii aici și în proiectul exportat (conservă pixelii clari)" + "pixelatedrender": "Dezactivează netezirea imaginii aici și în proiectul exportat (conservă pixelii clari)", + "highDensity": "", + "maxFPS": "", + "usePixiLegacy": "", + "desktopBuilds": "", + "launchMode": "", + "launchModes": { + "maximized": "", + "fullscreen": "", + "windowed": "" + }, + "hideCursor": "" }, "scripts": { "heading": "Script-uri", @@ -161,6 +154,30 @@ "newScriptComment": "Folosește script-uri pentru a defini funcții frecvente și pentru a importa biblioteci mici", "moveUp": "Mută-te în sus.", "moveDown": "Mutare în jos" + }, + "branding": { + "heading": "", + "accent": "", + "accentNotice": "", + "icon": "", + "iconNotice": "", + "invertPreloaderScheme": "" + }, + "modules": { + "heading": "" + }, + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } } }, "modules": { @@ -172,12 +189,38 @@ "methods": "Metode", "parameters": "Parametri", "logs2": "Jurnalul schimbărilor", - "settings": "Setări" + "settings": "Setări", + "dependencies": "", + "optionalDependencies": "", + "importModules": "", + "enabledModules": "", + "availableModules": "", + "filter": "", + "categories": { + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Crează", "import": "Importă", - "skeletons": "Animație scheletică" + "skeletons": "Animație scheletică", + "createType": "", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Schimbă culoarea fundalului", @@ -212,7 +255,11 @@ "addPoint": "Adaugă un punct", "moveCenter": "Mută axa", "movePoint": "Mută punctul", - "symmetryTool": "Instrument de simetrie" + "symmetryTool": "Instrument de simetrie", + "padding": "", + "paddingNotice": "", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Crează" @@ -257,7 +304,8 @@ "strokeweight": "Greutatea liniei:", "testtext": "Test text 0123 +", "textWrap": "Word wrap", - "textWrapWidth": "Lățime maximă:" + "textWrapWidth": "Lățime maximă:", + "useCustomFont": "" }, "fonts": { "fonts": "Font-uri", @@ -268,7 +316,23 @@ "typefacename": "Numele tipului de caractere:", "fontweight": "Greutatea font-ului:", "italic": "Este italic?", - "reimport": "Re-importă" + "reimport": "Re-importă", + "generateBitmapFont": "", + "bitmapFont": "", + "bitmapFontSize": "", + "bitmapFontLineHeight": "", + "resultingBitmapFontName": "", + "charset": "", + "charsets": { + "punctuation": "", + "basicLatin": "", + "latinExtended": "", + "cyrillic": "", + "greekCoptic": "", + "custom": "", + "allInFont": "" + }, + "customCharsetHint": "" }, "types": { "create": "Crează" @@ -282,7 +346,8 @@ "draw": "Desenare", "learnAboutTypes": "Învață despre programarea tipurilor", "name": "Nume:", - "step": "La Fiecare Pas" + "step": "La Fiecare Pas", + "visible": "" }, "rooms": { "create": "Adaugă o nouă cameră", @@ -295,7 +360,10 @@ "parallax": "Paralaxă (X, Y):", "repeat": "Repetare:", "scale": "Scalare (X, Y):", - "shift": "Deplasare (X, Y):" + "shift": "Deplasare (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Mută la o nouă adâncime", @@ -338,12 +406,271 @@ "deletetiles": "Șterge tile-urile", "movetilestolayer": "Mută în layer", "shifttiles": "Deplasează tile-urile", - "findTileset": "" + "findTileset": "", + "changecopyrotation": "", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Carnețelul Proiectului", "global": "Carnețel Global", "helppages": "Ajutor", - "backToHome": "Înapoi la pagina principală a documentației" + "backToHome": "Înapoi la pagina principală a documentației", + "modulespages": "" + }, + "curveEditor": { + "curveLineHint": "", + "dragPointHint": "", + "pointTime": "", + "pointValue": "" + }, + "debuggerToolbar": { + "pause": "", + "resume": "", + "restartGame": "", + "restartRoom": "", + "switchRoom": "", + "toggleDevTools": "", + "screenshot": "", + "enterFullscreen": "", + "exitFullscreen": "", + "links": "", + "openExternal": "", + "close": "" + }, + "onboarding": { + "hoorayHeader": "", + "nowWhatParagraph": "", + "openSpaceShooterTutorial": "", + "openPlatformerTutorial": "", + "openJettyCatTutorial": "", + "doNothing": "", + "showOnboardingCheckbox": "" + }, + "particleEmitters": { + "emittersHeading": "", + "emitterHeading": "", + "from": "", + "to": "", + "textureHeading": "", + "selectTexture": "", + "importBuiltin": "", + "colorAndOpacityHeading": "", + "stepped": "", + "steppedColor": "", + "steppedAlpha": "", + "blendMode": "", + "regular": "", + "darken": "", + "lighten": "", + "burn": "", + "scalingHeading": "", + "scale": "", + "minimumSize": "", + "minimumSizeHint": "", + "velocityHeading": "", + "velocity": "", + "minimumSpeed": "", + "minimumSpeedHint": "", + "maxSpeed": "", + "gravityHeading": "", + "gravityNotice": "", + "directionHeading": "", + "startingDirection": "", + "preserveTextureDirection": "", + "rotationHeading": "", + "rotationSpeed": "", + "rotationAcceleration": "", + "spawningHeading": "", + "timeBetweenBursts": "", + "spawnAtOnce": "", + "chanceToSpawn": "", + "maxParticles": "", + "lifetime": "", + "emitterLifetime": "", + "prewarmDelay": "", + "prewarmDelayNotice": "", + "shapeAndPositioningHeading": "", + "spawnType": "", + "spawnShapes": { + "point": "", + "rectangle": "", + "circle": "", + "ring": "", + "star": "" + }, + "width": "", + "height": "", + "radius": "", + "starPoints": "", + "startAngle": "", + "showShapeVisualizer": "", + "relativeEmitterPosition": "", + "addEmitter": "", + "reset": "", + "changeBg": "", + "inspectorComplete": "", + "alreadyHasAnImportingTexture": "", + "changeGrid": "", + "newGridSize": "", + "setPreviewTexture": "" + }, + "patreon": { + "aboutPatrons": "", + "patronsHeader": "", + "businessShuttles": "", + "noShuttlesYet": "", + "shuttlesDescription": "", + "spacePirates": "", + "noPiratesYet": "", + "piratesDescription": "", + "spaceProgrammers": "", + "programmersDescription": "", + "aspiringAstronauts": "", + "noAstronautsYet": "", + "astronautsDescription": "", + "thankAllPatrons": "", + "becomeAPatron": "", + "aboutFillers": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + "docsPanel": { + "documentation": "", + "reference": "" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "", + "copySystemInfo": "", + "systemInfoWait": "", + "systemInfoDone": "", + "disableAcceleration": "", + "disableBuiltInDebugger": "", + "postAnIssue": "", + "heading": "" + }, + "deploy": { + "exportDesktop": "Exportă pentru desktop", + "successZipExport": "Exportat cu succes în {0}.", + "zipExport": "Exportă .zip" + }, + "latestProjects": { + "recentProjects": "Proiecte recente" + }, + "settings": { + "language": "Limbă", + "translateToYourLanguage": "Tradu ct.js în limba ta!", + "theme": "Temă", + "themes": { + "Day": "Deschisă", + "Night": "Întunecată", + "SpringStream": "", + "LucasDracula": "", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "", + "codeFontOldSchool": "", + "codeFontSystem": "", + "codeFontCustom": "", + "newFont": "", + "codeFont": "", + "codeLigatures": "", + "codeDense": "", + "heading": "Setări", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Salvează proiectul", + "openIncludeFolder": "", + "openProject": "", + "openExample": "", + "startScreen": "Întoarce-te la ecranul de pornire", + "successZipProject": "Proiectul a fost arhivat (zip) cu succes în {0}.", + "zipProject": "Împachetază proiectul în .zip" + }, + "meta": { + "license": "Licență", + "visitDiscordForGamedevSupport": "", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Texturi", + "launch": "Compilează", + "min": "Windowed", + "rooms": "Camere", + "sounds": "Sunete", + "ui": "Interfață", + "types": "Tipuri", + "launchHotkeys": "", + "patrons": "", + "fx": "", + "restart": "", + "project": "" } } diff --git a/app/data/i18n/Russian.json b/app/data/i18n/Russian.json index c0ae87323..214d1a9d0 100644 --- a/app/data/i18n/Russian.json +++ b/app/data/i18n/Russian.json @@ -25,9 +25,7 @@ "exit": "Выход", "exitconfirm": "Вы уверены, что хотите выйти?
Все несохранённые данные будут потеряны!", "fastimport": "Быстрый импорт", - "language": "Язык", "loading": "Загрузка…", - "translateToYourLanguage": "Переведите ct.js на свой язык!", "name": "Название:", "nametaken": "Это имя уже занято", "newname": "Новое имя:", @@ -55,7 +53,8 @@ "zoomOut": "Уменьшить", "filter": "Отфильтровать:", "selectDialogue": "Выбрать…", - "search": "Поиск:" + "search": "Поиск:", + "close": "" }, "colorPicker": { "old": "Старый", @@ -103,64 +102,13 @@ "twitter": "Канал в Twitter", "discord": "Сообщество в Discord", "loadingProjectError": "Не удаётся открыть проект из-за следующей ошибки:", - "unableToWriteToFolders": "Ct.js не удалось найти подходящее место для проектов! Убедитесь, что папка ct.js находится в каталоге, доступном для чтения." + "unableToWriteToFolders": "Ct.js не удалось найти подходящее место для проектов! Убедитесь, что папка ct.js находится в каталоге, доступном для чтения.", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Лицензия Ct.js (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Экспортировать для ПК", - "texture": "Текстуры", - "launch": "Скомпилировать и запустить", - "launchHotkeys": "(F5, или Alt+F5, чтобы запустить в браузере по-умолчанию)", - "license": "Лицензия", - "min": "Переключить полноэкранный режим", - "patrons": "Патроны-покровители", - "recentProjects": "Последние проекты", - "rooms": "Комнаты", - "save": "Сохранить проект", - "startScreen": "К стартовому экрану", - "project": "Проект", - "settings": "Настройки", - "sounds": "Звуки", - "successZipExport": "Успешно экспортировано в {0}.", - "successZipProject": "Проект успешно упакован в {0}.", - "ui": "Интерфейс", - "fx": "Эффекты", - "theme": "Тема", - "themeDay": "Дневная", - "themeNight": "Ночная", - "themeHCBlack": "Высококонтрастная чёрная", - "themeHorizon": "Горизонт", - "themeLucasDracula": "Люкас Дракула", - "themeSpringStream": "Весенний ручей", - "types": "Типы", - "zipExport": "Экспорт в .zip", - "zipProject": "Упаковать проект в .zip", - "codeFontDefault": "По умолчанию (Iosevka Light)", - "codeFontOldSchool": "Старый-добрый", - "codeFontSystem": "Системный", - "codeFontCustom": "Пользовательский…", - "newFont": "Новый шрифт:", - "codeFont": "Шрифт для кода", - "codeLigatures": "Лигатуры", - "codeDense": "Меньшая высота линии", - "openIncludeFolder": "Открыть папку include", - "troubleshooting": "В случае неполадок", - "toggleDevTools": "Открыть девтулзы", - "copySystemInfo": "Скопировать данные о системе", - "systemInfoWait": "Сейчас, собираю данные…", - "systemInfoDone": "Готово!", - "disableAcceleration": "Отключить графическое ускорение (требует перезапуск)", - "disableBuiltInDebugger": "Выключить встроенный отладчик игр", - "visitDiscordForGamedevSupport": "Присоединиться к Discord-серверу для помощи в разработке", - "postAnIssue": "Зайти на GitHub", - "restart": "Перезапустить", - "openProject": "Открыть проект…", - "openExample": "Открыть пример…", - "disableSounds": "Отключить звуки интерфейса" - }, "onboarding": { "hoorayHeader": "Ух-ты! Мы сделали новый проект!", "nowWhatParagraph": "Но что же дальше?", @@ -227,7 +175,19 @@ "modules": { "heading": "Котомоды" }, - "catmodsSettings": "Настройки котомодов" + "catmodsSettings": "Настройки котомодов", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } + } }, "modules": { "author": "Автор котомода", @@ -258,14 +218,18 @@ "integrations": "Интеграции", "tweaks": "Настройки", "networking": "Сеть" - } + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Создать", "import": "Импорт", "skeletons": "Скелетная анимация", "createType": "Создать тип с этой текстурой", - "importFromClipboard": "Импортировать из буфера обмена" + "importFromClipboard": "Импортировать из буфера обмена", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Сменить цвет фона", @@ -459,7 +423,8 @@ "draw": "Прорисовка", "learnAboutTypes": "Кодинг типов", "name": "Имя:", - "step": "Кадр" + "step": "Кадр", + "visible": "" }, "rooms": { "create": "Добавить", @@ -521,7 +486,15 @@ "movetilestolayer": "Переместить в другой слой", "shifttiles": "Сместить плитки", "changecopyrotation": "Повернуть", - "properties": "Свойства" + "properties": "Свойства", + "isUi": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Блокнот проекта", @@ -589,5 +562,115 @@ "docsPanel": { "documentation": "Документация", "reference": "Список методов" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "Открыть девтулзы", + "copySystemInfo": "Скопировать данные о системе", + "systemInfoWait": "Сейчас, собираю данные…", + "systemInfoDone": "Готово!", + "disableAcceleration": "Отключить графическое ускорение (требует перезапуск)", + "disableBuiltInDebugger": "Выключить встроенный отладчик игр", + "postAnIssue": "Зайти на GitHub", + "heading": "В случае неполадок" + }, + "deploy": { + "exportDesktop": "Экспортировать для ПК", + "successZipExport": "Успешно экспортировано в {0}.", + "zipExport": "Экспорт в .zip" + }, + "latestProjects": { + "recentProjects": "Последние проекты" + }, + "settings": { + "theme": "Тема", + "themes": { + "Day": "Дневная", + "Night": "Ночная", + "SpringStream": "Весенний ручей", + "LucasDracula": "Люкас Дракула", + "Horizon": "Горизонт", + "HCBlack": "Высококонтрастная чёрная" + }, + "codeFontDefault": "По умолчанию (Iosevka Light)", + "codeFontOldSchool": "Старый-добрый", + "codeFontSystem": "Системный", + "codeFontCustom": "Пользовательский…", + "newFont": "Новый шрифт:", + "codeFont": "Шрифт для кода", + "codeLigatures": "Лигатуры", + "codeDense": "Меньшая высота линии", + "heading": "Настройки", + "language": "Язык", + "translateToYourLanguage": "Переведите ct.js на свой язык!", + "disableSounds": "Отключить звуки интерфейса", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Сохранить проект", + "openIncludeFolder": "Открыть папку include", + "openProject": "Открыть проект…", + "openExample": "Открыть пример…", + "startScreen": "К стартовому экрану", + "successZipProject": "Проект успешно упакован в {0}.", + "zipProject": "Упаковать проект в .zip" + }, + "meta": { + "license": "Лицензия", + "visitDiscordForGamedevSupport": "Присоединиться к Discord-серверу для помощи в разработке", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Текстуры", + "launch": "Скомпилировать и запустить", + "launchHotkeys": "(F5, или Alt+F5, чтобы запустить в браузере по-умолчанию)", + "min": "Переключить полноэкранный режим", + "patrons": "Патроны-покровители", + "rooms": "Комнаты", + "project": "Проект", + "sounds": "Звуки", + "ui": "Интерфейс", + "fx": "Эффекты", + "types": "Типы", + "restart": "Перезапустить" } } diff --git a/app/data/i18n/Spanish.json b/app/data/i18n/Spanish.json index 350185042..b4a6db7fd 100644 --- a/app/data/i18n/Spanish.json +++ b/app/data/i18n/Spanish.json @@ -22,8 +22,6 @@ "exit": "Salir", "exitconfirm": "¿Está seguro de que desea salir?
¡Todos los cambios no guardados se perderán!", "fastimport": "Importar Rápido", - "language": "Lenguaje", - "translateToYourLanguage": "¡Traduce ct.js a tu idioma!", "name": "Nombre:", "nametaken": "Este nombre ya está tomado", "newname": "Nombre Nuevo:", @@ -51,7 +49,12 @@ "clear": "Limpiar", "loading": "Cargando...", "selectDialogue": "Seleccionar...", - "select": "Seleccionar" + "select": "Seleccionar", + "filter": "", + "search": "", + "close": "", + "couldNotLoadFromClipboard": "", + "pastedFromClipboard": "" }, "colorPicker": { "current": "Nuevo", @@ -99,61 +102,13 @@ "discord": "Comunidad de Discord", "loadingProject": "Cargando el proyecto...", "loadingProjectError": "Este proyecto no se puede abrir debido al siguiente error:", - "unableToWriteToFolders": "¡Ct.js no pudo encontrar un lugar apropiado para tus proyectos! Asegúrece de guardar la aplicación de ct.js en un folder donde tenga permisos para modificar." + "unableToWriteToFolders": "¡Ct.js no pudo encontrar un lugar apropiado para tus proyectos! Asegúrece de guardar la aplicación de ct.js en un folder donde tenga permisos para modificar.", + "examples": "", + "createOrBrowseJunction": "" }, "licensepanel": { "ctjslicense": "Licencia Ct.js (MIT)" }, - "menu": { - "ctIDE": "ct.IDE", - "exportDesktop": "Exportar para escritorio", - "texture": "Texturas", - "launch": "Compilar", - "license": "Licencia", - "min": "Modo Ventana", - "recentProjects": "Proyectos recientes", - "rooms": "Cuartos", - "save": "Guardar proyecto", - "startScreen": "Regresar a la pantalla de inicio", - "settings": "Configuración", - "sounds": "Sonidos", - "successZipExport": "Exportado exitosamente a {0}.", - "successZipProject": "El proyecto se comprimió con éxito en {0}.", - "ui": "UI", - "theme": "Tema", - "themeDay": "Claro", - "themeNight": "Oscuro", - "types": "Tipos", - "zipExport": "Exportar para la web", - "zipProject": "Comprimir proyecto en .zip", - "codeFontDefault": "Predeterminado (Iosevka Light)", - "codeFontOldSchool": "Vieja Escuela", - "codeFontSystem": "Sistema", - "codeFontCustom": "Personalizado...", - "newFont": "Fuente nueva:", - "codeFont": "Fuente para el código", - "codeLigatures": "Ligaduras", - "codeDense": "Diseño Denso", - "launchHotkeys": "(F5; Alt+F5 para ejecutar en el navegador predeterminado)", - "patrons": "Patrons", - "restart": "Reiniciar", - "project": "Proyecto", - "fx": "Effectos", - "themeSpringStream": "Corriente de Primavera", - "themeLucasDracula": "Lucas Dracula", - "openIncludeFolder": "Abrir folder \"incluir\"", - "troubleshooting": "Solución de problemas", - "toggleDevTools": "Activar/Desactivar las herramientas de desarrollador", - "copySystemInfo": "Copiar información del sistema", - "systemInfoWait": "Un momento, Estoy recolectando la información...", - "systemInfoDone": "¡Terminado!", - "disableAcceleration": "Deshabilitar aceleración gráfica (reinicio necesario)", - "disableBuiltInDebugger": "Deshabilitar el depurador integrado", - "visitDiscordForGamedevSupport": "Unete a nuestro servidor de Discord para obtener ayuda", - "postAnIssue": "Reportar un problema en Github...", - "openProject": "Abrir proyecto...", - "openExample": "Abrir un proyecto de ejemplo..." - }, "settings": { "actions": { "heading": "Acciones y métodos de entrada", @@ -189,7 +144,8 @@ "maximized": "Maximizado", "fullscreen": "Pantalla completa", "windowed": "Ventana" - } + }, + "hideCursor": "" }, "scripts": { "heading": "Scripts personalizados", @@ -206,6 +162,22 @@ "icon": "Icono del juego:", "iconNotice": "Deberia ser un cuadro, una textura de un fotograma que sea por lo menos 256x256px de tamaño.", "invertPreloaderScheme": "Invertir el color del esquema del precargador" + }, + "modules": { + "heading": "" + }, + "catmodsSettings": "", + "export": { + "heading": "", + "functionWrap": "", + "codeModifier": "", + "obfuscateWarning": "", + "codeModifierAndWrapNote": "", + "codeModifiers": { + "none": "", + "minify": "", + "obfuscate": "" + } } }, "modules": { @@ -220,13 +192,35 @@ "settings": "Configuración", "dependencies": "Dependencias:", "optionalDependencies": "Dependencias opcionales:", - "importModules": "Módulos a Importar" + "importModules": "Módulos a Importar", + "enabledModules": "", + "availableModules": "", + "filter": "", + "categories": { + "customization": "", + "utilities": "", + "media": "", + "misc": "", + "desktop": "", + "motionPlanning": "", + "inputs": "", + "fx": "", + "mobile": "", + "integrations": "", + "tweaks": "", + "networking": "" + }, + "preview": "", + "previewTooltip": "", + "deprecatedTooltip": "" }, "texture": { "create": "Crear", "import": "Importar", "skeletons": "Animacion de esqueleto", - "createType": "Crear tipo de esta" + "createType": "Crear tipo de esta", + "importFromClipboard": "", + "generatePlaceholder": "" }, "textureview": { "bgcolor": "Cambiar color de fondo", @@ -263,7 +257,9 @@ "movePoint": "Mueve este punto", "symmetryTool": "Herramienta de simetría", "padding": "Padding:", - "paddingNotice": "Esto afecta la forma en que la textura es exportada: añade pixeles duplicados en las orillas y previene errores de colado en texturas tile y agrandadas. El valor predeterminado usualmente es suficiente, pero, si se encogen las texturas lo suficiente, el colado puede reaparecer. Incrementa este valor si la textura tiene errores durante el juego." + "paddingNotice": "Esto afecta la forma en que la textura es exportada: añade pixeles duplicados en las orillas y previene errores de colado en texturas tile y agrandadas. El valor predeterminado usualmente es suficiente, pero, si se encogen las texturas lo suficiente, el colado puede reaparecer. Incrementa este valor si la textura tiene errores durante el juego.", + "updateFromClipboard": "", + "previewAnimationNotice": "" }, "sounds": { "create": "Crear" @@ -308,7 +304,8 @@ "strokeweight": "Grosor de línea:", "testtext": "Texto de prueba 0123 +", "textWrap": "Ajuste de línea", - "textWrapWidth": "Anchura máxima:" + "textWrapWidth": "Anchura máxima:", + "useCustomFont": "" }, "fonts": { "fonts": "Fuentes", @@ -349,7 +346,8 @@ "draw": "Dibujar", "learnAboutTypes": "Aprenda sobre los tipos de código", "name": "Nombre:", - "step": "En cada paso" + "step": "En cada paso", + "visible": "" }, "rooms": { "create": "Añadir nuevo", @@ -362,7 +360,10 @@ "parallax": "Paralaje (X, Y):", "repeat": "Repetir:", "scale": "Escala (X, Y):", - "shift": "Cambio (X, Y):" + "shift": "Cambio (X, Y):", + "notBackgroundTextureWarning": "", + "fixBackground": "", + "dismissWarning": "" }, "roomtiles": { "moveTileLayer": "Mover a una nueva profundidad", @@ -406,13 +407,24 @@ "movetilestolayer": "Mover a capa", "shifttiles": "Cambiar tiles", "findTileset": "Encontrar tileset", - "changecopyrotation": "Rotar" + "changecopyrotation": "Rotar", + "properties": "", + "isUi": "", + "backgroundColor": "", + "sortHorizontally": "", + "sortVertically": "", + "copyProperties": { + "position": "", + "rotation": "", + "scale": "" + } }, "notepad": { "local": "Bloc de notas del proyecto", "global": "Bloc de notas global", "helppages": "Ayuda", - "backToHome": "Volver a la página de inicio" + "backToHome": "Volver a la página de inicio", + "modulespages": "" }, "curveEditor": { "curveLineHint": "Puede hacer click en la curva para añadir un punto", @@ -546,5 +558,119 @@ "trae luz y esperanza 🌞", "es elegante y hermos@ 🎩" ] + }, + "docsPanel": { + "documentation": "", + "reference": "" + }, + "extensionsEditor": { + "noEntries": "", + "addRow": "" + }, + "textureGenerator": { + "name": "", + "width": "", + "height": "", + "color": "", + "label": "", + "optional": "", + "createAndClose": "", + "createAndContinue": "", + "scalingAtX4": "", + "generationSuccessMessage": "", + "filler": "", + "fillerNone": "", + "fillerCross": "", + "fillerLabel": "" + }, + "textureInput": { + "jumpToTexture": "", + "changeTexture": "" + }, + "writableFolderPrompt": { + "headerSelectFolderForData": "", + "paragraphCouldNotPickDirectory": "", + "paragraphDirectoryDirections": "", + "selectFolder": "" + }, + "writableFolderSelector": { + "folderDoesNotExist": "", + "notADirectory": "", + "folderNotWritable": "", + "complete": "" + }, + "mainMenu": { + "troubleshooting": { + "toggleDevTools": "Activar/Desactivar las herramientas de desarrollador", + "copySystemInfo": "Copiar información del sistema", + "systemInfoWait": "Un momento, Estoy recolectando la información...", + "systemInfoDone": "¡Terminado!", + "disableAcceleration": "Deshabilitar aceleración gráfica (reinicio necesario)", + "disableBuiltInDebugger": "Deshabilitar el depurador integrado", + "postAnIssue": "Reportar un problema en Github...", + "heading": "Solución de problemas" + }, + "deploy": { + "exportDesktop": "Exportar para escritorio", + "successZipExport": "Exportado exitosamente a {0}.", + "zipExport": "Exportar para la web" + }, + "latestProjects": { + "recentProjects": "Proyectos recientes" + }, + "settings": { + "heading": "Configuración", + "language": "Lenguaje", + "translateToYourLanguage": "¡Traduce ct.js a tu idioma!", + "theme": "Tema", + "themes": { + "Day": "Claro", + "Night": "Oscuro", + "SpringStream": "Corriente de Primavera", + "LucasDracula": "Lucas Dracula", + "Horizon": "", + "HCBlack": "" + }, + "codeFontDefault": "Predeterminado (Iosevka Light)", + "codeFontOldSchool": "Vieja Escuela", + "codeFontSystem": "Sistema", + "codeFontCustom": "Personalizado...", + "newFont": "Fuente nueva:", + "codeFont": "Fuente para el código", + "codeLigatures": "Ligaduras", + "codeDense": "Diseño Denso", + "disableSounds": "", + "changeDataFolder": "", + "forceProductionForDebug": "" + }, + "project": { + "save": "Guardar proyecto", + "openIncludeFolder": "Abrir folder \"incluir\"", + "openProject": "Abrir proyecto...", + "openExample": "Abrir un proyecto de ejemplo...", + "startScreen": "Regresar a la pantalla de inicio", + "successZipProject": "El proyecto se comprimió con éxito en {0}.", + "zipProject": "Comprimir proyecto en .zip" + }, + "meta": { + "license": "Licencia", + "visitDiscordForGamedevSupport": "Unete a nuestro servidor de Discord para obtener ayuda", + "openIconList": "" + } + }, + "appView": { + "ctIDE": "ct.IDE", + "texture": "Texturas", + "launch": "Compilar", + "min": "Modo Ventana", + "rooms": "Cuartos", + "sounds": "Sonidos", + "ui": "UI", + "types": "Tipos", + "launchHotkeys": "(F5; Alt+F5 para ejecutar en el navegador predeterminado)", + "patrons": "Patrons", + "restart": "Reiniciar", + "project": "Proyecto", + "fx": "Effectos" } -} \ No newline at end of file +} diff --git a/app/data/icons.json b/app/data/icons.json index 4b97f5ae0..9dae67177 100644 --- a/app/data/icons.json +++ b/app/data/icons.json @@ -1 +1 @@ -["airplay","alert-circle","alert-triangle","align-center","align-justify","align-left","align-right","apple","arrow-down","arrow-up","book-open","camera","check","chevron-down","chevron-left","chevron-right","chevron-up","clipboard","clock","code","coin","copy","crosshair","ctmod","delete","discord","download","dragger-vertical","droplet","edit-2","edit","external-link","eye-off","eye","file-text","film","folder-plus","folder","font","github","globe","grid","hash","headphones","heart","help-circle","home","image","info","itch-dot-io","jettycat","layout-horizontal","layout-vertical","life-buoy","link","linux","list","loader","map-pin","map","maximize-2","maximize","menu","minimize-2","minus","monitor","move","package","patreon","pause","platformer","play","plus-circle","plus","refresh-ccw","refresh-cw","room-reload","room-switch","room","rotate-cw","save","search","settings","share-2","shuffle","skip-back","skip-forward","slash","sliders","smartphone","sort-alphabetically","sort-horizontal","sort-numerically","sort-vertical","space-shooter","sparkles","sun","telegram","terminal","texture","tool","trash","tv","twitter","type","ui","upload-cloud","upload","user","users","windows","x","zap","zoom-in","zoom-out"] +["airplay","alert-circle","alert-triangle","align-center","align-justify","align-left","align-right","apple","arrow-down","arrow-right","arrow-up","book-open","camera","check-square","check","chevron-down","chevron-left","chevron-right","chevron-up","clipboard","clock","code","coin","copy","crosshair","ctmod","delete","discord","download","dragger-vertical","droplet","edit-2","edit","external-link","eye-off","eye","file-text","film","folder-plus","folder","font","github","globe-alt","globe","grid","hash","headphones","heart","help-circle","home","image","info","itch-dot-io","jettycat","layout-horizontal","layout-vertical","life-buoy","link","linux","list","loader","map-pin","map","maximize-2","maximize","menu","minimize-2","minus","monitor","move","package","patreon","pause","platformer","play","plus-circle","plus","refresh-ccw","refresh-cw","room-reload","room-switch","room","rotate-cw","save","search","settings","share-2","shuffle","skip-back","skip-forward","slash","sliders","smartphone","sort-alphabetically","sort-horizontal","sort-numerically","sort-vertical","space-shooter","sparkles","square","sun","telegram","terminal","texture","tool","translate","trash","tv","twitter","type","ui","upload-cloud","upload","user","users","windows","x","zap","zoom-in","zoom-out"] diff --git a/app/package-lock.json b/app/package-lock.json index 57c131bbf..bf6c54c26 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -3997,7 +3997,7 @@ }, "xmlbuilder": { "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", + "resolved": "http://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, "xmldom": { diff --git a/node_requires/i18n/index.js b/node_requires/i18n/index.js index a628a6087..efc50100e 100644 --- a/node_requires/i18n/index.js +++ b/node_requires/i18n/index.js @@ -3,20 +3,20 @@ const path = require('path'), fs = require('fs-extra'); const referenceLanguage = require(path.join(i18nDir, 'English.json')); -const recursiveCountRemainingFields = node => { +const countRemainingFields = node => { if (typeof node === 'string') { return 1; } let counted = 0; for (const i in node) { - counted += recursiveCountRemainingFields(node[i]); + counted += countRemainingFields(node[i]); } return counted; }; // Recursively counts keys in English.json, translated keys, // and collects paths to untranslated and excess keys -const recursiveCheck = function(partial, langNode, referenceNode) { +const recursiveCheck = function recursiveCheck(partial, langNode, referenceNode) { const untranslated = [], excess = []; let counted = 0, @@ -25,12 +25,12 @@ const recursiveCheck = function(partial, langNode, referenceNode) { if (typeof referenceNode[i] === 'string') { needed++; if (!(i in langNode) || langNode[i].trim() === '') { - untranslated.push(partial? `${partial}.${i}` : i); + untranslated.push(partial ? `${partial}.${i}` : i); } else { counted++; } } else if (i in langNode) { - const subresults = recursiveCheck(partial? `${partial}.${i}` : i, langNode[i], referenceNode[i]); + const subresults = recursiveCheck(partial ? `${partial}.${i}` : i, langNode[i], referenceNode[i]); if (subresults.untranslated.length) { untranslated.push(...subresults.untranslated); } @@ -40,15 +40,15 @@ const recursiveCheck = function(partial, langNode, referenceNode) { counted += subresults.counted; needed += subresults.needed; } else { - untranslated.push(partial? `${partial}.${i}` : i); - needed += recursiveCountRemainingFields(referenceNode[i]); + untranslated.push(partial ? `${partial}.${i}` : i); + needed += countRemainingFields(referenceNode[i]); } } // Reverse check to catch excess keys // that are not present in English.json but are in another language file for (const i in langNode) { if (!(i in referenceNode) || (typeof referenceNode[i] === 'string' && referenceNode[i].trim() === '')) { - excess.push(partial? `${partial}.${i}` : i); + excess.push(partial ? `${partial}.${i}` : i); } } return { @@ -65,8 +65,22 @@ const breakpoints = [ [70, '😕 A decent coverage, but it could be better!'], [50, '👎 Meh'], [0, '🆘 Someone help, please!'] +], shortBreakpoints = [ + [95, '👏'], + [85, '✅'], + [70, '😕'], + [50, '👎'], + [0, '🆘'] ]; -const getSuitableBreakpoint = percent => { +const getSuitableBreakpoint = (percent, short) => { + if (short) { + for (const point of shortBreakpoints) { + if (percent >= point[0]) { + return point[1]; + } + } + return 'WTF?'; + } for (const point of breakpoints) { if (percent >= point[0]) { return point[1]; @@ -80,8 +94,7 @@ module.exports = async () => { path.extname(file) === '.json' && file !== 'Comments.json' && file !== 'English.json' && - file !== 'Debug.json' - ); + file !== 'Debug.json'); const report = { untranslated: {}, excess: {}, @@ -94,25 +107,36 @@ module.exports = async () => { report.excess[lang] = result.excess; report.stats[lang] = Math.floor(result.counted / result.needed * 100); } - const reportText = + let reportText = `\nTranslation report: ===================\n\n` + fileNames.map(lang => -`Translation file ${lang} + `Translation file ${lang} -----------------${'-'.repeat(lang.length)}\n` + // eslint-disable-next-line no-nested-ternary `Coverage: ${report.stats[lang]}% ${getSuitableBreakpoint(report.stats[lang])} Not translated: ${report.untranslated[lang].length}` + -(report.untranslated[lang].length > 0? '\n'+report.untranslated[lang].map(key => ` ${key}`).join('\n') : '') + -`\nExcess: ${report.excess[lang].length} ${report.excess[lang].length? '⚠️ '.repeat(Math.min(10, report.excess[lang].length)) : '✅'}\n` + -(report.excess[lang].length > 0? report.excess[lang].map(key => ` ${key}`).join('\n') : '') +(report.untranslated[lang].length > 0 ? '\n' + report.untranslated[lang].map(key => ` ${key}`).join('\n') : '') + +`\nExcess: ${report.excess[lang].length} ${report.excess[lang].length ? '⚠️ '.repeat(Math.min(10, report.excess[lang].length)) : '✅'}\n` + +(report.excess[lang].length > 0 ? report.excess[lang].map(key => ` ${key}`).join('\n') : '')).join('\n\n'); -).join('\n\n'); + reportText += '\n\nStats:\n'; + for (const lang in report.stats) { + reportText += ` ${getSuitableBreakpoint(report.stats[lang], true)} ${report.stats[lang]}% ${lang}\n`; + } + + reportText += '\n\nProblematic files:\n'; + var hasProblematic = false; for (const lang in report.excess) { if (report.excess[lang].length) { - throw new Error(reportText); + hasProblematic = true; + reportText += ` ${lang}\n`; } } + if (hasProblematic) { + throw new Error(reportText); + } + reportText += ' ✅ None'; return reportText; }; diff --git a/src/examples/DungeonCrawler_tutorial.ict b/src/examples/DungeonCrawler_tutorial.ict index 75e7fe4e1..d68231c55 100644 --- a/src/examples/DungeonCrawler_tutorial.ict +++ b/src/examples/DungeonCrawler_tutorial.ict @@ -1,4 +1,4 @@ -ctjsVersion: 1.4.2 +ctjsVersion: 1.5.0 notes: /* empty */ libs: fittoscreen: diff --git a/src/examples/catformer/img/i2.png_prev.png b/src/examples/catformer/img/i2.png_prev.png index f961f3878..06a8df189 100644 Binary files a/src/examples/catformer/img/i2.png_prev.png and b/src/examples/catformer/img/i2.png_prev.png differ diff --git a/src/icons/check-square.svg b/src/icons/check-square.svg new file mode 100644 index 000000000..72ab7a806 --- /dev/null +++ b/src/icons/check-square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/globe-alt.svg b/src/icons/globe-alt.svg new file mode 100644 index 000000000..55f785b77 --- /dev/null +++ b/src/icons/globe-alt.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/icons/square.svg b/src/icons/square.svg new file mode 100644 index 000000000..6eabc77db --- /dev/null +++ b/src/icons/square.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/icons/translate.svg b/src/icons/translate.svg new file mode 100644 index 000000000..c2ed7b96c --- /dev/null +++ b/src/icons/translate.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/node_requires/themes/index.ts b/src/node_requires/themes/index.ts index b34da56ff..18e562971 100644 --- a/src/node_requires/themes/index.ts +++ b/src/node_requires/themes/index.ts @@ -41,7 +41,7 @@ const mod = { const theme = { name, get translated() { - return (window as any).languageJSON.menu[`theme${name}`] || name; + return (window as any).languageJSON.mainMenu.settings.themes[name] || name; }, monacoTheme, css diff --git a/src/riotTags/app-view.tag b/src/riotTags/app-view.tag new file mode 100644 index 000000000..1a6542811 --- /dev/null +++ b/src/riotTags/app-view.tag @@ -0,0 +1,188 @@ +app-view.flexcol + nav.nogrow.flexrow(if="{global.currentProject}") + ul#app.nav.tabs + li.it30#ctlogo(onclick="{changeTab('menu')}" title="{voc.ctIDE}" class="{active: tab === 'menu'}") + svg.feather.nmr + use(xlink:href="data/icons.svg#menu") + li.it30(onclick="{changeTab('patrons')}" title="{voc.patrons}" class="{active: tab === 'patrons'}") + svg.feather + use(xlink:href="data/icons.svg#heart") + li.it30.nbr(onclick="{saveProject}" title="{vocGlob.save} (Control+S)" data-hotkey="Control+s") + svg.feather + use(xlink:href="data/icons.svg#save") + + ul#mainnav.nav.tabs + li.nbl.it30(onclick="{runProject}" class="{active: tab === 'debug'}" title="{voc.launch} {voc.launchHotkeys}" data-hotkey="F5") + svg.feather.rotateccw(show="{exportingProject}") + use(xlink:href="data/icons.svg#refresh-ccw") + svg.feather(hide="{exportingProject}") + use(xlink:href="data/icons.svg#play") + span(if="{tab !== 'debug'}") {voc.launch} + span(if="{tab === 'debug'}") {voc.restart} + li(onclick="{changeTab('project')}" class="{active: tab === 'project'}" data-hotkey="Control+1" title="Control+1") + svg.feather + use(xlink:href="data/icons.svg#sliders") + span {voc.project} + li(onclick="{changeTab('textures')}" class="{active: tab === 'textures'}" data-hotkey="Control+2" title="Control+2") + svg.feather + use(xlink:href="data/icons.svg#texture") + span {voc.texture} + li(onclick="{changeTab('ui')}" class="{active: tab === 'ui'}" data-hotkey="Control+3" title="Control+3") + svg.feather + use(xlink:href="data/icons.svg#ui") + span {voc.ui} + li(onclick="{changeTab('fx')}" class="{active: tab === 'fx'}" data-hotkey="Control+4" title="Control+4") + svg.feather + use(xlink:href="data/icons.svg#sparkles") + span {voc.fx} + li(onclick="{changeTab('sounds')}" class="{active: tab === 'sounds'}" data-hotkey="Control+5" title="Control+5") + svg.feather + use(xlink:href="data/icons.svg#headphones") + span {voc.sounds} + li(onclick="{changeTab('types')}" class="{active: tab === 'types'}" data-hotkey="Control+6" title="Control+6") + svg.feather + use(xlink:href="data/icons.svg#type") + span {voc.types} + li(onclick="{changeTab('rooms')}" class="{active: tab === 'rooms'}" data-hotkey="Control+7" title="Control+7") + svg.feather + use(xlink:href="data/icons.svg#room") + span {voc.rooms} + div.flexitem.relative(if="{global.currentProject}") + main-menu(show="{tab === 'menu'}") + debugger-screen-embedded(if="{tab === 'debug'}" params="{debugParams}" data-hotkey-scope="play" ref="debugger") + project-settings(show="{tab === 'project'}" data-hotkey-scope="project") + textures-panel(show="{tab === 'textures'}" data-hotkey-scope="textures") + ui-panel(show="{tab === 'ui'}" data-hotkey-scope="ui") + fx-panel(show="{tab === 'fx'}" data-hotkey-scope="fx") + sounds-panel(show="{tab === 'sounds'}" data-hotkey-scope="sounds") + types-panel(show="{tab === 'types'}" data-hotkey-scope="types") + rooms-panel(show="{tab === 'rooms'}" data-hotkey-scope="rooms") + patreon-screen(if="{tab === 'patrons'}" data-hotkey-scope="patrons") + new-project-onboarding(if="{sessionStorage.showOnboarding && localStorage.showOnboarding !== 'off'}") + script. + const fs = require('fs-extra'); + + this.namespace = 'appView'; + this.mixin(window.riotVoc); + + this.tab = 'project'; + this.changeTab = tab => () => { + this.tab = tab; + window.hotkeys.cleanScope(); + window.hotkeys.push(tab); + window.signals.trigger('globalTabChanged', tab); + window.signals.trigger(`${tab}Focus`); + }; + this.changeTab(this.tab)(); + + const assetListener = asset => { + const [assetType] = asset.split('/'); + this.changeTab(assetType)(); + this.update(); + }; + window.orders.on('openAsset', assetListener); + this.on('unmount', () => { + window.orders.off('openAsset', assetListener); + }); + + this.saveProject = async () => { + try { + const fs = require('fs-extra'); + const YAML = require('js-yaml'); + const projectYAML = YAML.dump(global.currentProject); + await fs.outputFile(global.projdir + '.ict', projectYAML); + this.saveRecoveryDebounce(); + fs.remove(global.projdir + '.ict.recovery') + .catch(console.error); + // TODO: glob.modified = false; + alertify.success(window.languageJSON.common.savedcomm, 'success', 3000); + } catch (e) { + alertify.error(e); + } + }; + this.saveRecovery = () => { + if (global.currentProject) { + const YAML = require('js-yaml'); + const recoveryYAML = YAML.dump(global.currentProject); + fs.outputFile(global.projdir + '.ict.recovery', recoveryYAML); + } + this.saveRecoveryDebounce(); + }; + this.saveRecoveryDebounce = window.debounce(this.saveRecovery, 1000 * 60 * 5); + window.signals.on('saveProject', this.saveProject); + this.on('unmount', () => { + window.signals.off('saveProject', this.saveProject); + }); + this.saveRecoveryDebounce(); + + const {getExportDir} = require('./data/node_requires/platformUtils'); + // Run a local server for ct.js games + let fileServer; + if (!this.debugServerStarted) { + getExportDir().then(dir => { + const fileServerSettings = { + public: dir, + cleanUrls: true + }; + const handler = require('serve-handler'); + fileServer = require('http').createServer((request, response) => + handler(request, response, fileServerSettings)); + fileServer.listen(0, () => { + // eslint-disable-next-line no-console + console.info(`[ct.debugger] Running dev server at http://localhost:${fileServer.address().port}`); + }); + this.debugServerStarted = true; + }); + } + + this.runProject = () => { + document.body.style.cursor = 'progress'; + this.exportingProject = true; + this.update(); + const runCtExport = require('./data/node_requires/exporter'); + runCtExport(global.currentProject, global.projdir) + .then(() => { + if (localStorage.disableBuiltInDebugger === 'yes') { + // Open in default browser + nw.Shell.openExternal(`http://localhost:${fileServer.address().port}/`); + } else if (this.tab === 'debug') { + // Restart the game as we already have the tab opened + this.refs.debugger.restartGame(); + } else { + // Open the debugger as usual + this.tab = 'debug'; + this.debugParams = { + title: global.currentProject.settings.authoring.title, + link: `http://localhost:${fileServer.address().port}/` + }; + } + }) + .catch(e => { + window.alertify.error(e); + console.error(e); + }) + .finally(() => { + document.body.style.cursor = ''; + this.exportingProject = false; + this.update(); + }); + }; + this.runProjectAlt = () => { + const runCtExport = require('./data/node_requires/exporter'); + runCtExport(global.currentProject, global.projdir) + .then(() => { + nw.Shell.openExternal(`http://localhost:${fileServer.address().port}/`); + }); + }; + window.hotkeys.on('Alt+F5', this.runProjectAlt); + this.on('unmount', () => { + window.hotkeys.off('Alt+F5', this.runProjectAlt); + }); + + this.toggleFullscreen = function toggleFullscreen() { + nw.Window.get().toggleFullscreen(); + }; + window.hotkeys.on('F11', this.toggleFullscreen); + this.on('unmount', () => { + window.hotkeys.off('F11', this.toggleFullscreen); + }); diff --git a/src/riotTags/export-panel.tag b/src/riotTags/main-menu/export-panel.tag similarity index 97% rename from src/riotTags/export-panel.tag rename to src/riotTags/main-menu/export-panel.tag index 4da9abe0b..b7e1f26dc 100644 --- a/src/riotTags/export-panel.tag +++ b/src/riotTags/main-menu/export-panel.tag @@ -36,7 +36,7 @@ export-panel div(each="{text in log}") {text.toString()} .flexfix-footer .flexrow - button(onclick="{closeExporter}") {voc.hide} + button(onclick="{opts.onclose}") {voc.hide} button(onclick="{export}") span.inlineblock.rotateccw(if="{working}") svg.feather @@ -56,11 +56,6 @@ export-panel const projSettings = global.currentProject.settings; this.projSettings = global.currentProject.settings; - - this.closeExporter = function closeExporter() { - this.parent.showExporter = false; - this.parent.update(); - }; const bakeIcons = async exportDir => { const path = require('path'), fs = require('fs-extra'); diff --git a/src/riotTags/main-menu/icon-panel.tag b/src/riotTags/main-menu/icon-panel.tag new file mode 100644 index 000000000..920fe56c7 --- /dev/null +++ b/src/riotTags/main-menu/icon-panel.tag @@ -0,0 +1,28 @@ +icon-panel.view.pad + .toright + button(onclick="{opts.onclose}") {vocGlob.close} + .clear + ul.cards + li( + each="{icon in iconList}" + onclick="{copy(icon)}" + no-reorder + ) + span {icon} + svg.feather + use(xlink:href="data/icons.svg#{icon}") + script. + this.namespace = 'common'; + this.mixin(window.riotVoc); + + const fs = require('fs-extra'); + fs.readJSON('./data/icons.json') + .then(json => { + this.iconList = json; + this.update(); + }); + + this.copy = string => () => { + nw.Clipboard.get().set(string); + alertify.success('Copied!'); + }; \ No newline at end of file diff --git a/src/riotTags/license-panel.tag b/src/riotTags/main-menu/license-panel.tag similarity index 99% rename from src/riotTags/license-panel.tag rename to src/riotTags/main-menu/license-panel.tag index 2a9dc525f..3136ddb69 100644 --- a/src/riotTags/license-panel.tag +++ b/src/riotTags/main-menu/license-panel.tag @@ -1,6 +1,6 @@ license-panel.modal.pad .toright(title="{vocGlob.close}") - span(onclick="{closeModal}") + span(onclick="{opts.onclose}") svg.feather use(xlink:href="data/icons.svg#x") h1 {voc.ctjslicense} diff --git a/src/riotTags/main-menu/main-menu-deploy.tag b/src/riotTags/main-menu/main-menu-deploy.tag new file mode 100644 index 000000000..f1bbde3db --- /dev/null +++ b/src/riotTags/main-menu/main-menu-deploy.tag @@ -0,0 +1,55 @@ +main-menu-deploy + h1 {voc.heading} + ul.aMenu + li(onclick="{exportForWeb}") + svg.feather + use(xlink:href="data/icons.svg#globe-alt") + span {voc.zipExport} + li(onclick="{toggleExporter}") + svg.feather + use(xlink:href="data/icons.svg#package") + span {voc.exportDesktop} + export-panel(show="{showExporter}" onclose="{hideExporter}") + script. + this.namespace = 'mainMenu.deploy'; + this.mixin(window.riotVoc); + + this.exportForWeb = async () => { + const fs = require('fs-extra'), + path = require('path'); + const {getBuildDir, getExportDir} = require('./data/node_requires/platformUtils'); + const buildFolder = await getBuildDir(); + const runCtExport = require('./data/node_requires/exporter'); + const exportFile = path.join( + buildFolder, + `${global.currentProject.settings.authoring.title || 'ct.js game'}.zip` + ); + const inDir = await getExportDir(); + await fs.remove(exportFile); + runCtExport(global.currentProject, global.projdir, true) + .then(() => { + const archiver = require('archiver'); + const archive = archiver('zip'), + output = fs.createWriteStream(exportFile); + + output.on('close', () => { + nw.Shell.showItemInFolder(exportFile); + alertify.success(this.voc.successZipExport.replace('{0}', exportFile)); + }); + + archive.pipe(output); + archive.directory(inDir, false); + archive.finalize(); + }) + .catch(alertify.error); + }; + + this.showExporter = false; + this.toggleExporter = () => { + this.showExporter = !this.showExporter; + this.update(); + }; + this.hideExporter = () => { + this.showExporter = false; + this.update(); + }; diff --git a/src/riotTags/main-menu/main-menu-latest-projects.tag b/src/riotTags/main-menu/main-menu-latest-projects.tag new file mode 100644 index 000000000..29d5e21a9 --- /dev/null +++ b/src/riotTags/main-menu/main-menu-latest-projects.tag @@ -0,0 +1,28 @@ +main-menu-latest-projects + h1 {voc.recentProjects} + ul.aMenu + li(each="{project in latestProjects}" title="{project}" onclick="{() => loadLatestProject(project)}") + span {project} + script. + this.namespace = 'mainMenu.latestProjects'; + this.mixin(window.riotVoc); + + this.refreshLatestProjects = function refreshLatestProjects() { + if (('lastProjects' in localStorage) && + (localStorage.lastProjects !== '')) { + this.latestProjects = localStorage.lastProjects.split(';'); + this.latestProjects.length = Math.min(this.latestProjects.length, 10); + } else { + this.latestProjects = []; + } + }; + this.refreshLatestProjects(); + + this.loadLatestProject = projPath => { + alertify.confirm(window.languageJSON.common.reallyexit, e => { + if (e) { + window.signals.trigger('resetAll'); + window.loadProject(projPath); + } + }); + }; diff --git a/src/riotTags/main-menu/main-menu-meta.tag b/src/riotTags/main-menu/main-menu-meta.tag new file mode 100644 index 000000000..742b46e42 --- /dev/null +++ b/src/riotTags/main-menu/main-menu-meta.tag @@ -0,0 +1,54 @@ +main-menu-meta + h1 {voc.heading} + ul.aMenu + li(onclick="{() => nw.Shell.openExternal('https://www.patreon.com/comigo')}") + svg.feather + use(xlink:href="data/icons.svg#heart") + span {vocGlob.donate} + li(onclick="{() => nw.Shell.openExternal('https://github.com/ct-js/ct-js')}") + svg.feather + use(xlink:href="data/icons.svg#code") + span {vocGlob.contribute} + li(onclick="{() => nw.Shell.openExternal('https://ctjs.rocks/')}") + svg.feather + use(xlink:href="data/icons.svg#globe-alt") + span {vocGlob.ctsite} + li(onclick="{() => nw.Shell.openExternal('https://discord.gg/3f7TsRC')}") + svg.icon + use(xlink:href="data/icons.svg#discord") + span {voc.visitDiscordForGamedevSupport} + ul.aMenu + li(onclick="{showLicense}") + svg.feather + use(xlink:href="data/icons.svg#file-text") + span {voc.license} + ul.aMenu + li(onclick="{showIconList}") + svg.feather + use(xlink:href="data/icons.svg#image") + span {voc.openIconList} + icon-panel(if="{iconsOpened}" data-hotkey-scope="icons" onclose="{closeIcons}") + license-panel(if="{licenseOpened}" onclose="{hideLicense}") + script. + this.namespace = 'mainMenu.meta'; + this.mixin(window.riotVoc); + + this.iconsOpened = false; + this.showLicense = false; + + this.showLicense = () => { + this.licenseOpened = true; + this.update(); + }; + this.hideLicense = () => { + this.licenseOpened = false; + this.update(); + }; + + this.showIconList = () => { + this.iconsOpened = true; + }; + this.closeIcons = () => { + this.iconsOpened = false; + this.update(); + }; diff --git a/src/riotTags/main-menu/main-menu-project.tag b/src/riotTags/main-menu/main-menu-project.tag new file mode 100644 index 000000000..1b42d28e2 --- /dev/null +++ b/src/riotTags/main-menu/main-menu-project.tag @@ -0,0 +1,109 @@ +main-menu-project + h1 {voc.heading} + ul.aMenu + li(onclick="{saveProject}") + svg.feather + use(xlink:href="data/icons.svg#save") + span {vocGlob.save} + li(onclick="{zipProject}") + svg.feather + use(xlink:href="data/icons.svg#package") + span {voc.zipProject} + li(onclick="{openIncludeFolder}") + .spacer + span {voc.openIncludeFolder} + ul.aMenu + li(onclick="{openProject}") + svg.feather + use(xlink:href="data/icons.svg#folder") + span {voc.openProject} + li(onclick="{openExample}") + .spacer + span {voc.openExample} + li(onclick="{toStartScreen}") + .spacer + span {voc.startScreen} + script. + this.namespace = 'mainMenu.project'; + this.mixin(window.riotVoc); + + this.saveProject = () => { + window.signals.trigger('saveProject'); + }; + + this.openIncludeFolder = () => { + const fs = require('fs-extra'), + path = require('path'); + fs.ensureDir(path.join(global.projdir, '/include')) + .then(() => { + nw.Shell.openItem(path.join(global.projdir, '/include')); + }); + }; + + this.zipProject = async () => { + try { + const os = require('os'), + path = require('path'), + fs = require('fs-extra'); + const {getWritableDir} = require('./data/node_requires/platformUtils'); + + const writable = await getWritableDir(); + const inDir = await fs.mkdtemp(path.join(os.tmpdir(), 'ctZipProject-')), + outName = path.join(writable, `/${sessionStorage.projname}.zip`); + + await this.saveProject(); + await fs.remove(outName); + await fs.remove(inDir); + await fs.copy(global.projdir + '.ict', path.join(inDir, sessionStorage.projname)); + await fs.copy(global.projdir, path.join(inDir, sessionStorage.projname.slice(0, -4))); + + const archiver = require('archiver'); + const archive = archiver('zip'), + output = fs.createWriteStream(outName); + + output.on('close', () => { + nw.Shell.showItemInFolder(outName); + alertify.success(this.voc.successZipProject.replace('{0}', outName)); + fs.remove(inDir); + }); + + archive.pipe(output); + archive.directory(inDir, false); + archive.finalize(); + } catch (e) { + alertify.error(e); + } + }; + + this.openProjectSelector = path => { + alertify.confirm(window.languageJSON.common.reallyexit, () => { + window.showOpenDialog({ + defaultPath: path, + title: window.languageJSON.mainMenu.project.openProject, + filter: '.ict' + }) + .then(projFile => { + if (!projFile) { + return; + } + window.signals.trigger('resetAll'); + window.loadProject(projFile); + }); + }); + }; + + this.openProject = async () => { + this.openProjectSelector(await require('./data/node_requires/resources/projects').getDefaultProjectDir()); + }; + + this.openExample = async () => { + this.openProjectSelector(await require('./data/node_requires/resources/projects').getExamplesDir()); + }; + + this.toStartScreen = () => { + alertify.confirm(window.languageJSON.common.reallyexit, e => { + if (e) { + window.signals.trigger('resetAll'); + } + }); + }; \ No newline at end of file diff --git a/src/riotTags/main-menu/main-menu-settings.tag b/src/riotTags/main-menu/main-menu-settings.tag new file mode 100644 index 000000000..8c10a3524 --- /dev/null +++ b/src/riotTags/main-menu/main-menu-settings.tag @@ -0,0 +1,174 @@ +main-menu-settings + h1 {voc.heading} + ul.aMenu + li(onclick="{toggleThemeSelector}") + svg.feather + use(xlink:href="data/icons.svg#droplet") + span {voc.theme} + li(onclick="{toggleLanguageSelector}").relative + svg.feather + use(xlink:href="data/icons.svg#translate") + span {voc.language} + ul.aMenu + li(onclick="{toggleDenseCode}") + svg.feather + use(xlink:href="data/icons.svg#{localStorage.codeDense === 'on' ? 'check-square' : 'square'}") + span {voc.codeDense} + li(onclick="{toggleLigatures}") + svg.feather + use(xlink:href="data/icons.svg#{localStorage.codeLigatures === 'off' ? 'square' : 'check-square'}") + span {voc.codeLigatures} + li(onclick="{toggleSounds}") + svg.feather + use(xlink:href="data/icons.svg#{localStorage.disableSounds === 'on' ? 'check-square' : 'square'}") + span {voc.disableSounds} + li(onclick="{toggleProdProcedures}") + svg.feather + use(xlink:href="data/icons.svg#{localStorage.forceProductionForDebug === 'yes' ? 'check-square' : 'square'}") + span {voc.forceProductionForDebug} + ul.aMenu + li(onclick="{zoomIn}") + svg.feather + use(xlink:href="data/icons.svg#zoom-in") + span {vocGlob.zoomIn} + li(onclick="{zoomOut}") + svg.feather + use(xlink:href="data/icons.svg#zoom-out") + span {vocGlob.zoomOut} + ul.aMenu + li(onclick="{requestDataFolderChange}") + svg.feather + use(xlink:href="data/icons.svg#folder") + span {voc.changeDataFolder} + context-menu(menu="{themesSubmenu}" ref="themeslist") + context-menu(menu="{languagesSubmenu}" ref="languageslist") + script. + this.namespace = 'mainMenu.settings'; + this.mixin(window.riotVoc); + + this.openLanguageSelector = () => { + this.showLanguageSelector = true; + }; + + this.toggleSounds = () => { + localStorage.disableSounds = (localStorage.disableSounds || 'off') === 'off' ? 'on' : 'off'; + }; + + this.toggleLigatures = () => { + localStorage.codeLigatures = localStorage.codeLigatures === 'off' ? 'on' : 'off'; + window.signals.trigger('codeFontUpdated'); + }; + this.toggleDenseCode = () => { + localStorage.codeDense = localStorage.codeDense === 'off' ? 'on' : 'off'; + window.signals.trigger('codeFontUpdated'); + }; + this.toggleProdProcedures = () => { + if (localStorage.forceProductionForDebug === 'yes') { + localStorage.forceProductionForDebug = 'no'; + } else { + localStorage.forceProductionForDebug = 'yes'; + } + }; + + this.requestDataFolderChange = () => { + require('./data/node_requires/platformUtils').requestWritableDir(); + }; + + this.zoomIn = () => { + const win = nw.Window.get(); + let zoom = win.zoomLevel + 0.5; + if (Number.isNaN(zoom) || !zoom || !Number.isFinite(zoom)) { + zoom = 0; + } else if (zoom > 5) { + zoom = 5; + } + win.zoomLevel = zoom; + + localStorage.editorZooming = zoom; + }; + this.zoomOut = () => { + const win = nw.Window.get(); + let zoom = win.zoomLevel - 0.5; + if (Number.isNaN(zoom) || !zoom || !Number.isFinite(zoom)) { + zoom = 0; + } else if (zoom < -3) { + zoom = -3; + } + win.zoomLevel = zoom; + + localStorage.editorZooming = zoom; + }; + + const fs = require('fs-extra'), + path = require('path'); + + const themeManager = require('./data/node_requires/themes'); + this.themesSubmenu = { + opened: false, + items: themeManager.getThemeList().map(theme => ({ + label: theme.translated, + icon: () => localStorage.UItheme === theme.name && 'check', + click: async () => { + await themeManager.switchToTheme(theme.name); + this.update(); + } + })) + }; + + this.switchLanguage = name => { + const i18n = require('./data/node_requires/i18n.js'); + try { + window.languageJSON = i18n.loadLanguage(name); + localStorage.appLanguage = name; + window.signals.trigger('updateLocales'); + window.riot.update(); + } catch (e) { + alertify.alert('Could not open a language file: ' + e); + } + }; + this.languagesSubmenu = { + items: [] + }; + fs.readdir('./data/i18n/') + .then(files => { + Promise.all(files + .filter(filename => path.extname(filename) === '.json') + .filter(filename => filename !== 'Comments.json') + .map(filename => + fs.readJSON(path.join('./data/i18n/', filename)) + .then(i18nJson => { + this.languagesSubmenu.items.push({ + label: filename === 'Debug.json' ? 'Debug' : `${i18nJson.me.native} (${i18nJson.me.eng})`, + icon: () => localStorage.appLanguage === filename.slice(0, -5) && 'check', + click: () => { + this.switchLanguage(filename.slice(0, -5)); + } + }); + }) + .catch(e => { + console.error(e); + alertify.error(`Error while reading an i18n file ${filename}: ${e}`); + }))) + .finally(() => { + this.languagesSubmenu.items.push({ + type: 'separator' + }, { + label: this.voc.translateToYourLanguage, + icon: 'translate', + click: () => { + nw.Shell.openExternal('https://github.com/ct-js/ct-js/tree/develop/app/data/i18n'); + } + }); + this.update(); + }); + }) + .catch(e => { + alertify.alert('Could not get i18n files: ' + e); + }); + + this.toggleThemeSelector = e => { + this.refs.themeslist.popup(e.clientX, e.clientY); + }; + this.toggleLanguageSelector = e => { + this.refs.languageslist.popup(e.clientX, e.clientY); + }; diff --git a/src/riotTags/main-menu/main-menu-troubleshooting.tag b/src/riotTags/main-menu/main-menu-troubleshooting.tag new file mode 100644 index 000000000..0eeaadefa --- /dev/null +++ b/src/riotTags/main-menu/main-menu-troubleshooting.tag @@ -0,0 +1,60 @@ +main-menu-troubleshooting + h1 {voc.heading} + ul.aMenu + li(onclick="{toggleDevTools}") + svg.feather + use(xlink:href="data/icons.svg#terminal") + span {voc.toggleDevTools} + li(onclick="{copySystemInfo}") + svg.feather + use(xlink:href="data/icons.svg#file-text") + span {voc.copySystemInfo} + li(onclick="{toggleBuiltInDebugger}") + svg.feather + use(xlink:href="data/icons.svg#{localStorage.disableBuiltInDebugger === 'yes' ? 'check-square' : 'square'}") + span {voc.disableBuiltInDebugger} + ul.aMenu + li(onclick="{() => nw.Shell.openExternal('https://github.com/ct-js/ct-js/issues/new/choose')}") + svg.icon + use(xlink:href="data/icons.svg#github") + span {voc.postAnIssue} + script. + this.namespace = 'mainMenu.troubleshooting'; + this.mixin(window.riotVoc); + + this.toggleDevTools = () => { + const win = nw.Window.get(); + win.showDevTools(); + }; + + this.toggleBuiltInDebugger = () => { + if (localStorage.disableBuiltInDebugger === 'yes') { + localStorage.disableBuiltInDebugger = 'no'; + } else { + localStorage.disableBuiltInDebugger = 'yes'; + } + }; + + this.copySystemInfo = () => { + const os = require('os'), + path = require('path'); + const packaged = path.basename(process.execPath, path.extname(process.execPath)) !== 'nw'; + const gl = document.createElement('canvas').getContext('webgl'); + var debugInfo, vendor, renderer; + if (gl) { + debugInfo = gl.getExtension('WEBGL_debug_renderer_info'); + vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL); + renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL); + } + const report = `Ct.js v${process.versions.ctjs} 😽 ${packaged ? '(packaged)' : '(runs from sources)'}\n\n` + + `NW.JS v${process.versions.nw}\n` + + `Chromium v${process.versions.chromium}\n` + + `Node.js v${process.versions.node}\n` + + `Pixi.js v${PIXI.VERSION}\n\n` + + `WebGL ${gl ? 'available' : 'UNAVAILABLE'}\n` + + `WebGL vendor ${(debugInfo && vendor) || 'UNKNOWN'}\n` + + `WebGL renderer ${(debugInfo && renderer) || 'UNKNOWN'}\n` + + `OS ${process.platform} ${process.arch} // ${os.type()} ${os.release()}`; + nw.Clipboard.get().set(report, 'text'); + window.alertify.success(this.voc.systemInfoDone); + }; \ No newline at end of file diff --git a/src/riotTags/main-menu/main-menu.tag b/src/riotTags/main-menu/main-menu.tag new file mode 100644 index 000000000..f3da5db5c --- /dev/null +++ b/src/riotTags/main-menu/main-menu.tag @@ -0,0 +1,16 @@ +main-menu + .main-menu-aGrid + main-menu-project.main-menu-aDoubleSection + main-menu-deploy.main-menu-aSection + main-menu-latest-projects.main-menu-aTripleSection + main-menu-settings.main-menu-aQuadrupleSection + main-menu-meta.main-menu-aTripleSection + main-menu-troubleshooting.main-menu-aDoubleSection + script. + this.namespace = 'mainMenu'; + this.mixin(window.riotVoc); + + this.openIcons = () => { + this.parent.tab = 'icons'; + this.parent.update(); + }; diff --git a/src/riotTags/new-project-onboarding.tag b/src/riotTags/new-project-onboarding.tag index 39f1ff378..4e233d268 100644 --- a/src/riotTags/new-project-onboarding.tag +++ b/src/riotTags/new-project-onboarding.tag @@ -7,7 +7,7 @@ new-project-onboarding use(xlink:href="data/img/onboardingIllustration.svg#illustration") h1 {voc.hoorayHeader} p {voc.nowWhatParagraph} - ul.menu + ul.aMenu li(onclick="{openDocs('/tut-making-shooter.html')}") svg.feather use(xlink:href="data/icons.svg#space-shooter") @@ -46,4 +46,4 @@ new-project-onboarding this.toggleOnboarding = () => { localStorage.showOnboarding = localStorage.showOnboarding !== 'off' ? 'off' : 'on'; - }; \ No newline at end of file + }; diff --git a/src/riotTags/project-settings/actions-settings.tag b/src/riotTags/project-settings/actions-settings.tag index fbc28ff58..347a04ab3 100644 --- a/src/riotTags/project-settings/actions-settings.tag +++ b/src/riotTags/project-settings/actions-settings.tag @@ -26,7 +26,7 @@ actions-settings svg.feather.a(title="{voc.deleteAction}" onclick="{deleteAction}") use(xlink:href="data/icons.svg#x") .c8.npr.npl.breakon800 - ul.aStrippedList.nmt + ul.aStripedList.nmt li.flexrow.middle.npl(each="{method, mInd in action.methods}") .fifty.npt.npl.npb code.inline {method.code} @@ -87,4 +87,4 @@ actions-settings if (existingAction) { this.nameTaken = e.item.action.name; } - }; \ No newline at end of file + }; diff --git a/src/riotTags/project-settings/scripts-setttings.tag b/src/riotTags/project-settings/scripts-setttings.tag index 98818ead9..ea1227c28 100644 --- a/src/riotTags/project-settings/scripts-setttings.tag +++ b/src/riotTags/project-settings/scripts-setttings.tag @@ -1,6 +1,6 @@ scripts-settings h1 {voc.heading} - ul.menu + ul.aMenu li(each="{script, index in global.currentProject.scripts}" onclick="{selectScript}") code {script.name} .toright @@ -87,4 +87,4 @@ scripts-settings bottom.splice(1, 0, clickedScript); const out = [...top, ...bottom]; this.currentProject.scripts = out; - }; \ No newline at end of file + }; diff --git a/src/riotTags/root-tag.tag b/src/riotTags/root-tag.tag index 82900e5cd..c61d62eb2 100644 --- a/src/riotTags/root-tag.tag +++ b/src/riotTags/root-tag.tag @@ -1,5 +1,5 @@ root-tag - main-menu(if="{projectOpened}") + app-view(if="{projectOpened}") notepad-panel(if="{projectOpened}") dnd-processor(if="{projectOpened}") project-selector(if="{!projectOpened}") diff --git a/src/riotTags/shared/context-menu.tag b/src/riotTags/shared/context-menu.tag index 6ceed903f..376af9362 100644 --- a/src/riotTags/shared/context-menu.tag +++ b/src/riotTags/shared/context-menu.tag @@ -121,6 +121,7 @@ context-menu(class="{opened: opts.menu.opened}" ref="root" style="{opts.menu.col e.stopPropagation(); } }; + this.on('mount', () => { document.addEventListener('click', clickListener); }); diff --git a/src/styl/buildingBlocks.styl b/src/styl/buildingBlocks.styl index 77b30deaa..f6ff48830 100644 --- a/src/styl/buildingBlocks.styl +++ b/src/styl/buildingBlocks.styl @@ -1,301 +1,319 @@ -.spacer - width 1rem - height @width - -.dimmer - position fixed - background-color rgba(0, 0, 0, 0.3) - left 0 - right 0 - top 0 - bottom 0 - width 100% - height 100% - z-index 20 - -.modal, .panel - box-sizing border-box - background background - border 1px solid borderBright - border-radius br - position relative - -.modal - position fixed - left 50% - top 50% - transform translate(-50%, -50%) translateZ(0) - filter blur(0px) - backface-visibility hidden - max-height 90% - overflow auto - box-shadow 0 2px 5px rgba(0, 0, 0, 0.35) - -.view - overflow auto - background backgroundDeeper - position absolute - left 0 - right 0 - top 0 - bottom 0 - border-top 0 - .view - border 0 - -.inset - background backgroundDeeper - padding 1rem - margin 0 -1rem - border-top 1px solid borderPale - -.aStrippedList - margin 0.5rem 0 - padding 0 - li - list-style none - padding 0.2em 0.8em - margin 0 - border-bottom 1px solid borderPale - - -// Меню выбора - список -.menu - @extends .aStrippedList - overflow auto - font-weight 400 - li - cursor pointer - overflow hidden - text-overflow ellipsis - white-space nowrap - {trans} - &:hover, &.hover - {transshort} - border-bottom-color borderBright - color acttext - padding 0.2em 0.5em 0.2em 1.1em - &:active, &.active - background act - border-bottom-color transparent - color background - -// панели управления -.nav - background background - border-radius br - border-top 1px solid borderBright - border-left 1px solid borderBright - &.vertical - border 0 - border-radius 0 - padding 0 - margin 0 - display flex - flex-direction row - &.vertical - display block - li - text-align center - cursor pointer - border-right 1px solid borderPale - border-bottom 1px solid borderBright - flex auto - list-style none - padding 0.25em - margin 0 - {trans} - box-shadow 0 0 background inset - &:hover, &.active - {transshort} - color acttext - & > svg - {transshort} - color accent1 - box-shadow 0 -2px accent1 inset - &:active - background acttext - color background - box-shadow 0 -2px acttext inset - & > svg - color background - &:first-child - border-top-left-radius inherit - border-bottom-left-radius inherit - &:last-child - border-top-right-radius inherit - border-bottom-right-radius inherit - &.vertical li - text-align initial - border-right 0 - border-bottom 1px solid borderPale - padding 0.25rem 1rem - overflow hidden - text-overflow ellipsis - white-space nowrap - &:hover, &.active - box-shadow -2px 0 accent1 inset - &:active - box-shadow -2px 0 acttext inset - &:last-child - border-bottom 0 - - -// resource cards -.cards, .Cards - list-style none - padding 0 - display grid - grid-template-columns repeat(auto-fill, minmax(17em, 1fr)) - grid-gap 0.3em - flex-grow 0 - li, .aCard - background background - padding 0.8em - margin 0 - box-sizing border-box - border 1px solid borderPale - border-radius 3px - display inline-block - vertical-align top - cursor pointer - transition 0.35s ease all - &:hover - border-color acttext - &:active - border-color accent1 - background act - color background - span - font-family consolas, monospace - width calc(14.5em - 64px) - display inline-block - text-overflow ellipsis - white-space nowrap - overflow hidden - > .date - display none - & > img - float left - height 64px - width 64px - margin -0.5em 1em -0.5em -0.5em - border-radius br - &:hover - background rgba(act, 0.35) - &.list - display block - &.list li - display flex - flex-flow row nowrap - margin 0 - padding 0.5rem 1rem - border-radius 0 - width auto - &:hover - background act - color background - span - flex 1 1 auto - order 4 - line-height 1.5rem - text-align left - > .date - display block - flex 0 0 auto - width 6rem - font-size 80% - text-align center - font-family fonts - order 10 - & + li - border-top 0 - & > img - float none - height 1.5rem - width 1.5rem - margin 0 1rem 0 0 - flex 0 0 auto - order 2 - &:first-child - border-top-left-radius br - border-top-right-radius br - &:last-child - border-bottom-left-radius br - border-bottom-right-radius br - &.largeicons - grid-template-columns repeat(auto-fill, minmax(15em, 1fr)) - li - text-align center - position relative - img - float none - max-width 13.5em - max-height 10em - margin 0 - width auto - height auto - span - font-family consolas, monospace - width 12.5em - text-overflow ellipsis - white-space nowrap - overflow hidden -.aCard-Actions - position absolute - top 0.5rem - right 0.5rem - opacity 0 - {trans} - .aCard:hover &, .aCard:focus & - opacity 1 -sounds-panel, rooms-panel - .cards li img:hover - background none - -.anErrorNotice - background mix(error, background, 10%) - border 1px solid error - border-radius br - padding 0.5rem 1rem - line-height 1.5 - position absolute - margin-top 0.5rem - color error - z-index 100 - transform-origin 50% -0.5rem - &::before - background mix(error, background, 10%) - content '' - left 50% - top -0.33rem - position absolute - width 0.5rem - height 0.5rem - border-left 1px solid error - border-top 1px solid error - transform translate(-0.25rem, 0) rotate(45deg) - -.nicetable, .aNiceTable - margin 1rem 0 - border 1px solid borderBright - border-radius br - border-spacing 0 - {shadamb} - td, th - padding 0.5rem 0.75rem - margin 0 - &:first-child - padding-left 1.5rem - &:last-child - padding-right 1.5rem - th - border-bottom 1px solid borderBright - text-align left -.aTableWrap - overflow-y auto - .nicetable, .aNiceTable - width max-content - -.anIllustration - color act \ No newline at end of file +.spacer, .aSpacer + width 1rem + height @width + +.dimmer + position fixed + background-color rgba(0, 0, 0, 0.3) + left 0 + right 0 + top 0 + bottom 0 + width 100% + height 100% + z-index 20 + +.modal, .panel + box-sizing border-box + background background + border 1px solid borderBright + border-radius br + position relative + +.modal + position fixed + left 50% + top 50% + transform translate(-50%, -50%) translateZ(0) + filter blur(0px) + backface-visibility hidden + max-height 90% + overflow auto + box-shadow 0 2px 5px rgba(0, 0, 0, 0.35) + +.view + overflow auto + background backgroundDeeper + position absolute + left 0 + right 0 + top 0 + bottom 0 + border-top 0 + .view + border 0 + +.inset + background backgroundDeeper + padding 1rem + margin 0 -1rem + border-top 1px solid borderPale + +.aStripedList + margin 0.5rem 0 + padding 0 + li + list-style none + padding 0.2em 0.8em + margin 0 + border-bottom 1px solid borderPale + &:last-child + border-bottom 0 + + +// Меню выбора - список +.aMenu + @extends .aStripedList + overflow auto + font-weight 400 + & + & + margin-top 1rem + li + cursor pointer + overflow hidden + text-overflow ellipsis + white-space nowrap + {trans} + &:hover, &.hover + {transshort} + border-bottom-color borderBright + color acttext + padding 0.2em 0.5em 0.2em 1.1em + & > svg:first-child, & > .spacer:first-child + color act + margin-right 0.5rem + {trans} + & > .spacer:first-child + width 1.5rem + height 1.5rem + display inline-block + &:active, &.active + background act + border-bottom-color transparent + color background + & > svg:first-child, & > .spacer:first-child + color background + +// панели управления +.nav + background background + border-radius br + border-top 1px solid borderBright + border-left 1px solid borderBright + &.vertical + border 0 + border-radius 0 + padding 0 + margin 0 + display flex + flex-direction row + &.vertical + display block + li + text-align center + cursor pointer + border-right 1px solid borderPale + border-bottom 1px solid borderBright + flex auto + list-style none + padding 0.25em + margin 0 + {trans} + box-shadow 0 0 background inset + &:hover, &.active + {transshort} + color acttext + & > svg + {transshort} + color accent1 + box-shadow 0 -2px accent1 inset + &:active + background acttext + color background + box-shadow 0 -2px acttext inset + & > svg + color background + &:first-child + border-top-left-radius inherit + border-bottom-left-radius inherit + &:last-child + border-top-right-radius inherit + border-bottom-right-radius inherit + &.vertical li + text-align initial + border-right 0 + border-bottom 1px solid borderPale + padding 0.25rem 1rem + overflow hidden + text-overflow ellipsis + white-space nowrap + &:hover, &.active + box-shadow -2px 0 accent1 inset + &:active + box-shadow -2px 0 acttext inset + &:last-child + border-bottom 0 + + +// resource cards +.cards, .Cards + list-style none + padding 0 + display grid + grid-template-columns repeat(auto-fill, minmax(17em, 1fr)) + grid-gap 0.3em + flex-grow 0 + li, .aCard + background background + padding 0.8em + margin 0 + box-sizing border-box + border 1px solid borderPale + border-radius 3px + display inline-block + vertical-align top + cursor pointer + transition 0.35s ease all + &:hover + border-color acttext + &:active + border-color accent1 + background act + color background + span + font-family consolas, monospace + width calc(14.5em - 64px) + display inline-block + text-overflow ellipsis + white-space nowrap + overflow hidden + > .date + display none + & > img, & > svg + float left + height 64px + width 64px + margin -0.5em 1em -0.5em -0.5em + border-radius br + &:hover + background rgba(act, 0.35) + & > svg + stroke-width 1 + width 48px + height 3.5rem + &.list + display block + &.list li + display flex + flex-flow row nowrap + margin 0 + padding 0.5rem 1rem + border-radius 0 + width auto + &:hover + background act + color background + span + flex 1 1 auto + order 4 + line-height 1.5rem + text-align left + > .date + display block + flex 0 0 auto + width 6rem + font-size 80% + text-align center + font-family fonts + order 10 + & + li + border-top 0 + & > img + float none + height 1.5rem + width 1.5rem + margin 0 1rem 0 0 + flex 0 0 auto + order 2 + &:first-child + border-top-left-radius br + border-top-right-radius br + &:last-child + border-bottom-left-radius br + border-bottom-right-radius br + &.largeicons + grid-template-columns repeat(auto-fill, minmax(15em, 1fr)) + li + text-align center + position relative + img + float none + max-width 13.5em + max-height 10em + margin 0 + width auto + height auto + span + font-family consolas, monospace + width 12.5em + text-overflow ellipsis + white-space nowrap + overflow hidden +.aCard-Actions + position absolute + top 0.5rem + right 0.5rem + opacity 0 + {trans} + .aCard:hover &, .aCard:focus & + opacity 1 +sounds-panel, rooms-panel + .cards li img:hover + background none + +.anErrorNotice + background mix(error, background, 10%) + border 1px solid error + border-radius br + padding 0.5rem 1rem + line-height 1.5 + position absolute + margin-top 0.5rem + color error + z-index 100 + transform-origin 50% -0.5rem + &::before + background mix(error, background, 10%) + content '' + left 50% + top -0.33rem + position absolute + width 0.5rem + height 0.5rem + border-left 1px solid error + border-top 1px solid error + transform translate(-0.25rem, 0) rotate(45deg) + +.nicetable, .aNiceTable + margin 1rem 0 + border 1px solid borderBright + border-radius br + border-spacing 0 + {shadamb} + td, th + padding 0.5rem 0.75rem + margin 0 + &:first-child + padding-left 1.5rem + &:last-child + padding-right 1.5rem + th + border-bottom 1px solid borderBright + text-align left +.aTableWrap + overflow-y auto + .nicetable, .aNiceTable + width max-content + +.anIllustration + color act diff --git a/src/styl/inputs.styl b/src/styl/inputs.styl index 53a35ac61..56cdce104 100644 --- a/src/styl/inputs.styl +++ b/src/styl/inputs.styl @@ -539,7 +539,7 @@ fieldset cursor pointer margin 0 display inline-block - &:hover, &:focus, .menu li:hover &, .menu li:focus &, tr:hover & + &:hover, &:focus, .aMenu li:hover &, .aMenu li:focus &, tr:hover & opacity 1 & + & - margin-left 0.35rem \ No newline at end of file + margin-left 0.35rem diff --git a/src/styl/tags/main-menu.styl b/src/styl/tags/app-view.styl similarity index 92% rename from src/styl/tags/main-menu.styl rename to src/styl/tags/app-view.styl index 4dca4c4c2..cd51d16a8 100644 --- a/src/styl/tags/main-menu.styl +++ b/src/styl/tags/app-view.styl @@ -1,4 +1,4 @@ -main-menu +app-view position fixed top 0 left 0 diff --git a/src/styl/tags/main-menu/main-menu-deploy.styl b/src/styl/tags/main-menu/main-menu-deploy.styl new file mode 100644 index 000000000..816f26f59 --- /dev/null +++ b/src/styl/tags/main-menu/main-menu-deploy.styl @@ -0,0 +1,4 @@ +main-menu-deploy + export-panel + z-index 10 + position relative \ No newline at end of file diff --git a/src/styl/tags/main-menu/main-menu-meta.styl b/src/styl/tags/main-menu/main-menu-meta.styl new file mode 100644 index 000000000..20808551f --- /dev/null +++ b/src/styl/tags/main-menu/main-menu-meta.styl @@ -0,0 +1,3 @@ +main-menu-meta + icon-panel, license-panel + z-index 10 \ No newline at end of file diff --git a/src/styl/tags/main-menu/main-menu.styl b/src/styl/tags/main-menu/main-menu.styl new file mode 100644 index 000000000..6d898f9d2 --- /dev/null +++ b/src/styl/tags/main-menu/main-menu.styl @@ -0,0 +1,20 @@ +main-menu + @extends .view + overflow-x hidden + overflow-y scroll + .&-aGrid + display grid + grid-template-columns repeat(auto-fill, minmax(20em, 1fr)) + grid-auto-rows minmax(3rem, auto) + grid-auto-flow dense + padding 2rem + grid-gap 3rem + .&-aDoubleSection + grid-row-end span 2 + .&-aTripleSection + grid-row-end span 3 + .&-aQuadrupleSection + grid-row-end span 4 + .&-aSection, .&-aDoubleSection, .&-aTripleSection, .&-aQuadrupleSection + & > h1:first-child + margin 0 0 1rem 0.65rem diff --git a/src/styl/tags/new-project-onboarding.styl b/src/styl/tags/new-project-onboarding.styl index bb1b260dd..003b1976a 100644 --- a/src/styl/tags/new-project-onboarding.styl +++ b/src/styl/tags/new-project-onboarding.styl @@ -29,9 +29,9 @@ new-project-onboarding @media (max-height: 810px) height 15rem margin 1rem 0 0 - .menu, .inset + .aMenu, .inset text-align left - .menu + .aMenu svg color act margin-right 1rem @@ -46,4 +46,4 @@ new-project-onboarding .inset padding 1rem 2rem label - padding-left 2.3rem \ No newline at end of file + padding-left 2.3rem diff --git a/src/styl/tags/settings/actions-settings.styl b/src/styl/tags/settings/actions-settings.styl index 873305b58..c7448eaf6 100644 --- a/src/styl/tags/settings/actions-settings.styl +++ b/src/styl/tags/settings/actions-settings.styl @@ -1,7 +1,7 @@ .anActionMethod - @extends .menu li + @extends .aMenu li actions-settings h1 margin-bottom 1rem li - list-style none \ No newline at end of file + list-style none diff --git a/src/styl/tags/settings/scripts-panel.styl b/src/styl/tags/settings/scripts-panel.styl index d79a99556..5b7e7a12c 100644 --- a/src/styl/tags/settings/scripts-panel.styl +++ b/src/styl/tags/settings/scripts-panel.styl @@ -1,9 +1,9 @@ scripts-settings - .menu + .aMenu margin-bottom 1.5rem li padding-left 0 padding-right 0 &:hover padding-left 0.5rem - padding-right 0 \ No newline at end of file + padding-right 0