pgkiln 0.45.0 → 0.47.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/db/migrations/106_form_designer.sql +102 -0
- package/db/migrations/107_app_version.sql +9 -0
- package/db/migrations/108_sql_history.sql +25 -0
- package/docs/apex-feature-parity.md +33 -4
- package/docs/guide/03-builder.md +123 -28
- package/docs/guide/04-pages-and-regions.md +74 -2
- package/docs/guide/05-items.md +14 -2
- package/docs/guide/08-security.md +1 -1
- package/docs/guide/09-reference.md +1 -1
- package/docs/guide/10-tutorial.md +1 -1
- package/docs/guide/11-from-apex.md +2 -1
- package/docs/guide/12-development.md +26 -3
- package/docs/guide/16-files.md +2 -2
- package/examples/hr/hr_61_form_designer.sql +80 -0
- package/package.json +1 -1
- package/public/app.css +62 -2
- package/public/app.js +244 -35
- package/public/builder.css +21 -1
- package/public/builder.js +67 -0
- package/public/sw.js +2 -1
- package/public/worksheet.css +244 -0
- package/public/worksheet.js +665 -0
- package/src/app.ts +9 -1
- package/src/builder/ai-builder.ts +3 -3
- package/src/builder/appwizard.ts +22 -6
- package/src/builder/arrange.ts +33 -12
- package/src/builder/code-editor.ts +1 -1
- package/src/builder/components.ts +1 -1
- package/src/builder/designer.ts +44 -17
- package/src/builder/errors.ts +65 -0
- package/src/builder/form-designer.ts +229 -0
- package/src/builder/locks.ts +6 -0
- package/src/builder/newapp.ts +2 -1
- package/src/builder/object-actions.ts +166 -0
- package/src/builder/object-browser.ts +111 -33
- package/src/builder/querybuilder.ts +1 -1
- package/src/builder/region-help.ts +2 -0
- package/src/builder/region-settings.ts +2 -0
- package/src/builder/reporter.ts +1 -1
- package/src/builder/routes.ts +7 -5
- package/src/builder/sampledata.ts +2 -2
- package/src/builder/scripts.ts +3 -3
- package/src/builder/search.ts +3 -3
- package/src/builder/shared.ts +2 -2
- package/src/builder/sql.ts +15 -73
- package/src/builder/table-editor.ts +219 -0
- package/src/builder/ui.ts +5 -3
- package/src/builder/unload.ts +8 -4
- package/src/builder/worksheet.ts +569 -0
- package/src/builder/workspaces.ts +1 -1
- package/src/cli/replace.ts +10 -0
- package/src/i18n/ar.ts +62 -0
- package/src/i18n/cs.ts +62 -0
- package/src/i18n/da.ts +62 -0
- package/src/i18n/de.ts +62 -0
- package/src/i18n/el.ts +62 -0
- package/src/i18n/es.ts +62 -0
- package/src/i18n/fi.ts +62 -0
- package/src/i18n/fr.ts +62 -0
- package/src/i18n/he.ts +62 -0
- package/src/i18n/it.ts +62 -0
- package/src/i18n/ja.ts +62 -0
- package/src/i18n/ko.ts +62 -0
- package/src/i18n/nb.ts +62 -0
- package/src/i18n/pl.ts +62 -0
- package/src/i18n/pt.ts +62 -0
- package/src/i18n/ru.ts +62 -0
- package/src/i18n/sv.ts +62 -0
- package/src/i18n/tr.ts +62 -0
- package/src/i18n/uk.ts +62 -0
- package/src/i18n/zh.ts +62 -0
- package/src/i18n.ts +124 -0
- package/src/metadata.ts +4 -2
- package/src/runtime/devbar.ts +1 -1
- package/src/runtime/facet-state.ts +10 -5
- package/src/runtime/facets.ts +29 -5
- package/src/runtime/form-designer.ts +676 -0
- package/src/runtime/grid.ts +15 -8
- package/src/runtime/items.ts +33 -21
- package/src/runtime/lists.ts +1 -1
- package/src/runtime/pdf.ts +2 -1
- package/src/runtime/regions.ts +4 -0
- package/src/runtime/render.ts +7 -3
- package/src/runtime/report.ts +2 -2
- package/src/runtime/routes.ts +3 -1
- package/src/runtime/smart-filters.ts +2 -1
- package/src/runtime/tasks.ts +6 -3
- package/src/sqlformat.ts +208 -0
- package/src/sqlplan.ts +133 -0
- package/src/sqlscript.ts +6 -2
- package/src/sqlworksheet.ts +278 -0
- package/src/tabledef.ts +226 -0
- package/src/unload.ts +14 -3
package/src/i18n/pt.ts
CHANGED
|
@@ -63,6 +63,7 @@ export const pt: Record<MessageKey, string> = {
|
|
|
63
63
|
'common.back': "Voltar",
|
|
64
64
|
'common.home': "Ir para a página inicial",
|
|
65
65
|
'common.skip': "Saltar para o conteúdo",
|
|
66
|
+
'common.back_to_top': "Voltar ao topo",
|
|
66
67
|
'common.toggle_nav': "Mostrar ou ocultar a navegação",
|
|
67
68
|
'common.dismiss': "Fechar",
|
|
68
69
|
// messages and errors
|
|
@@ -390,6 +391,9 @@ export const pt: Record<MessageKey, string> = {
|
|
|
390
391
|
'facets.stars_up': "{n} estrelas ou mais",
|
|
391
392
|
'facets.star_up': "1 estrela ou mais",
|
|
392
393
|
'facets.clear_short': "Limpar",
|
|
394
|
+
'facets.menu': "Opções de {facet}",
|
|
395
|
+
'facets.sort_count': "Ordenar por quantidade",
|
|
396
|
+
'facets.sort_name': "Ordenar por nome",
|
|
393
397
|
'facets.show_all': "Mostrar tudo ({n})",
|
|
394
398
|
'facets.total': "Total de linhas {n}",
|
|
395
399
|
'smart.placeholder': "Pesquisar ou filtrar…",
|
|
@@ -685,6 +689,64 @@ export const pt: Record<MessageKey, string> = {
|
|
|
685
689
|
'reporter.changed': "alterado em {date}",
|
|
686
690
|
'reporter.no_match': "Nenhum relatório corresponde à pesquisa.",
|
|
687
691
|
'reporter.chart_tag': "gráfico",
|
|
692
|
+
// Form Designer (form-designer.ts)
|
|
693
|
+
'formdesigner.no_sources': "Ainda não há tabelas configuradas para esta região.",
|
|
694
|
+
'formdesigner.no_forms': "Ainda não há formulários.",
|
|
695
|
+
'formdesigner.new': "Novo formulário",
|
|
696
|
+
'formdesigner.create': "Desenhar",
|
|
697
|
+
'formdesigner.draft': "Rascunho",
|
|
698
|
+
'formdesigner.design': "Desenhar formulário",
|
|
699
|
+
'formdesigner.design_of': "Desenho de {name}",
|
|
700
|
+
'formdesigner.back': "Todos os formulários",
|
|
701
|
+
'formdesigner.add': "Adicionar",
|
|
702
|
+
'formdesigner.edit_row': "Editar",
|
|
703
|
+
'formdesigner.rows': "Linhas de {form}",
|
|
704
|
+
'formdesigner.save': "Guardar",
|
|
705
|
+
'formdesigner.delete': "Eliminar",
|
|
706
|
+
'formdesigner.delete_confirm': "Eliminar esta linha?",
|
|
707
|
+
'formdesigner.cancel': "Cancelar",
|
|
708
|
+
'formdesigner.saved_row': "Guardado.",
|
|
709
|
+
'formdesigner.deleted_row': "Eliminado.",
|
|
710
|
+
'formdesigner.required': "{field} é obrigatório.",
|
|
711
|
+
'formdesigner.not_in_list': "{field}: escolha um valor da lista.",
|
|
712
|
+
'formdesigner.changed': "Outra pessoa alterou esta linha entretanto. Verifique-a e guarde novamente.",
|
|
713
|
+
'formdesigner.row_not_found': "Esta linha não existe, ou não a pode ver.",
|
|
714
|
+
'formdesigner.not_allowed': "Não pode fazer isso com esta linha.",
|
|
715
|
+
'formdesigner.form_not_found': "Este formulário não existe (já).",
|
|
716
|
+
'formdesigner.unknown_source': "A tabela deste formulário já não é oferecida.",
|
|
717
|
+
'formdesigner.nothing': "Este formulário ainda não tem campos.",
|
|
718
|
+
'formdesigner.choose': "- Escolher -",
|
|
719
|
+
'formdesigner.name': "Nome",
|
|
720
|
+
'formdesigner.description': "Descrição",
|
|
721
|
+
'formdesigner.published': "Publicado: qualquer pessoa que veja esta página pode usar o formulário",
|
|
722
|
+
'formdesigner.fields': "Campos",
|
|
723
|
+
'formdesigner.field_on': "No formulário",
|
|
724
|
+
'formdesigner.column': "Coluna",
|
|
725
|
+
'formdesigner.key': "chave",
|
|
726
|
+
'formdesigner.order': "Ordem",
|
|
727
|
+
'formdesigner.label': "Rótulo",
|
|
728
|
+
'formdesigner.help': "Texto de ajuda",
|
|
729
|
+
'formdesigner.required_short': "Obrigatório",
|
|
730
|
+
'formdesigner.display': "Apresentação",
|
|
731
|
+
'formdesigner.default': "Predefinição",
|
|
732
|
+
'formdesigner.in_list': "Na lista",
|
|
733
|
+
'formdesigner.display_auto': "Campo",
|
|
734
|
+
'formdesigner.display_textarea': "Área de texto",
|
|
735
|
+
'formdesigner.display_select': "Lista de seleção",
|
|
736
|
+
'formdesigner.display_radio': "Grupo de opções",
|
|
737
|
+
'formdesigner.actions': "Os utilizadores podem",
|
|
738
|
+
'formdesigner.allow_insert': "adicionar linhas",
|
|
739
|
+
'formdesigner.allow_update': "alterar linhas",
|
|
740
|
+
'formdesigner.allow_delete': "eliminar linhas",
|
|
741
|
+
'formdesigner.list_help': "A lista de linhas mostra as colunas marcadas «Na lista»; sem nenhuma, o formulário apenas adiciona linhas.",
|
|
742
|
+
'formdesigner.save_form': "Guardar formulário",
|
|
743
|
+
'formdesigner.delete_form': "Eliminar formulário",
|
|
744
|
+
'formdesigner.delete_form_confirm': "Eliminar o formulário «{name}»? As linhas guardadas permanecem.",
|
|
745
|
+
'formdesigner.form_saved': "Formulário «{name}» guardado.",
|
|
746
|
+
'formdesigner.form_deleted': "Formulário eliminado.",
|
|
747
|
+
'formdesigner.name_required': "Dê um nome ao formulário.",
|
|
748
|
+
'formdesigner.no_fields': "Coloque pelo menos uma coluna no formulário.",
|
|
749
|
+
'formdesigner.changed_by': "alterado por {user} em {date}",
|
|
688
750
|
// AI assistant region and natural-language report filters (assistant.ts, ai-filter.ts)
|
|
689
751
|
'assistant.conversation': "Conversa",
|
|
690
752
|
'assistant.you': "Você",
|
package/src/i18n/ru.ts
CHANGED
|
@@ -63,6 +63,7 @@ export const ru: Record<MessageKey, string> = {
|
|
|
63
63
|
'common.back': "Назад",
|
|
64
64
|
'common.home': "На главную страницу",
|
|
65
65
|
'common.skip': "Перейти к содержимому",
|
|
66
|
+
'common.back_to_top': "Наверх",
|
|
66
67
|
'common.toggle_nav': "Показать или скрыть навигацию",
|
|
67
68
|
'common.dismiss': "Закрыть",
|
|
68
69
|
// messages and errors
|
|
@@ -390,6 +391,9 @@ export const ru: Record<MessageKey, string> = {
|
|
|
390
391
|
'facets.stars_up': "{n} звезды и выше",
|
|
391
392
|
'facets.star_up': "1 звезда и выше",
|
|
392
393
|
'facets.clear_short': "Очистить",
|
|
394
|
+
'facets.menu': "Параметры: {facet}",
|
|
395
|
+
'facets.sort_count': "Сортировать по количеству",
|
|
396
|
+
'facets.sort_name': "Сортировать по названию",
|
|
393
397
|
'facets.show_all': "Показать все ({n})",
|
|
394
398
|
'facets.total': "Всего строк {n}",
|
|
395
399
|
'smart.placeholder': "Поиск или фильтр…",
|
|
@@ -685,6 +689,64 @@ export const ru: Record<MessageKey, string> = {
|
|
|
685
689
|
'reporter.changed': "изменён {date}",
|
|
686
690
|
'reporter.no_match': "Нет отчётов, подходящих под поиск.",
|
|
687
691
|
'reporter.chart_tag': "диаграмма",
|
|
692
|
+
// Form Designer (form-designer.ts)
|
|
693
|
+
'formdesigner.no_sources': "Для этой области ещё не настроены таблицы.",
|
|
694
|
+
'formdesigner.no_forms': "Форм пока нет.",
|
|
695
|
+
'formdesigner.new': "Новая форма",
|
|
696
|
+
'formdesigner.create': "Создать",
|
|
697
|
+
'formdesigner.draft': "Черновик",
|
|
698
|
+
'formdesigner.design': "Изменить форму",
|
|
699
|
+
'formdesigner.design_of': "Конструктор: {name}",
|
|
700
|
+
'formdesigner.back': "Все формы",
|
|
701
|
+
'formdesigner.add': "Добавить",
|
|
702
|
+
'formdesigner.edit_row': "Изменить",
|
|
703
|
+
'formdesigner.rows': "Строки: {form}",
|
|
704
|
+
'formdesigner.save': "Сохранить",
|
|
705
|
+
'formdesigner.delete': "Удалить",
|
|
706
|
+
'formdesigner.delete_confirm': "Удалить эту строку?",
|
|
707
|
+
'formdesigner.cancel': "Отмена",
|
|
708
|
+
'formdesigner.saved_row': "Сохранено.",
|
|
709
|
+
'formdesigner.deleted_row': "Удалено.",
|
|
710
|
+
'formdesigner.required': "Поле «{field}» обязательно.",
|
|
711
|
+
'formdesigner.not_in_list': "{field}: выберите значение из списка.",
|
|
712
|
+
'formdesigner.changed': "Кто-то другой тем временем изменил эту строку. Проверьте её и сохраните снова.",
|
|
713
|
+
'formdesigner.row_not_found': "Этой строки нет, или вам нельзя её видеть.",
|
|
714
|
+
'formdesigner.not_allowed': "С этой строкой так делать нельзя.",
|
|
715
|
+
'formdesigner.form_not_found': "Этой формы нет (больше нет).",
|
|
716
|
+
'formdesigner.unknown_source': "Таблица этой формы больше не предлагается.",
|
|
717
|
+
'formdesigner.nothing': "В этой форме пока нет полей.",
|
|
718
|
+
'formdesigner.choose': "- Выберите -",
|
|
719
|
+
'formdesigner.name': "Название",
|
|
720
|
+
'formdesigner.description': "Описание",
|
|
721
|
+
'formdesigner.published': "Опубликована: форму может использовать каждый, кто видит эту страницу",
|
|
722
|
+
'formdesigner.fields': "Поля",
|
|
723
|
+
'formdesigner.field_on': "В форме",
|
|
724
|
+
'formdesigner.column': "Столбец",
|
|
725
|
+
'formdesigner.key': "ключ",
|
|
726
|
+
'formdesigner.order': "Порядок",
|
|
727
|
+
'formdesigner.label': "Подпись",
|
|
728
|
+
'formdesigner.help': "Подсказка",
|
|
729
|
+
'formdesigner.required_short': "Обязательно",
|
|
730
|
+
'formdesigner.display': "Вид",
|
|
731
|
+
'formdesigner.default': "По умолчанию",
|
|
732
|
+
'formdesigner.in_list': "В списке",
|
|
733
|
+
'formdesigner.display_auto': "Поле",
|
|
734
|
+
'formdesigner.display_textarea': "Многострочное поле",
|
|
735
|
+
'formdesigner.display_select': "Список выбора",
|
|
736
|
+
'formdesigner.display_radio': "Переключатели",
|
|
737
|
+
'formdesigner.actions': "Пользователи могут",
|
|
738
|
+
'formdesigner.allow_insert': "добавлять строки",
|
|
739
|
+
'formdesigner.allow_update': "изменять строки",
|
|
740
|
+
'formdesigner.allow_delete': "удалять строки",
|
|
741
|
+
'formdesigner.list_help': "Список строк показывает столбцы, отмеченные «В списке»; без них форма только добавляет строки.",
|
|
742
|
+
'formdesigner.save_form': "Сохранить форму",
|
|
743
|
+
'formdesigner.delete_form': "Удалить форму",
|
|
744
|
+
'formdesigner.delete_form_confirm': "Удалить форму «{name}»? Сохранённые ею строки останутся.",
|
|
745
|
+
'formdesigner.form_saved': "Форма «{name}» сохранена.",
|
|
746
|
+
'formdesigner.form_deleted': "Форма удалена.",
|
|
747
|
+
'formdesigner.name_required': "Дайте форме название.",
|
|
748
|
+
'formdesigner.no_fields': "Добавьте в форму хотя бы один столбец.",
|
|
749
|
+
'formdesigner.changed_by': "изменил(а) {user} {date}",
|
|
688
750
|
// AI assistant region and natural-language report filters (assistant.ts, ai-filter.ts)
|
|
689
751
|
'assistant.conversation': "Беседа",
|
|
690
752
|
'assistant.you': "Вы",
|
package/src/i18n/sv.ts
CHANGED
|
@@ -63,6 +63,7 @@ export const sv: Record<MessageKey, string> = {
|
|
|
63
63
|
'common.back': "Tillbaka",
|
|
64
64
|
'common.home': "Gå till startsidan",
|
|
65
65
|
'common.skip': "Hoppa till innehållet",
|
|
66
|
+
'common.back_to_top': "Till toppen",
|
|
66
67
|
'common.toggle_nav': "Visa eller dölj navigeringen",
|
|
67
68
|
'common.dismiss': "Stäng",
|
|
68
69
|
// messages and errors
|
|
@@ -390,6 +391,9 @@ export const sv: Record<MessageKey, string> = {
|
|
|
390
391
|
'facets.stars_up': "{n} stjärnor och uppåt",
|
|
391
392
|
'facets.star_up': "1 stjärna och uppåt",
|
|
392
393
|
'facets.clear_short': "Rensa",
|
|
394
|
+
'facets.menu': "Alternativ för {facet}",
|
|
395
|
+
'facets.sort_count': "Sortera efter antal",
|
|
396
|
+
'facets.sort_name': "Sortera efter namn",
|
|
393
397
|
'facets.show_all': "Visa alla ({n})",
|
|
394
398
|
'facets.total': "Totalt antal rader {n}",
|
|
395
399
|
'smart.placeholder': "Sök eller filtrera…",
|
|
@@ -685,6 +689,64 @@ export const sv: Record<MessageKey, string> = {
|
|
|
685
689
|
'reporter.changed': "ändrad {date}",
|
|
686
690
|
'reporter.no_match': "Inga rapporter matchar sökningen.",
|
|
687
691
|
'reporter.chart_tag': "diagram",
|
|
692
|
+
// Form Designer (form-designer.ts)
|
|
693
|
+
'formdesigner.no_sources': "Inga tabeller är inställda för den här regionen ännu.",
|
|
694
|
+
'formdesigner.no_forms': "Det finns inga formulär ännu.",
|
|
695
|
+
'formdesigner.new': "Nytt formulär",
|
|
696
|
+
'formdesigner.create': "Utforma",
|
|
697
|
+
'formdesigner.draft': "Utkast",
|
|
698
|
+
'formdesigner.design': "Utforma formulär",
|
|
699
|
+
'formdesigner.design_of': "Utformning av {name}",
|
|
700
|
+
'formdesigner.back': "Alla formulär",
|
|
701
|
+
'formdesigner.add': "Lägg till",
|
|
702
|
+
'formdesigner.edit_row': "Redigera",
|
|
703
|
+
'formdesigner.rows': "Rader i {form}",
|
|
704
|
+
'formdesigner.save': "Spara",
|
|
705
|
+
'formdesigner.delete': "Ta bort",
|
|
706
|
+
'formdesigner.delete_confirm': "Ta bort den här raden?",
|
|
707
|
+
'formdesigner.cancel': "Avbryt",
|
|
708
|
+
'formdesigner.saved_row': "Sparat.",
|
|
709
|
+
'formdesigner.deleted_row': "Borttaget.",
|
|
710
|
+
'formdesigner.required': "{field} är obligatoriskt.",
|
|
711
|
+
'formdesigner.not_in_list': "{field}: välj ett värde i listan.",
|
|
712
|
+
'formdesigner.changed': "Någon annan har ändrat raden under tiden. Kontrollera den och spara igen.",
|
|
713
|
+
'formdesigner.row_not_found': "Raden finns inte, eller så får du inte se den.",
|
|
714
|
+
'formdesigner.not_allowed': "Det får du inte göra med den här raden.",
|
|
715
|
+
'formdesigner.form_not_found': "Formuläret finns inte (längre).",
|
|
716
|
+
'formdesigner.unknown_source': "Formulärets tabell erbjuds inte längre.",
|
|
717
|
+
'formdesigner.nothing': "Formuläret har inga fält ännu.",
|
|
718
|
+
'formdesigner.choose': "- Välj -",
|
|
719
|
+
'formdesigner.name': "Namn",
|
|
720
|
+
'formdesigner.description': "Beskrivning",
|
|
721
|
+
'formdesigner.published': "Publicerat: alla som kan se den här sidan får använda formuläret",
|
|
722
|
+
'formdesigner.fields': "Fält",
|
|
723
|
+
'formdesigner.field_on': "På formuläret",
|
|
724
|
+
'formdesigner.column': "Kolumn",
|
|
725
|
+
'formdesigner.key': "nyckel",
|
|
726
|
+
'formdesigner.order': "Ordning",
|
|
727
|
+
'formdesigner.label': "Etikett",
|
|
728
|
+
'formdesigner.help': "Hjälptext",
|
|
729
|
+
'formdesigner.required_short': "Obligatoriskt",
|
|
730
|
+
'formdesigner.display': "Visning",
|
|
731
|
+
'formdesigner.default': "Standard",
|
|
732
|
+
'formdesigner.in_list': "I listan",
|
|
733
|
+
'formdesigner.display_auto': "Fält",
|
|
734
|
+
'formdesigner.display_textarea': "Textområde",
|
|
735
|
+
'formdesigner.display_select': "Väljlista",
|
|
736
|
+
'formdesigner.display_radio': "Alternativknappar",
|
|
737
|
+
'formdesigner.actions': "Användare får",
|
|
738
|
+
'formdesigner.allow_insert': "lägga till rader",
|
|
739
|
+
'formdesigner.allow_update': "ändra rader",
|
|
740
|
+
'formdesigner.allow_delete': "ta bort rader",
|
|
741
|
+
'formdesigner.list_help': "Radlistan visar kolumnerna som är markerade \"I listan\"; utan några lägger formuläret bara till rader.",
|
|
742
|
+
'formdesigner.save_form': "Spara formulär",
|
|
743
|
+
'formdesigner.delete_form': "Ta bort formulär",
|
|
744
|
+
'formdesigner.delete_form_confirm': "Ta bort formuläret \"{name}\"? Raderna det har sparat finns kvar.",
|
|
745
|
+
'formdesigner.form_saved': "Formuläret \"{name}\" har sparats.",
|
|
746
|
+
'formdesigner.form_deleted': "Formuläret har tagits bort.",
|
|
747
|
+
'formdesigner.name_required': "Ge formuläret ett namn.",
|
|
748
|
+
'formdesigner.no_fields': "Lägg minst en kolumn på formuläret.",
|
|
749
|
+
'formdesigner.changed_by': "ändrat av {user} den {date}",
|
|
688
750
|
// AI assistant region and natural-language report filters (assistant.ts, ai-filter.ts)
|
|
689
751
|
'assistant.conversation': "Konversation",
|
|
690
752
|
'assistant.you': "Du",
|
package/src/i18n/tr.ts
CHANGED
|
@@ -63,6 +63,7 @@ export const tr: Record<MessageKey, string> = {
|
|
|
63
63
|
'common.back': "Geri dön",
|
|
64
64
|
'common.home': "Ana sayfaya git",
|
|
65
65
|
'common.skip': "İçeriğe atla",
|
|
66
|
+
'common.back_to_top': "Başa dön",
|
|
66
67
|
'common.toggle_nav': "Gezintiyi göster veya gizle",
|
|
67
68
|
'common.dismiss': "Kapat",
|
|
68
69
|
// messages and errors
|
|
@@ -390,6 +391,9 @@ export const tr: Record<MessageKey, string> = {
|
|
|
390
391
|
'facets.stars_up': "{n} yıldız ve üzeri",
|
|
391
392
|
'facets.star_up': "1 yıldız ve üzeri",
|
|
392
393
|
'facets.clear_short': "Temizle",
|
|
394
|
+
'facets.menu': "{facet} seçenekleri",
|
|
395
|
+
'facets.sort_count': "Sayıya göre sırala",
|
|
396
|
+
'facets.sort_name': "Ada göre sırala",
|
|
393
397
|
'facets.show_all': "Tümünü göster ({n})",
|
|
394
398
|
'facets.total': "Toplam satır sayısı {n}",
|
|
395
399
|
'smart.placeholder': "Ara veya süz…",
|
|
@@ -685,6 +689,64 @@ export const tr: Record<MessageKey, string> = {
|
|
|
685
689
|
'reporter.changed': "{date} tarihinde değişti",
|
|
686
690
|
'reporter.no_match': "Aramayla eşleşen rapor yok.",
|
|
687
691
|
'reporter.chart_tag': "grafik",
|
|
692
|
+
// Form Designer (form-designer.ts)
|
|
693
|
+
'formdesigner.no_sources': "Bu bölge için henüz tablo ayarlanmadı.",
|
|
694
|
+
'formdesigner.no_forms': "Henüz form yok.",
|
|
695
|
+
'formdesigner.new': "Yeni form",
|
|
696
|
+
'formdesigner.create': "Tasarla",
|
|
697
|
+
'formdesigner.draft': "Taslak",
|
|
698
|
+
'formdesigner.design': "Formu tasarla",
|
|
699
|
+
'formdesigner.design_of': "{name} tasarımı",
|
|
700
|
+
'formdesigner.back': "Tüm formlar",
|
|
701
|
+
'formdesigner.add': "Ekle",
|
|
702
|
+
'formdesigner.edit_row': "Düzenle",
|
|
703
|
+
'formdesigner.rows': "{form} satırları",
|
|
704
|
+
'formdesigner.save': "Kaydet",
|
|
705
|
+
'formdesigner.delete': "Sil",
|
|
706
|
+
'formdesigner.delete_confirm': "Bu satır silinsin mi?",
|
|
707
|
+
'formdesigner.cancel': "İptal",
|
|
708
|
+
'formdesigner.saved_row': "Kaydedildi.",
|
|
709
|
+
'formdesigner.deleted_row': "Silindi.",
|
|
710
|
+
'formdesigner.required': "{field} zorunludur.",
|
|
711
|
+
'formdesigner.not_in_list': "{field}: listeden bir değer seçin.",
|
|
712
|
+
'formdesigner.changed': "Bu arada başka biri bu satırı değiştirdi. Kontrol edip yeniden kaydedin.",
|
|
713
|
+
'formdesigner.row_not_found': "Bu satır yok ya da görmenize izin yok.",
|
|
714
|
+
'formdesigner.not_allowed': "Bu satırla bunu yapmanıza izin yok.",
|
|
715
|
+
'formdesigner.form_not_found': "Bu form yok (artık).",
|
|
716
|
+
'formdesigner.unknown_source': "Bu formun tablosu artık sunulmuyor.",
|
|
717
|
+
'formdesigner.nothing': "Bu formun henüz alanı yok.",
|
|
718
|
+
'formdesigner.choose': "- Seçin -",
|
|
719
|
+
'formdesigner.name': "Ad",
|
|
720
|
+
'formdesigner.description': "Açıklama",
|
|
721
|
+
'formdesigner.published': "Yayımlandı: bu sayfayı görebilen herkes formu kullanabilir",
|
|
722
|
+
'formdesigner.fields': "Alanlar",
|
|
723
|
+
'formdesigner.field_on': "Formda",
|
|
724
|
+
'formdesigner.column': "Sütun",
|
|
725
|
+
'formdesigner.key': "anahtar",
|
|
726
|
+
'formdesigner.order': "Sıra",
|
|
727
|
+
'formdesigner.label': "Etiket",
|
|
728
|
+
'formdesigner.help': "Yardım metni",
|
|
729
|
+
'formdesigner.required_short': "Zorunlu",
|
|
730
|
+
'formdesigner.display': "Görünüm",
|
|
731
|
+
'formdesigner.default': "Varsayılan",
|
|
732
|
+
'formdesigner.in_list': "Listede",
|
|
733
|
+
'formdesigner.display_auto': "Alan",
|
|
734
|
+
'formdesigner.display_textarea': "Metin alanı",
|
|
735
|
+
'formdesigner.display_select': "Seçim listesi",
|
|
736
|
+
'formdesigner.display_radio': "Seçenek grubu",
|
|
737
|
+
'formdesigner.actions': "Kullanıcılar şunları yapabilir:",
|
|
738
|
+
'formdesigner.allow_insert': "satır ekleme",
|
|
739
|
+
'formdesigner.allow_update': "satır değiştirme",
|
|
740
|
+
'formdesigner.allow_delete': "satır silme",
|
|
741
|
+
'formdesigner.list_help': "Satır listesi \"Listede\" işaretli sütunları gösterir; hiçbiri yoksa form yalnızca satır ekler.",
|
|
742
|
+
'formdesigner.save_form': "Formu kaydet",
|
|
743
|
+
'formdesigner.delete_form': "Formu sil",
|
|
744
|
+
'formdesigner.delete_form_confirm': "\"{name}\" formu silinsin mi? Kaydettiği satırlar kalır.",
|
|
745
|
+
'formdesigner.form_saved': "\"{name}\" formu kaydedildi.",
|
|
746
|
+
'formdesigner.form_deleted': "Form silindi.",
|
|
747
|
+
'formdesigner.name_required': "Forma bir ad verin.",
|
|
748
|
+
'formdesigner.no_fields': "Forma en az bir sütun koyun.",
|
|
749
|
+
'formdesigner.changed_by': "{user} tarafından {date} tarihinde değiştirildi",
|
|
688
750
|
// AI assistant region and natural-language report filters (assistant.ts, ai-filter.ts)
|
|
689
751
|
'assistant.conversation': "Sohbet",
|
|
690
752
|
'assistant.you': "Siz",
|
package/src/i18n/uk.ts
CHANGED
|
@@ -63,6 +63,7 @@ export const uk: Record<MessageKey, string> = {
|
|
|
63
63
|
'common.back': "Назад",
|
|
64
64
|
'common.home': "На головну сторінку",
|
|
65
65
|
'common.skip': "Перейти до вмісту",
|
|
66
|
+
'common.back_to_top': "Угору",
|
|
66
67
|
'common.toggle_nav': "Показати або сховати навігацію",
|
|
67
68
|
'common.dismiss': "Закрити",
|
|
68
69
|
// messages and errors
|
|
@@ -390,6 +391,9 @@ export const uk: Record<MessageKey, string> = {
|
|
|
390
391
|
'facets.stars_up': "{n} зірки й вище",
|
|
391
392
|
'facets.star_up': "1 зірка й вище",
|
|
392
393
|
'facets.clear_short': "Очистити",
|
|
394
|
+
'facets.menu': "Параметри: {facet}",
|
|
395
|
+
'facets.sort_count': "Сортувати за кількістю",
|
|
396
|
+
'facets.sort_name': "Сортувати за назвою",
|
|
393
397
|
'facets.show_all': "Показати все ({n})",
|
|
394
398
|
'facets.total': "Усього рядків {n}",
|
|
395
399
|
'smart.placeholder': "Пошук або фільтр…",
|
|
@@ -685,6 +689,64 @@ export const uk: Record<MessageKey, string> = {
|
|
|
685
689
|
'reporter.changed': "змінено {date}",
|
|
686
690
|
'reporter.no_match': "Немає звітів, що відповідають пошуку.",
|
|
687
691
|
'reporter.chart_tag': "діаграма",
|
|
692
|
+
// Form Designer (form-designer.ts)
|
|
693
|
+
'formdesigner.no_sources': "Для цієї області ще не налаштовано таблиць.",
|
|
694
|
+
'formdesigner.no_forms': "Форм поки немає.",
|
|
695
|
+
'formdesigner.new': "Нова форма",
|
|
696
|
+
'formdesigner.create': "Створити",
|
|
697
|
+
'formdesigner.draft': "Чернетка",
|
|
698
|
+
'formdesigner.design': "Змінити форму",
|
|
699
|
+
'formdesigner.design_of': "Конструктор: {name}",
|
|
700
|
+
'formdesigner.back': "Усі форми",
|
|
701
|
+
'formdesigner.add': "Додати",
|
|
702
|
+
'formdesigner.edit_row': "Змінити",
|
|
703
|
+
'formdesigner.rows': "Рядки: {form}",
|
|
704
|
+
'formdesigner.save': "Зберегти",
|
|
705
|
+
'formdesigner.delete': "Видалити",
|
|
706
|
+
'formdesigner.delete_confirm': "Видалити цей рядок?",
|
|
707
|
+
'formdesigner.cancel': "Скасувати",
|
|
708
|
+
'formdesigner.saved_row': "Збережено.",
|
|
709
|
+
'formdesigner.deleted_row': "Видалено.",
|
|
710
|
+
'formdesigner.required': "Поле «{field}» обов’язкове.",
|
|
711
|
+
'formdesigner.not_in_list': "{field}: виберіть значення зі списку.",
|
|
712
|
+
'formdesigner.changed': "Хтось інший тим часом змінив цей рядок. Перевірте його й збережіть знову.",
|
|
713
|
+
'formdesigner.row_not_found': "Цього рядка немає, або вам не можна його бачити.",
|
|
714
|
+
'formdesigner.not_allowed': "З цим рядком так робити не можна.",
|
|
715
|
+
'formdesigner.form_not_found': "Цієї форми немає (більше).",
|
|
716
|
+
'formdesigner.unknown_source': "Таблиця цієї форми більше не пропонується.",
|
|
717
|
+
'formdesigner.nothing': "У цій формі ще немає полів.",
|
|
718
|
+
'formdesigner.choose': "- Виберіть -",
|
|
719
|
+
'formdesigner.name': "Назва",
|
|
720
|
+
'formdesigner.description': "Опис",
|
|
721
|
+
'formdesigner.published': "Опубліковано: форму може використовувати кожен, хто бачить цю сторінку",
|
|
722
|
+
'formdesigner.fields': "Поля",
|
|
723
|
+
'formdesigner.field_on': "У формі",
|
|
724
|
+
'formdesigner.column': "Стовпець",
|
|
725
|
+
'formdesigner.key': "ключ",
|
|
726
|
+
'formdesigner.order': "Порядок",
|
|
727
|
+
'formdesigner.label': "Підпис",
|
|
728
|
+
'formdesigner.help': "Підказка",
|
|
729
|
+
'formdesigner.required_short': "Обов’язково",
|
|
730
|
+
'formdesigner.display': "Вигляд",
|
|
731
|
+
'formdesigner.default': "Типово",
|
|
732
|
+
'formdesigner.in_list': "У списку",
|
|
733
|
+
'formdesigner.display_auto': "Поле",
|
|
734
|
+
'formdesigner.display_textarea': "Багаторядкове поле",
|
|
735
|
+
'formdesigner.display_select': "Список вибору",
|
|
736
|
+
'formdesigner.display_radio': "Перемикачі",
|
|
737
|
+
'formdesigner.actions': "Користувачі можуть",
|
|
738
|
+
'formdesigner.allow_insert': "додавати рядки",
|
|
739
|
+
'formdesigner.allow_update': "змінювати рядки",
|
|
740
|
+
'formdesigner.allow_delete': "видаляти рядки",
|
|
741
|
+
'formdesigner.list_help': "Список рядків показує стовпці, позначені «У списку»; без них форма лише додає рядки.",
|
|
742
|
+
'formdesigner.save_form': "Зберегти форму",
|
|
743
|
+
'formdesigner.delete_form': "Видалити форму",
|
|
744
|
+
'formdesigner.delete_form_confirm': "Видалити форму «{name}»? Збережені нею рядки залишаться.",
|
|
745
|
+
'formdesigner.form_saved': "Форму «{name}» збережено.",
|
|
746
|
+
'formdesigner.form_deleted': "Форму видалено.",
|
|
747
|
+
'formdesigner.name_required': "Дайте формі назву.",
|
|
748
|
+
'formdesigner.no_fields': "Додайте до форми хоча б один стовпець.",
|
|
749
|
+
'formdesigner.changed_by': "змінив(ла) {user} {date}",
|
|
688
750
|
// AI assistant region and natural-language report filters (assistant.ts, ai-filter.ts)
|
|
689
751
|
'assistant.conversation': "Розмова",
|
|
690
752
|
'assistant.you': "Ви",
|
package/src/i18n/zh.ts
CHANGED
|
@@ -63,6 +63,7 @@ export const zh: Record<MessageKey, string> = {
|
|
|
63
63
|
'common.back': "返回",
|
|
64
64
|
'common.home': "转到首页",
|
|
65
65
|
'common.skip': "跳到内容",
|
|
66
|
+
'common.back_to_top': "返回顶部",
|
|
66
67
|
'common.toggle_nav': "显示或隐藏导航",
|
|
67
68
|
'common.dismiss': "关闭",
|
|
68
69
|
// messages and errors
|
|
@@ -390,6 +391,9 @@ export const zh: Record<MessageKey, string> = {
|
|
|
390
391
|
'facets.stars_up': "{n} 星及以上",
|
|
391
392
|
'facets.star_up': "1 星及以上",
|
|
392
393
|
'facets.clear_short': "清除",
|
|
394
|
+
'facets.menu': "{facet} 选项",
|
|
395
|
+
'facets.sort_count': "按数量排序",
|
|
396
|
+
'facets.sort_name': "按名称排序",
|
|
393
397
|
'facets.show_all': "显示全部 ({n})",
|
|
394
398
|
'facets.total': "总行数 {n}",
|
|
395
399
|
'smart.placeholder': "搜索或筛选…",
|
|
@@ -685,6 +689,64 @@ export const zh: Record<MessageKey, string> = {
|
|
|
685
689
|
'reporter.changed': "修改于 {date}",
|
|
686
690
|
'reporter.no_match': "没有与搜索匹配的报表。",
|
|
687
691
|
'reporter.chart_tag': "图表",
|
|
692
|
+
// Form Designer (form-designer.ts)
|
|
693
|
+
'formdesigner.no_sources': "此区域尚未设置任何表。",
|
|
694
|
+
'formdesigner.no_forms': "还没有表单。",
|
|
695
|
+
'formdesigner.new': "新建表单",
|
|
696
|
+
'formdesigner.create': "设计",
|
|
697
|
+
'formdesigner.draft': "草稿",
|
|
698
|
+
'formdesigner.design': "设计表单",
|
|
699
|
+
'formdesigner.design_of': "设计 {name}",
|
|
700
|
+
'formdesigner.back': "所有表单",
|
|
701
|
+
'formdesigner.add': "添加",
|
|
702
|
+
'formdesigner.edit_row': "编辑",
|
|
703
|
+
'formdesigner.rows': "{form} 的行",
|
|
704
|
+
'formdesigner.save': "保存",
|
|
705
|
+
'formdesigner.delete': "删除",
|
|
706
|
+
'formdesigner.delete_confirm': "删除这一行?",
|
|
707
|
+
'formdesigner.cancel': "取消",
|
|
708
|
+
'formdesigner.saved_row': "已保存。",
|
|
709
|
+
'formdesigner.deleted_row': "已删除。",
|
|
710
|
+
'formdesigner.required': "{field} 为必填项。",
|
|
711
|
+
'formdesigner.not_in_list': "{field}:请从列表中选择一个值。",
|
|
712
|
+
'formdesigner.changed': "在此期间其他人修改了这一行。请检查后重新保存。",
|
|
713
|
+
'formdesigner.row_not_found': "这一行不存在,或者你无权查看。",
|
|
714
|
+
'formdesigner.not_allowed': "你不能对这一行执行此操作。",
|
|
715
|
+
'formdesigner.form_not_found': "此表单不存在(或已不存在)。",
|
|
716
|
+
'formdesigner.unknown_source': "此表单的表已不再提供。",
|
|
717
|
+
'formdesigner.nothing': "此表单还没有字段。",
|
|
718
|
+
'formdesigner.choose': "- 请选择 -",
|
|
719
|
+
'formdesigner.name': "名称",
|
|
720
|
+
'formdesigner.description': "说明",
|
|
721
|
+
'formdesigner.published': "已发布:能看到此页面的每个人都可以使用此表单",
|
|
722
|
+
'formdesigner.fields': "字段",
|
|
723
|
+
'formdesigner.field_on': "在表单上",
|
|
724
|
+
'formdesigner.column': "列",
|
|
725
|
+
'formdesigner.key': "键",
|
|
726
|
+
'formdesigner.order': "顺序",
|
|
727
|
+
'formdesigner.label': "标签",
|
|
728
|
+
'formdesigner.help': "帮助文本",
|
|
729
|
+
'formdesigner.required_short': "必填",
|
|
730
|
+
'formdesigner.display': "显示方式",
|
|
731
|
+
'formdesigner.default': "默认值",
|
|
732
|
+
'formdesigner.in_list': "在列表中",
|
|
733
|
+
'formdesigner.display_auto': "字段",
|
|
734
|
+
'formdesigner.display_textarea': "文本区域",
|
|
735
|
+
'formdesigner.display_select': "选择列表",
|
|
736
|
+
'formdesigner.display_radio': "单选组",
|
|
737
|
+
'formdesigner.actions': "用户可以",
|
|
738
|
+
'formdesigner.allow_insert': "添加行",
|
|
739
|
+
'formdesigner.allow_update': "修改行",
|
|
740
|
+
'formdesigner.allow_delete': "删除行",
|
|
741
|
+
'formdesigner.list_help': "行列表显示勾选了“在列表中”的列;没有勾选时,表单只添加行。",
|
|
742
|
+
'formdesigner.save_form': "保存表单",
|
|
743
|
+
'formdesigner.delete_form': "删除表单",
|
|
744
|
+
'formdesigner.delete_form_confirm': "删除表单“{name}”?用它保存的行会保留。",
|
|
745
|
+
'formdesigner.form_saved': "已保存表单“{name}”。",
|
|
746
|
+
'formdesigner.form_deleted': "已删除表单。",
|
|
747
|
+
'formdesigner.name_required': "请为表单命名。",
|
|
748
|
+
'formdesigner.no_fields': "请在表单上至少放一列。",
|
|
749
|
+
'formdesigner.changed_by': "{user} 于 {date} 修改",
|
|
688
750
|
// AI assistant region and natural-language report filters (assistant.ts, ai-filter.ts)
|
|
689
751
|
'assistant.conversation': "对话",
|
|
690
752
|
'assistant.you': "您",
|