mirror of
https://github.com/discourse/discourse-table-builder.git
synced 2026-11-02 01:18:17 -05:00
DEV: Deprecate theme component for migration to core (#74)
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
< v3.2.0.beta4-dev: 10a3c21551ab5f8ffc094ba64a967ecbf5ed5eba
|
||||
< 3.2.0.beta2: f076c50946b5969175d45fdd2fb6194f43394e24
|
||||
3.1.999: 04b36c68012fba9778e400e83b0b01d7947b2cdf
|
||||
3.1.0.beta2: 850e31c83d310a1b52e6105fe201eb96f9e33deb
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"extends": "eslint-config-discourse",
|
||||
"ignorePatterns": ["javascripts/vendor/*", "assets/vendor/*"],
|
||||
"globals": {
|
||||
"settings": "readonly",
|
||||
"themePrefix": "readonly"
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
name: Discourse Theme
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
uses: discourse/.github/.github/workflows/discourse-theme.yml@v1
|
||||
@@ -1,3 +0,0 @@
|
||||
.discourse-site
|
||||
node_modules
|
||||
HELP
|
||||
@@ -1 +0,0 @@
|
||||
{}
|
||||
@@ -1,4 +0,0 @@
|
||||
module.exports = {
|
||||
plugins: ["ember-template-lint-plugin-discourse"],
|
||||
extends: "discourse:recommended",
|
||||
};
|
||||
@@ -1,5 +1,9 @@
|
||||
# Discourse Table Builder
|
||||
|
||||
> ⚠️ **This theme component is deprecated and has now been bundled into core Discourse. Please remove it from your forum.**
|
||||
|
||||
---
|
||||
|
||||

|
||||
|
||||
A theme component that allows for easiy building and editing of markdown tables in Discourse.
|
||||
|
||||
+1
-12
@@ -7,16 +7,5 @@
|
||||
"learn_more": "TODO",
|
||||
"theme_version": "0.0.1",
|
||||
"minimum_discourse_version": "2.9.0.beta9",
|
||||
"maximum_discourse_version": null,
|
||||
"assets": {
|
||||
"jsuites": "assets/vendor/jsuites.js",
|
||||
"jspreadsheet": "assets/vendor/jspreadsheet.js"
|
||||
},
|
||||
"modifiers": {
|
||||
"svg_icons": [
|
||||
"align-left",
|
||||
"align-center",
|
||||
"align-right"
|
||||
]
|
||||
}
|
||||
"maximum_discourse_version": "v3.2.0.beta4-dev"
|
||||
}
|
||||
Vendored
-16905
File diff suppressed because one or more lines are too long
Vendored
-12414
File diff suppressed because it is too large
Load Diff
-88
@@ -1,88 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Global Variables:
|
||||
SCSS_VENDOR=scss/vendor/
|
||||
JS_VENDOR=assets/vendor/
|
||||
|
||||
JSUITES_JS_URL="https://jsuites.net/v4/jsuites.js"
|
||||
JSPREADSHEET_JS_URL="https://bossanova.uk/jspreadsheet/v4/jexcel.js"
|
||||
|
||||
JSUITES_CSS_URL="https://raw.githubusercontent.com/jsuites/jsuites/master/dist/jsuites.css"
|
||||
JSPREADSHEET_CSS_URL="https://bossanova.uk/jspreadsheet/v4/jexcel.css"
|
||||
|
||||
JSUITES_CSS_FILE=jsuites.css
|
||||
JSUITES_SCSS_FILE=jsuites.scss
|
||||
JSUITES_SCSS_FILE_LOCATION=$SCSS_VENDOR$JSUITES_SCSS_FILE
|
||||
|
||||
JSUITES_JS_FILE=jsuites.js
|
||||
JSUITES_NEW_JS_FILE=jsuites.js
|
||||
JSUITES_JS_FILE_LOCATION=$JS_VENDOR$JSUITES_NEW_JS_FILE
|
||||
|
||||
JSPREADSHEET_CSS_FILE=jexcel.css
|
||||
JSPREADSHEET_SCSS_FILE=jspreadsheet.scss
|
||||
JSPREADSHEET_SCSS_FILE_LOCATION=$SCSS_VENDOR$JSPREADSHEET_SCSS_FILE
|
||||
|
||||
JSPREADSHEET_JS_FILE=jexcel.js
|
||||
JSPREADSHEET_NEW_JS_FILE=jspreadsheet.js
|
||||
JSPREADSHEET_JS_FILE_LOCATION=$JS_VENDOR$JSPREADSHEET_NEW_JS_FILE
|
||||
|
||||
|
||||
|
||||
|
||||
# Remove all vendor related files:
|
||||
rm -r ${SCSS_VENDOR}*
|
||||
rm -r ${JS_VENDOR}
|
||||
|
||||
# Recreate vendor directory
|
||||
mkdir $JS_VENDOR
|
||||
echo "Old vendor assets have been removed."
|
||||
|
||||
|
||||
# STYLESHEETS:
|
||||
# Add JSuite vendor file
|
||||
if test -f "$JSUITES_CSS_FILE"; then
|
||||
echo "$JSUITES_CSS_FILE already exists."
|
||||
else
|
||||
# Fetch jsuite stylesheet
|
||||
wget $JSUITES_CSS_URL
|
||||
echo "$JSUITES_CSS_FILE has been created in $(pwd)"
|
||||
# Move jsuite stylesheet to vendor as a scss file
|
||||
mv $JSUITES_CSS_FILE $JSUITES_SCSS_FILE_LOCATION
|
||||
echo "$JSUITES_SCSS_FILE has been placed in the scss vendor directory"
|
||||
# Scope styles to jexcel_container class
|
||||
sed -i '' '1s/^/.jexcel_container {\n/' $JSUITES_SCSS_FILE_LOCATION
|
||||
sed -i '' '$a\
|
||||
}' $JSUITES_SCSS_FILE_LOCATION
|
||||
|
||||
# Remove conflicting animation classes
|
||||
# TODO: Improve below code to handle nested code blocks
|
||||
fi
|
||||
|
||||
# Add JSpreadsheet vendor file
|
||||
if test -f "$JSPREADSHEET_CSS_FILE"; then
|
||||
echo "$JSPREADSHEET_CSS_FILE already exists."
|
||||
else
|
||||
# Fetch jspreadsheet stylesheet
|
||||
wget $JSPREADSHEET_CSS_URL
|
||||
echo "$JSPREADSHEET_CSS_FILE has been created in $(pwd)"
|
||||
# Move jspreadsheet stylesheet to vendor as a scss file
|
||||
mv $JSPREADSHEET_CSS_FILE $JSPREADSHEET_SCSS_FILE_LOCATION
|
||||
fi
|
||||
|
||||
# Apply prettier to vendor files
|
||||
yarn prettier --write $SCSS_VENDOR
|
||||
|
||||
# JAVASCRIPTS:
|
||||
if test -f "$JSUITES_JS_FILE"; then
|
||||
echo "$JSUITES_JS_FILE already exists."
|
||||
else
|
||||
wget $JSUITES_JS_URL
|
||||
mv $JSUITES_JS_FILE $JSUITES_JS_FILE_LOCATION
|
||||
fi
|
||||
|
||||
if test -f "$JSPREADSHEET_JS_FILE"; then
|
||||
echo "$JSPREADSHEET_JS_FILE already exists."
|
||||
else
|
||||
wget $JSPREADSHEET_JS_URL
|
||||
mv $JSPREADSHEET_JS_FILE $JSPREADSHEET_JS_FILE_LOCATION
|
||||
fi
|
||||
@@ -1,5 +0,0 @@
|
||||
@import "vendor/jspreadsheet";
|
||||
@import "vendor/jsuites";
|
||||
@import "theme/jspreadsheet-theme";
|
||||
@import "post/table-edit-decorator";
|
||||
@import "modal/insert-table-modal";
|
||||
@@ -1,77 +0,0 @@
|
||||
/* eslint-disable */
|
||||
|
||||
/**
|
||||
* Generate markdown table from an array of objects
|
||||
* Inspired by https://github.com/Ygilany/array-to-table
|
||||
*
|
||||
* @param {Array} array Array of objects
|
||||
* @param {Array} columns Column headings
|
||||
* @param {String} colPrefix Table column prefix
|
||||
*
|
||||
* @return {String} Markdown table
|
||||
*/
|
||||
export function arrayToTable(array, cols, colPrefix = "col") {
|
||||
var table = "";
|
||||
|
||||
// Generate table headers
|
||||
table += "|";
|
||||
table += cols.join(" | ");
|
||||
table += "|\r\n|";
|
||||
|
||||
// Generate table header separator
|
||||
table += cols
|
||||
.map(function () {
|
||||
return "---";
|
||||
})
|
||||
.join(" | ");
|
||||
table += "|\r\n";
|
||||
|
||||
// Generate table body
|
||||
array.forEach(function (item) {
|
||||
table += "|";
|
||||
|
||||
table +=
|
||||
cols
|
||||
.map(function (_key, index) {
|
||||
return String(item[`${colPrefix}${index}`] || "").replace(
|
||||
/\r?\n|\r/g,
|
||||
" "
|
||||
);
|
||||
})
|
||||
.join(" | ") + "|\r\n";
|
||||
});
|
||||
|
||||
return table;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @returns a regular expression finding all markdown tables
|
||||
*/
|
||||
export function findTableRegex() {
|
||||
return /((\r?){2}|^)(^\|[^\r\n]*(\r?\n)?)+(?=(\r?\n){2}|$)/gm;
|
||||
}
|
||||
|
||||
export function tokenRange(tokens, start, end) {
|
||||
const contents = [];
|
||||
let startPushing = false;
|
||||
let items = [];
|
||||
|
||||
tokens.forEach((token) => {
|
||||
if (token.type === start) {
|
||||
startPushing = true;
|
||||
}
|
||||
|
||||
if (token.type === end) {
|
||||
contents.push(items);
|
||||
items = [];
|
||||
startPushing = false;
|
||||
}
|
||||
|
||||
if (startPushing) {
|
||||
items.push(token);
|
||||
}
|
||||
});
|
||||
|
||||
return contents;
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
import { apiInitializer } from "discourse/lib/api";
|
||||
import SpreadsheetEditor from "../components/spreadsheet-editor";
|
||||
|
||||
export default apiInitializer("1.13.0", (api) => {
|
||||
const modal = api.container.lookup("service:modal");
|
||||
|
||||
api.addComposerToolbarPopupMenuOption({
|
||||
icon: "table",
|
||||
label: themePrefix("discourse_table_builder.composer.button"),
|
||||
action: (toolbarEvent) => {
|
||||
modal.show(SpreadsheetEditor, {
|
||||
model: {
|
||||
toolbarEvent,
|
||||
tableTokens: null,
|
||||
},
|
||||
});
|
||||
},
|
||||
});
|
||||
});
|
||||
@@ -1,105 +0,0 @@
|
||||
import { apiInitializer } from "discourse/lib/api";
|
||||
import SpreadsheetEditor from "../components/spreadsheet-editor";
|
||||
import { schedule } from "@ember/runloop";
|
||||
import I18n from "I18n";
|
||||
import { iconNode } from "discourse-common/lib/icon-library";
|
||||
import { create } from "virtual-dom";
|
||||
import { ajax } from "discourse/lib/ajax";
|
||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||
import { parseAsync } from "discourse/lib/text";
|
||||
import { tokenRange } from "../../discourse-table-builder/lib/utilities";
|
||||
|
||||
export default apiInitializer("0.11.1", (api) => {
|
||||
const modal = api.container.lookup("service:modal");
|
||||
|
||||
function createButton() {
|
||||
const openPopupBtn = document.createElement("button");
|
||||
openPopupBtn.classList.add(
|
||||
"open-popup-link",
|
||||
"btn-default",
|
||||
"btn",
|
||||
"btn-icon",
|
||||
"btn-edit-table",
|
||||
"no-text"
|
||||
);
|
||||
const editIcon = create(
|
||||
iconNode("pencil-alt", { class: "edit-table-icon" })
|
||||
);
|
||||
openPopupBtn.title = I18n.t(
|
||||
themePrefix("discourse_table_builder.edit.btn_edit")
|
||||
);
|
||||
openPopupBtn.append(editIcon);
|
||||
return openPopupBtn;
|
||||
}
|
||||
|
||||
function generateModal() {
|
||||
const tableIndex = this.tableIndex;
|
||||
|
||||
return ajax(`/posts/${this.id}`, { type: "GET" })
|
||||
.then((post) =>
|
||||
parseAsync(post.raw).then((tokens) => {
|
||||
const allTables = tokenRange(tokens, "table_open", "table_close");
|
||||
const tableTokens = allTables[tableIndex];
|
||||
|
||||
modal.show(SpreadsheetEditor, {
|
||||
model: {
|
||||
post,
|
||||
tableIndex,
|
||||
tableTokens,
|
||||
},
|
||||
});
|
||||
})
|
||||
)
|
||||
.catch(popupAjaxError);
|
||||
}
|
||||
|
||||
function generatePopups(tables, attrs) {
|
||||
tables.forEach((table, index) => {
|
||||
const popupBtn = createButton();
|
||||
table.parentNode.setAttribute("data-table-index", index);
|
||||
table.parentNode.classList.add("fullscreen-table-wrapper");
|
||||
const expandBtn = table.parentNode.querySelector(".open-popup-link");
|
||||
|
||||
if (table.parentNode.contains(expandBtn)) {
|
||||
expandBtn.parentNode.insertBefore(popupBtn, expandBtn);
|
||||
} else {
|
||||
const buttonWrapper = document.createElement("div");
|
||||
buttonWrapper.classList.add("fullscreen-table-wrapper--buttons");
|
||||
buttonWrapper.append(popupBtn);
|
||||
table.parentNode.insertBefore(buttonWrapper, table);
|
||||
}
|
||||
|
||||
popupBtn.addEventListener(
|
||||
"click",
|
||||
generateModal.bind({ tableIndex: index, ...attrs }),
|
||||
false
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
function cleanupPopupBtns() {
|
||||
const popupBtns = document.querySelectorAll("button.open-popup-link");
|
||||
popupBtns.forEach((btn) => btn.removeEventListener("click", generateModal));
|
||||
}
|
||||
|
||||
api.decorateCookedElement(
|
||||
(post, helper) => {
|
||||
const canEdit = helper.widget.attrs.canEdit;
|
||||
|
||||
if (!canEdit) {
|
||||
return;
|
||||
}
|
||||
|
||||
schedule("afterRender", () => {
|
||||
const tables = post.querySelectorAll(".md-table table");
|
||||
generatePopups(tables, helper.widget.attrs);
|
||||
});
|
||||
},
|
||||
{
|
||||
onlyStream: true,
|
||||
id: "edit-table",
|
||||
}
|
||||
);
|
||||
|
||||
api.cleanupStream(cleanupPopupBtns);
|
||||
});
|
||||
@@ -1,74 +0,0 @@
|
||||
<DModal
|
||||
@title={{i18n this.modalAttributes.title}}
|
||||
@closeModal={{this.interceptCloseModal}}
|
||||
class="insert-table-modal"
|
||||
>
|
||||
<:body>
|
||||
<ConditionalLoadingSpinner @condition={{this.loading}}>
|
||||
<div
|
||||
{{did-insert this.createSpreadsheet}}
|
||||
tabindex="1"
|
||||
class="jexcel_container"
|
||||
></div>
|
||||
</ConditionalLoadingSpinner>
|
||||
</:body>
|
||||
|
||||
<:footer>
|
||||
<div class="primary-actions">
|
||||
<DButton
|
||||
@class="btn-insert-table"
|
||||
@label={{this.modalAttributes.insertTable.title}}
|
||||
@icon={{this.modalAttributes.insertTable.icon}}
|
||||
@action={{this.insertTable}}
|
||||
/>
|
||||
|
||||
<DModalCancel @close={{this.interceptCloseModal}} />
|
||||
</div>
|
||||
|
||||
<div class="secondary-actions">
|
||||
{{#if this.isEditingTable}}
|
||||
<div class="edit-reason">
|
||||
<DButton
|
||||
@icon="info-circle"
|
||||
@title={{theme-prefix
|
||||
"discourse_table_builder.edit.modal.trigger_reason"
|
||||
}}
|
||||
@action={{this.showEditReasonField}}
|
||||
@class="btn-edit-reason"
|
||||
/>
|
||||
{{#if this.showEditReason}}
|
||||
<TextField
|
||||
@value={{this.editReason}}
|
||||
@placeholderKey={{theme-prefix
|
||||
"discourse_table_builder.edit.modal.reason"
|
||||
}}
|
||||
/>
|
||||
{{/if}}
|
||||
</div>
|
||||
{{/if}}
|
||||
<DTooltip
|
||||
@icon="question"
|
||||
@triggers="click"
|
||||
@arrow={{false}}
|
||||
class="btn btn-icon no-text"
|
||||
>
|
||||
<ul>
|
||||
<h4>{{theme-i18n "discourse_table_builder.modal.help.title"}}</h4>
|
||||
<li>
|
||||
<kbd>
|
||||
{{theme-i18n "discourse_table_builder.modal.help.enter_key"}}
|
||||
</kbd>
|
||||
{{theme-i18n "discourse_table_builder.modal.help.new_row"}}
|
||||
</li>
|
||||
<li>
|
||||
<kbd>
|
||||
{{theme-i18n "discourse_table_builder.modal.help.tab_key"}}
|
||||
</kbd>
|
||||
{{theme-i18n "discourse_table_builder.modal.help.new_col"}}
|
||||
</li>
|
||||
<li>{{theme-i18n "discourse_table_builder.modal.help.options"}}</li>
|
||||
</ul>
|
||||
</DTooltip>
|
||||
</div>
|
||||
</:footer>
|
||||
</DModal>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,27 +0,0 @@
|
||||
// Backwards compatility for core versions before 82b16f4f
|
||||
// Can be removed once 3.2.0.beta1 is released, and the compat file is updated
|
||||
|
||||
const themeId = themePrefix("foo").match(/theme_translations\.(\d+)\.foo/)[1];
|
||||
const base = `discourse/theme-${themeId}`;
|
||||
|
||||
if (!require.entries[`${base}/discourse/components/spreadsheet-editor`]) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.warn(
|
||||
"Running on an old version of core. discourse-table-builder is shimming modules to keep old imports working."
|
||||
);
|
||||
|
||||
define(
|
||||
`discourse/discourse-table-builder/lib/utilities`,
|
||||
["exports", `${base}/discourse-table-builder/lib/utilities`],
|
||||
function (_exports, utilities) {
|
||||
_exports.tokenRange = utilities.tokenRange;
|
||||
_exports.arrayToTable = utilities.arrayToTable;
|
||||
_exports.findTableRegex = utilities.findTableRegex;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
export default {
|
||||
name: "add-template-module-shims",
|
||||
initialize() {},
|
||||
};
|
||||
@@ -1,67 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
ar:
|
||||
discourse_table_builder:
|
||||
title: "أداة إنشاء الجداول"
|
||||
composer:
|
||||
button: "إدراج جدول"
|
||||
modal:
|
||||
title: "أداة إنشاء الجداول"
|
||||
create: "إنشاء جدول"
|
||||
help:
|
||||
title: "استخدام محرر جداول البيانات"
|
||||
enter_key: "Enter"
|
||||
tab_key: "مفتاح Tab"
|
||||
new_row: "في نهاية الصف لإدراج صف جديد."
|
||||
new_col: "في نهاية العمود لإدراج عمود جديد."
|
||||
options: "انقر بزر الماوس الأيمن على الخلايا للوصول إلى المزيد من الخيارات في القائمة المنسدلة."
|
||||
edit:
|
||||
btn_edit: "تعديل الجدول"
|
||||
modal:
|
||||
title: "تعديل الجدول"
|
||||
cancel: "إلغاء"
|
||||
create: "حفظ"
|
||||
reason: "ما سبب التعديل؟"
|
||||
trigger_reason: "أضِف سبب التعديل"
|
||||
default_edit_reason: "تحديث الجدول باستخدام محرر الجداول"
|
||||
default_header:
|
||||
col_1: "العمود 1"
|
||||
col_2: "العمود 2"
|
||||
col_3: "العمود 3"
|
||||
col_4: "العمود 4"
|
||||
spreadsheet:
|
||||
no_records_found: "لم يتم العثور على سجلات"
|
||||
show: "إظهار"
|
||||
entries: "إدخالات"
|
||||
about: "نبذة"
|
||||
prompts:
|
||||
delete_selected_rows: "هل تريد بالتأكيد حذف الصفوف المحدَّدة؟"
|
||||
delete_selected_cols: "هل تريد بالتأكيد حذف الأعمدة المحدَّدة؟"
|
||||
will_destroy_merged_cells: "سيؤدي هذا الإجراء إلى تدمير أي خلايا مدموجة موجودة. هل أنت متأكد؟"
|
||||
will_clear_search_results: "سيؤدي هذا الإجراء إلى تدمير أي خلايا مدموجة موجودة. هل أنت متأكد؟"
|
||||
conflicts_with_merged_cells: "هناك تعارض مع خلية مدموجة أخرى"
|
||||
invalid_merge_props: "خصائص الدمج غير صالحة"
|
||||
cells_already_merged: "تم دمج الخلية بالفعل"
|
||||
no_cells_selected: "لم يتم تحديد أي خلايا"
|
||||
context_menu:
|
||||
row:
|
||||
before: "إدراج صف جديد قبله"
|
||||
after: "إدراج صف جديد بعده"
|
||||
delete: "حذف الصفوف المحدَّدة"
|
||||
col:
|
||||
before: "إدراج عمود جديد قبله"
|
||||
after: "إدراج عمود جديد بعده"
|
||||
delete: "حذف الأعمدة المحدَّدة"
|
||||
rename: "إعادة تسمية هذا العمود"
|
||||
order:
|
||||
ascending: "ترتيب تصاعدي"
|
||||
descending: "ترتيب تنازلي"
|
||||
copy: "نسخ..."
|
||||
paste: "لصق..."
|
||||
save: "الحفظ باسم..."
|
||||
theme_metadata:
|
||||
description: "يضيف زرًا إلى أداة الإنشاء لإنشاء الجداول بسهولة بلغة Markdown"
|
||||
@@ -1,15 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
be:
|
||||
discourse_table_builder:
|
||||
edit:
|
||||
modal:
|
||||
cancel: "адмена"
|
||||
create: "захаваць"
|
||||
reason: "чаму Вы рэдагуеце паведамленне?"
|
||||
spreadsheet:
|
||||
about: "Аб тэме"
|
||||
@@ -1,19 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
bg:
|
||||
discourse_table_builder:
|
||||
modal:
|
||||
help:
|
||||
enter_key: "Въведете"
|
||||
edit:
|
||||
modal:
|
||||
cancel: "прекрати"
|
||||
create: "Запази "
|
||||
reason: "защо редактирате ?"
|
||||
spreadsheet:
|
||||
show: "Покажи"
|
||||
about: "Относно"
|
||||
@@ -1,19 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
bs_BA:
|
||||
discourse_table_builder:
|
||||
modal:
|
||||
help:
|
||||
enter_key: "Naprijed"
|
||||
edit:
|
||||
modal:
|
||||
cancel: "otkaži"
|
||||
create: "Save"
|
||||
reason: "zašto pravite izmjenu?"
|
||||
spreadsheet:
|
||||
show: "Show"
|
||||
about: "O nama"
|
||||
@@ -1,19 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
ca:
|
||||
discourse_table_builder:
|
||||
modal:
|
||||
help:
|
||||
enter_key: "Retorn"
|
||||
edit:
|
||||
modal:
|
||||
cancel: "cancel·la"
|
||||
create: "Desa"
|
||||
reason: "per què ho editeu?"
|
||||
spreadsheet:
|
||||
show: "Mostra"
|
||||
about: "Quant a"
|
||||
@@ -1,16 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
cs:
|
||||
discourse_table_builder:
|
||||
edit:
|
||||
modal:
|
||||
cancel: "zrušit"
|
||||
create: "Uložit"
|
||||
reason: "proč byla nutná úprava?"
|
||||
spreadsheet:
|
||||
show: "Zobrazit"
|
||||
about: "O fóru"
|
||||
@@ -1,19 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
da:
|
||||
discourse_table_builder:
|
||||
modal:
|
||||
help:
|
||||
enter_key: "Enter"
|
||||
edit:
|
||||
modal:
|
||||
cancel: "annuller"
|
||||
create: "Gem"
|
||||
reason: "hvorfor redigerer du?"
|
||||
spreadsheet:
|
||||
show: "Vis"
|
||||
about: "Om"
|
||||
@@ -1,67 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
de:
|
||||
discourse_table_builder:
|
||||
title: "Tabellenersteller"
|
||||
composer:
|
||||
button: "Tabelle einfügen"
|
||||
modal:
|
||||
title: "Tabellenersteller"
|
||||
create: "Tabelle erstellen"
|
||||
help:
|
||||
title: "Verwendung des Tabellenkalkulationseditors"
|
||||
enter_key: "Enter"
|
||||
tab_key: "Tabulatur"
|
||||
new_row: "am Ende einer Zeile, um eine neue Zeile einzufügen."
|
||||
new_col: "am Ende einer Spalte, um eine neue Spalte einzufügen."
|
||||
options: "Klicke mit der rechten Maustaste auf eine Zelle, um weitere Optionen in einem Drop-down-Menü aufzurufen."
|
||||
edit:
|
||||
btn_edit: "Tabelle bearbeiten"
|
||||
modal:
|
||||
title: "Tabelle bearbeiten"
|
||||
cancel: "Abbrechen"
|
||||
create: "Speichern"
|
||||
reason: "Welchen Grund gibt es für die Bearbeitung?"
|
||||
trigger_reason: "Grund für die Bearbeitung hinzufügen"
|
||||
default_edit_reason: "Tabelle per Tabelleneditor aktualisieren"
|
||||
default_header:
|
||||
col_1: "Spalte 1"
|
||||
col_2: "Spalte 2"
|
||||
col_3: "Spalte 3"
|
||||
col_4: "Spalte 4"
|
||||
spreadsheet:
|
||||
no_records_found: "Keine Datensätze gefunden"
|
||||
show: "Anzeigen"
|
||||
entries: "Einträge"
|
||||
about: "Über"
|
||||
prompts:
|
||||
delete_selected_rows: "Bist du sicher, dass du die ausgewählten Zeilen löschen willst?"
|
||||
delete_selected_cols: "Bist du sicher, dass du die ausgewählten Spalten löschen willst?"
|
||||
will_destroy_merged_cells: "Durch diese Aktion werden alle vorhandenen zusammengeführten Zellen zerstört. Bist du sicher?"
|
||||
will_clear_search_results: "Durch diese Aktion werden alle vorhandenen zusammengeführten Zellen zerstört. Bist du sicher?"
|
||||
conflicts_with_merged_cells: "Es liegt ein Konflikt mit einer anderen zusammengeführten Zelle vor"
|
||||
invalid_merge_props: "Ungültige zusammengeführte Eigenschaften"
|
||||
cells_already_merged: "Zelle bereits zusammengeführt"
|
||||
no_cells_selected: "Keine Zellen ausgewählt"
|
||||
context_menu:
|
||||
row:
|
||||
before: "Davor neue Zeile einfügen"
|
||||
after: "Danach neue Zeile einfügen"
|
||||
delete: "Ausgewählte Zeilen löschen"
|
||||
col:
|
||||
before: "Davor neue Spalte einfügen"
|
||||
after: "Danach neue Spalte einfügen"
|
||||
delete: "Ausgewählte Spalten löschen"
|
||||
rename: "Diese Spalte umbenennen"
|
||||
order:
|
||||
ascending: "Reihenfolge aufsteigend"
|
||||
descending: "Reihenfolge absteigend"
|
||||
copy: "Kopieren …"
|
||||
paste: "Einfügen …"
|
||||
save: "Speichern als …"
|
||||
theme_metadata:
|
||||
description: "Fügt dem Editor eine Schaltfläche hinzu, um einfach Tabellen in Markdown zu erstellen"
|
||||
@@ -1,19 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
el:
|
||||
discourse_table_builder:
|
||||
modal:
|
||||
help:
|
||||
enter_key: "Enter"
|
||||
edit:
|
||||
modal:
|
||||
cancel: "ακύρωση"
|
||||
create: "Αποθήκευση"
|
||||
reason: "γιατί αναθεωρείς;"
|
||||
spreadsheet:
|
||||
show: "Εμφάνιση"
|
||||
about: "Σχετικά"
|
||||
@@ -1,62 +0,0 @@
|
||||
en:
|
||||
discourse_table_builder:
|
||||
title: "Table Builder"
|
||||
composer:
|
||||
button: "Insert Table"
|
||||
modal:
|
||||
title: "Table Builder"
|
||||
create: "Build Table"
|
||||
help:
|
||||
title: "Using the Spreadsheet Editor"
|
||||
enter_key: "Enter"
|
||||
tab_key: "Tab"
|
||||
new_row: "at the end of a row to insert a new row."
|
||||
new_col: "at the end of a column to insert a new column."
|
||||
options: "Right-click on cells to access more options in a dropdown menu."
|
||||
confirm_close: "Are you sure you want to close the table builder? Any unsaved changes will be lost."
|
||||
edit:
|
||||
btn_edit: "Edit Table"
|
||||
modal:
|
||||
title: "Edit Table"
|
||||
cancel: "cancel"
|
||||
create: "Save"
|
||||
reason: "why are you editing?"
|
||||
trigger_reason: "Add reason for edit"
|
||||
default_edit_reason: "Update Table with Table Editor"
|
||||
default_header:
|
||||
col_1: "Column 1"
|
||||
col_2: "Column 2"
|
||||
col_3: "Column 3"
|
||||
col_4: "Column 4"
|
||||
spreadsheet:
|
||||
no_records_found: "No records found"
|
||||
show: "Show"
|
||||
entries: "entries"
|
||||
about: "About"
|
||||
prompts:
|
||||
delete_selected_rows: "Are you sure you want to delete the selected rows?"
|
||||
delete_selected_cols: "Are you sure you want to delete the selected columns?"
|
||||
will_destroy_merged_cells: "This action will destroy any existing merged cells. Are you sure?"
|
||||
will_clear_search_results: "This action will destroy any existing merged cells. Are you sure?"
|
||||
conflicts_with_merged_cells: "There is a conflict with another merged cell"
|
||||
invalid_merge_props: "Invalid merged properties"
|
||||
cells_already_merged: "Cell already merged"
|
||||
no_cells_selected: "No cells selected"
|
||||
context_menu:
|
||||
row:
|
||||
before: "Insert a new row before"
|
||||
after: "Insert a new row after"
|
||||
delete: "Delete selected rows"
|
||||
col:
|
||||
before: "Insert a new column before"
|
||||
after: "Insert a new column after"
|
||||
delete: "Delete selected columns"
|
||||
rename: "Rename this column"
|
||||
order:
|
||||
ascending: "Order ascending"
|
||||
descending: "Order descending"
|
||||
copy: "Copy..."
|
||||
paste: "Paste..."
|
||||
save: "Save as..."
|
||||
theme_metadata:
|
||||
description: "Adds a button to the composer to easily build tables in markdown"
|
||||
@@ -1,7 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
en_GB:
|
||||
@@ -1,67 +0,0 @@
|
||||
# WARNING: Never edit this file.
|
||||
# It will be overwritten when translations are pulled from Crowdin.
|
||||
#
|
||||
# To work with us on translations, join this project:
|
||||
# https://translate.discourse.org/
|
||||
|
||||
es:
|
||||
discourse_table_builder:
|
||||
title: "Creador de tablas"
|
||||
composer:
|
||||
button: "Insertar tabla"
|
||||
modal:
|
||||
title: "Creador de tablas"
|
||||
create: "Crear tabla"
|
||||
help:
|
||||
title: "Usando el editor de hojas de cálculo"
|
||||
enter_key: "Intro"
|
||||
tab_key: "Tabulador"
|
||||
new_row: "al final de una fila para insertar una nueva fila."
|
||||
new_col: "al final de una columna para insertar una nueva columna."
|
||||
options: "Haz clic con el botón derecho en las celdas para acceder a más opciones en un menú desplegable."
|
||||
edit:
|
||||
btn_edit: "Editar tabla"
|
||||
modal:
|
||||
title: "Editar tabla"
|
||||
cancel: "cancelar"
|
||||
create: "Guardar"
|
||||
reason: "¿Por qué lo estás editando?"
|
||||
trigger_reason: "Añadir motivo de la edición"
|
||||
default_edit_reason: "Actualizar tabla con el editor de tablas"
|
||||
default_header:
|
||||
col_1: "Columna 1"
|
||||
col_2: "Columna 2"
|
||||
col_3: "Columna 3"
|
||||
col_4: "Columna 4"
|
||||
spreadsheet:
|
||||
no_records_found: "No se han encontrado registros"
|
||||
show: "Mostrar"
|
||||
entries: "entradas"
|
||||
about: "Acerca de"
|
||||
prompts:
|
||||
delete_selected_rows: "¿Seguro que quieres eliminar las filas seleccionadas?"
|
||||
delete_selected_cols: "¿Seguro que quieres eliminar las columnas seleccionadas?"
|
||||
will_destroy_merged_cells: "Esta acción destruirá cualquier celda fusionada existente. ¿Estás seguro/a?"
|
||||
will_clear_search_results: "Esta acción destruirá cualquier celda fusionada existente. ¿Estás seguro/a?"
|
||||
conflicts_with_merged_cells: "Hay un conflicto con otra celda fusionada."
|
||||
invalid_merge_props: "Propiedades fusionadas no válidas"
|
||||
cells_already_merged: "Celda ya fusionada"
|
||||
no_cells_selected: "No hay celdas seleccionadas"
|
||||
context_menu:
|
||||
row:
|
||||
before: "Insertar una nueva fila antes"
|
||||
after: "Insertar una nueva fila después"
|
||||
delete: "Eliminar filas seleccionadas"
|
||||
col:
|
||||
before: "Insertar una nueva columna antes"
|
||||
after: "Insertar una nueva columna después"
|
||||
delete: "Eliminar columnas seleccionadas"
|
||||
rename: "Cambiar el nombre de esta columna"
|
||||
order:
|
||||
ascending: "Orden ascendente"
|
||||
descending: "Orden descendente"
|
||||
copy: "Copiar..."
|
||||
paste: "Pegar..."
|
||||
save: "Guardar como..."
|
||||
theme_metadata:
|
||||
description: "Añade un botón al compositor para crear fácilmente tablas en markdown"
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user