diff --git a/acp/boardrules_module.php b/acp/boardrules_module.php index 48752f57..d2399dc6 100644 --- a/acp/boardrules_module.php +++ b/acp/boardrules_module.php @@ -89,7 +89,7 @@ public function main($id, $mode) // Return to stop execution of this script return; - break; + // no break; case 'edit': // Set the page title for our ACP page @@ -100,7 +100,7 @@ public function main($id, $mode) // Return to stop execution of this script return; - break; + // no break; case 'move_down': // Move a rule down one position @@ -121,7 +121,7 @@ public function main($id, $mode) $this->page_title = 'ACP_BOARDRULES_COPY_RULESET'; $admin_controller->copy_ruleset($language, $return_to); return; - break; + // no break; case 'publish': $admin_controller->set_ruleset_published($language, true, $return_to); @@ -130,6 +130,11 @@ public function main($id, $mode) case 'draft': $admin_controller->set_ruleset_published($language, false, $return_to); break; + + case 'save_intro': + $admin_controller->save_ruleset_intro($language); + return; + // no break; } // Check if a language variable was submitted and display diff --git a/adm/style/boardrules_acp.css b/adm/style/boardrules_acp.css index 7ad3e75b..f3c1b654 100644 --- a/adm/style/boardrules_acp.css +++ b/adm/style/boardrules_acp.css @@ -1,6 +1,6 @@ .boardrules-language-toolbar { display: flex; - align-items: flex-end; + align-items: center; flex-wrap: wrap; gap: 12px; margin: 14px 0; @@ -16,7 +16,15 @@ } .boardrules-language-picker label { - font-weight: bold; + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; } .boardrules-language-picker select { diff --git a/adm/style/boardrules_manage_rules.html b/adm/style/boardrules_manage_rules.html index 43a053b0..9baea62c 100644 --- a/adm/style/boardrules_manage_rules.html +++ b/adm/style/boardrules_manage_rules.html @@ -5,8 +5,9 @@

{{ lang('ACP_BOARDRULES_MANAGE') }}

+ {{ lang('ACP_BOARDRULES_SELECT_LANGUAGE') }}
- + + + +

+ + +

+ {{ S_FORM_TOKEN_INTRO }} +
+
+{% endif %} + {% if S_CAN_COPY_RULESET or S_RULESET_DRAFT or S_CAN_DRAFT_RULESET %}

{% if S_CAN_COPY_RULESET %} {{ lang('ACP_BOARDRULES_COPY_ACTION') }}{% endif %} @@ -103,6 +126,6 @@

{{ lang(S_DEFAULT_LANGUAGE ? 'ACP_BOARDRULES_STATUS_NO_RULES' : 'ACP_BOARDRU - {{ S_FORM_TOKEN }} + {{ S_FORM_TOKEN_ADD_RULE }} diff --git a/config/services.yml b/config/services.yml index 8ca6b80c..334dd14f 100644 --- a/config/services.yml +++ b/config/services.yml @@ -22,6 +22,7 @@ services: - '@controller.helper' - '@dbal.conn' - '@language' + - '@language.loader' - '@log' - '@notification_manager' - '@request' diff --git a/controller/admin_controller.php b/controller/admin_controller.php index 2a618356..9ba50cb4 100644 --- a/controller/admin_controller.php +++ b/controller/admin_controller.php @@ -32,6 +32,9 @@ class admin_controller implements admin_interface /** @var \phpbb\language\language */ protected $lang; + /** @var \phpbb\language\language_file_loader */ + protected $language_loader; + /** @var \phpbb\log\log */ protected $log; @@ -70,6 +73,7 @@ class admin_controller implements admin_interface * @param \phpbb\controller\helper $controller_helper Controller helper object * @param \phpbb\db\driver\driver_interface $db Database object * @param \phpbb\language\language $lang Language object + * @param \phpbb\language\language_file_loader $language_loader Language file loader * @param \phpbb\log\log $log Log object * @param \phpbb\notification\manager $notification_manager Notification manager * @param \phpbb\request\request $request Request object @@ -81,13 +85,14 @@ class admin_controller implements admin_interface * @param string $php_ext phpEx * @access public */ - public function __construct(\phpbb\config\config $config, ContainerInterface $container, \phpbb\controller\helper $controller_helper, \phpbb\db\driver\driver_interface $db, \phpbb\language\language $lang, \phpbb\log\log $log, \phpbb\notification\manager $notification_manager, \phpbb\request\request $request, \phpbb\boardrules\operators\rule $rule_operator, \phpbb\boardrules\operators\ruleset $ruleset_operator, \phpbb\template\template $template, \phpbb\user $user, $root_path, $php_ext) + public function __construct(\phpbb\config\config $config, ContainerInterface $container, \phpbb\controller\helper $controller_helper, \phpbb\db\driver\driver_interface $db, \phpbb\language\language $lang, \phpbb\language\language_file_loader $language_loader, \phpbb\log\log $log, \phpbb\notification\manager $notification_manager, \phpbb\request\request $request, \phpbb\boardrules\operators\rule $rule_operator, \phpbb\boardrules\operators\ruleset $ruleset_operator, \phpbb\template\template $template, \phpbb\user $user, $root_path, $php_ext) { $this->config = $config; $this->container = $container; $this->controller_helper = $controller_helper; $this->db = $db; $this->lang = $lang; + $this->language_loader = $language_loader; $this->log = $log; $this->notification_manager = $notification_manager; $this->request = $request; @@ -237,6 +242,10 @@ public function display_language_dashboard() */ public function display_rules($language, $parent_id = 0) { + add_form_key('boardrules_intro', '_INTRO'); + add_form_key('add_edit_rule', '_ADD_RULE'); + $this->lang->add_lang('boardrules_controller', 'phpbb/boardrules'); + $languages = $this->assign_language_options($language); $current_language = $this->find_language($languages, $language); if ($current_language === null) @@ -302,6 +311,9 @@ public function display_rules($language, $parent_id = 0) 'U_COPY_RULESET' => "{$this->u_action}&action=copy&language={$language}", 'U_PUBLISH_RULESET' => "{$this->u_action}&action=publish&language={$language}", 'U_DRAFT_RULESET' => "{$this->u_action}&action=draft&language={$language}", + 'U_INTRO_ACTION' => "{$this->u_action}&action=save_intro&language={$language}&parent_id={$parent_id}", + 'BOARDRULES_INTRO_TEXT' => $this->ruleset_operator->get_intro_text($language), + 'BOARDRULES_INTRO_FALLBACK' => $this->get_intro_fallback($language), 'CURRENT_LANGUAGE' => $current_language['lang_local_name'], 'CURRENT_RULE_COUNT' => $current_language['rule_count'], 'S_RULESET_EMPTY' => $current_language['rule_count'] === 0, @@ -310,9 +322,57 @@ public function display_rules($language, $parent_id = 0) 'S_RULESET_DRAFT' => $current_language['rule_count'] > 0 && !$current_language['published'], 'S_CAN_DRAFT_RULESET' => $current_language['rule_count'] > 0 && $current_language['published'] && $language !== $this->config['default_lang'], 'S_CAN_COPY_RULESET' => $this->has_copy_source($languages, $language), + 'S_RULESET_ROOT' => $parent_id === 0, )); } + /** + * Get the translated built-in introduction for a selected ruleset language. + * + * @param string $language + * @return string + */ + protected function get_intro_fallback($language) + { + $lang = array(); + $locales = array_values(array_unique(array($language, $this->config['default_lang'], \phpbb\language\language::FALLBACK_LANGUAGE))); + $this->language_loader->load_extension('phpbb/boardrules', 'boardrules_controller', $locales, $lang); + $sitename = html_entity_decode($this->config['sitename'], ENT_QUOTES); + + return isset($lang['BOARDRULES_EXPLAIN']) + ? sprintf($lang['BOARDRULES_EXPLAIN'], $sitename) + : $this->lang->lang('BOARDRULES_EXPLAIN', $sitename); + } + + /** + * Save a language ruleset's custom introduction. + * + * @param string $language + * @return void + */ + public function save_ruleset_intro($language) + { + if (!check_form_key('boardrules_intro')) + { + trigger_error($this->lang->lang('FORM_INVALID') . adm_back_link($this->u_action), E_USER_WARNING); + } + + $intro_text = trim(html_entity_decode($this->request->variable('boardrules_intro_text', '', true), ENT_COMPAT)); + + try + { + $this->ruleset_operator->set_intro_text($language, $intro_text); + } + catch (\InvalidArgumentException $e) + { + trigger_error($this->lang->lang($e->getMessage()) . adm_back_link($this->u_action), E_USER_WARNING); + } + + $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'ACP_BOARDRULES_INTRO_LOG', false, array($language)); + + trigger_error($this->lang->lang('ACP_BOARDRULES_INTRO_SAVED') . adm_back_link("{$this->u_action}&language={$language}")); + } + /** * Display and process the complete ruleset copy form. * diff --git a/controller/admin_interface.php b/controller/admin_interface.php index 7f73af2e..05004850 100644 --- a/controller/admin_interface.php +++ b/controller/admin_interface.php @@ -62,6 +62,14 @@ public function set_ruleset_published($language, $published, $return_to = ''); */ public function display_rules($language, $parent_id = 0); + /** + * Save a language ruleset's custom introduction. + * + * @param string $language + * @return void + */ + public function save_ruleset_intro($language); + /** * Add a rule * diff --git a/controller/main_controller.php b/controller/main_controller.php index 5a078130..2a30e8ed 100644 --- a/controller/main_controller.php +++ b/controller/main_controller.php @@ -94,12 +94,14 @@ public function display() // Grab all published rules in the current user's language $used_language = $this->lang->get_used_language(); + $display_language = $used_language; $entities = $this->ruleset_operator->is_published($used_language) ? $this->rule_operator->get_rules($used_language) : array(); // If no rules were found, it may be because no rules exist in the current user's // language, so let's look for rules in the board's default language as a fallback. if (empty($entities) && $used_language !== $this->config['default_lang'] && $this->ruleset_operator->is_published($this->config['default_lang'])) { + $display_language = $this->config['default_lang']; $entities = $this->rule_operator->get_rules($this->config['default_lang']); } @@ -174,13 +176,15 @@ public function display() } // Assign values to template vars for the rules page + $intro_text = (string) $this->ruleset_operator->get_intro_text($display_language); + $this->template->assign_vars(array( 'S_BOARD_RULES' => true, 'S_CATEGORIES' => $cat_counter > 1, 'S_LIST_UNORDERED' => $list_style === 'unordered', 'S_LIST_COMPOUND' => $list_style === 'compound', 'S_LIST_UNSTYLED' => $list_style === 'none', - 'BOARDRULES_EXPLAIN' => $this->lang->lang('BOARDRULES_EXPLAIN', $this->config['sitename']), + 'BOARDRULES_EXPLAIN' => $intro_text !== '' ? nl2br(utf8_htmlspecialchars($intro_text)) : $this->lang->lang('BOARDRULES_EXPLAIN', $this->config['sitename']), )); // Assign breadcrumb template vars for the rules page diff --git a/language/ar/boardrules_acp.php b/language/ar/boardrules_acp.php index cac9d30e..978abcf1 100644 --- a/language/ar/boardrules_acp.php +++ b/language/ar/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'إدارة القوانين', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'من هنا تستطيع إضافة, تعديل, حذف أو إعادة ترتيب الأقسام والقوانين. القسم عبارة عن مجموعة من القوانين التي لها علاقه بهذه القسم. يمكن إضافة عدد غير محدود من القوانين في كل قسم.', + 'ACP_BOARDRULES_INTRO' => 'مقدمة صفحة القوانين', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'خصص المقدمة التي تظهر للمستخدمين الذين يشاهدون صفحة قوانين %s. اترك هذا الحقل فارغًا لاستخدام المقدمة الافتراضية الظاهرة كنص نائب.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'حفظ المقدمة', + 'ACP_BOARDRULES_INTRO_SAVED' => 'تم حفظ مقدمة صفحة القوانين.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'القسم', 'ACP_BOARDRULES_RULE' => 'قانون', diff --git a/language/ar/info_acp_boardrules.php b/language/ar/info_acp_boardrules.php index 857189d1..29eff58c 100644 --- a/language/ar/info_acp_boardrules.php +++ b/language/ar/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'تم نسخ مجموعة قوانين المنتدى للغة
» %1$s → %2$s (%3$d قانون)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'تم نشر مجموعة قوانين المنتدى للغة
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'تم تحويل مجموعة قوانين المنتدى للغة إلى مسودة
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'تم تغيير مقدمة صفحة قوانين المنتدى
» %s', )); diff --git a/language/bg/boardrules_acp.php b/language/bg/boardrules_acp.php index 6344050a..3911d774 100644 --- a/language/bg/boardrules_acp.php +++ b/language/bg/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Управлявай Правилата', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'На тази страница може да добавяте, променята, изтривате и ре-организирате категориите и правилата. Категорията е група от свързани правила. Всяка категория може да има неограничен брой правила.', + 'ACP_BOARDRULES_INTRO' => 'Въведение на страницата с правила', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Персонализирайте въведението, показвано на потребителите на страницата с правила %s. Оставете това поле празно, за да използвате въведението по подразбиране, показано като подсказка.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Запази въведението', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Въведението на страницата с правила е запазено.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Категория на Правило', 'ACP_BOARDRULES_RULE' => 'Правило', diff --git a/language/bg/info_acp_boardrules.php b/language/bg/info_acp_boardrules.php index c9fed486..b860a864 100644 --- a/language/bg/info_acp_boardrules.php +++ b/language/bg/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Копиран езиков набор от правила на форума
» %1$s → %2$s (%3$d правила)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Публикуван езиков набор от правила на форума
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Езиковият набор от правила на форума е променен на чернова
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Променено въведение на страницата с правила
» %s', )); diff --git a/language/cs/boardrules_acp.php b/language/cs/boardrules_acp.php index abea30e3..1af91fcc 100644 --- a/language/cs/boardrules_acp.php +++ b/language/cs/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Spravovat pravidla', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Na této stránce můžeš přidávat, upravovat, mazat a reorganizovat kategorie a pravidla. Kategorie je skupina souvisejících pravidel. Každá kategorie může mít neomezený počet pravidel.', + 'ACP_BOARDRULES_INTRO' => 'Úvod stránky s pravidly', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Upravte úvod zobrazený uživatelům stránky pravidel %s. Ponechte toto pole prázdné, chcete-li použít výchozí úvod zobrazený jako zástupný text.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Uložit úvod', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Úvod stránky s pravidly byl uložen.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Kategorie pravidel', 'ACP_BOARDRULES_RULE' => 'Pravidlo', diff --git a/language/cs/info_acp_boardrules.php b/language/cs/info_acp_boardrules.php index c6bc0a93..de759932 100644 --- a/language/cs/info_acp_boardrules.php +++ b/language/cs/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Jazyková sada pravidel fóra zkopírována
» %1$s → %2$s (%3$d pravidel)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Jazyková sada pravidel fóra zveřejněna
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Jazyková sada pravidel fóra změněna na koncept
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Úvod stránky s pravidly změněn
» %s', )); diff --git a/language/da/boardrules_acp.php b/language/da/boardrules_acp.php index 19348b51..c501b7bc 100644 --- a/language/da/boardrules_acp.php +++ b/language/da/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Håndter regler', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'På denne side kan du tilføje, redigere, slette og ændre på rækkefølgen af kategorier og regler. En kategori er en gruppe af relaterede regler. Hver kategori kan have et ubegrænset antal regler.', + 'ACP_BOARDRULES_INTRO' => 'Introduktion til regelsiden', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Tilpas introduktionen, der vises til brugere af regelsiden %s. Lad dette felt være tomt for at bruge standardintroduktionen, der vises som pladsholdertekst.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Gem introduktion', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Introduktionen til regelsiden blev gemt.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Regelkategori', 'ACP_BOARDRULES_RULE' => 'Regel', diff --git a/language/da/info_acp_boardrules.php b/language/da/info_acp_boardrules.php index ae9c9f5f..eedd3c57 100644 --- a/language/da/info_acp_boardrules.php +++ b/language/da/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Sprogsæt med boardregler kopieret
» %1$s → %2$s (%3$d regler)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Sprogsæt med boardregler udgivet
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Sprogsæt med boardregler ændret til kladde
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introduktionen til regelsiden blev ændret
» %s', )); diff --git a/language/de/boardrules_acp.php b/language/de/boardrules_acp.php index de9fcb1a..ca839a08 100644 --- a/language/de/boardrules_acp.php +++ b/language/de/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Regeln verwalten', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Hier kannst du Kategorien und Regeln hinzufügen, ändern und löschen. Kategorien sind Regelblöcke mit ähnlichen Regeln. Jede Kategorie kann unendlich viele Regeln enthalten.', + 'ACP_BOARDRULES_INTRO' => 'Einleitung der Regelseite', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Passe die Einleitung an, die Benutzern auf der Regelseite %s angezeigt wird. Lasse dieses Feld leer, um die als Platzhalter angezeigte Standardeinleitung zu verwenden.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Einleitung speichern', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Einleitung der Regelseite gespeichert.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Wählen Sie eine Sprache für Ihre Boardregeln. Die Benutzer sehen die Regeln, die Sie für ihre bevorzugte Sprache erstellen. Wenn Sie keine Regeln in der bevorzugten Sprache erstellen, sehen die Benutzer die Regeln, die in der Standardsprache des Forums erstellt wurden.', 'ACP_BOARDRULES_CATEGORY' => 'Regel-Kategorie', 'ACP_BOARDRULES_RULE' => 'Regel', diff --git a/language/de/info_acp_boardrules.php b/language/de/info_acp_boardrules.php index 21a08969..144ed1ec 100644 --- a/language/de/info_acp_boardrules.php +++ b/language/de/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Sprachregelsatz der Board-Regeln kopiert
» %1$s → %2$s (%3$d Regeln)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Sprachregelsatz der Board-Regeln veröffentlicht
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Sprachregelsatz der Board-Regeln auf Entwurf gesetzt
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Einleitung der Regelseite geändert
» %s', )); diff --git a/language/de_x_sie/boardrules_acp.php b/language/de_x_sie/boardrules_acp.php index ac3a94d6..6ca36525 100644 --- a/language/de_x_sie/boardrules_acp.php +++ b/language/de_x_sie/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Regeln verwalten', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Hier können Sie Kategorien und Regeln hinzufügen, ändern und löschen. Kategorien sind Regelblöcke mit ähnlichen Regeln. Jede Kategorie kann unendlich viele Regeln enthalten.', + 'ACP_BOARDRULES_INTRO' => 'Einleitung der Regelseite', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Passen Sie die Einleitung an, die Benutzern auf der Regelseite %s angezeigt wird. Lassen Sie dieses Feld leer, um die als Platzhalter angezeigte Standardeinleitung zu verwenden.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Einleitung speichern', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Einleitung der Regelseite gespeichert.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Wählen Sie eine Sprache für Ihre Boardregeln. Die Benutzer sehen die Regeln, die Sie für ihre bevorzugte Sprache erstellen. Wenn Sie keine Regeln in der bevorzugten Sprache erstellen, sehen die Benutzer die Regeln, die in der Standardsprache des Forums erstellt wurden.', 'ACP_BOARDRULES_CATEGORY' => 'Regel-Kategorie', 'ACP_BOARDRULES_RULE' => 'Regel', diff --git a/language/de_x_sie/info_acp_boardrules.php b/language/de_x_sie/info_acp_boardrules.php index 5a5c8014..741c8f16 100644 --- a/language/de_x_sie/info_acp_boardrules.php +++ b/language/de_x_sie/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Sprachregelsatz der Board-Regeln kopiert
» %1$s → %2$s (%3$d Regeln)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Sprachregelsatz der Board-Regeln veröffentlicht
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Sprachregelsatz der Board-Regeln auf Entwurf gesetzt
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Einleitung der Regelseite geändert
» %s', )); diff --git a/language/el/boardrules_acp.php b/language/el/boardrules_acp.php index c7267663..80fc70ce 100644 --- a/language/el/boardrules_acp.php +++ b/language/el/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Διαχείριση Όρων Συμμετοχής', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Από εδώ μπορείτε να προσθέσετε, επεξεργαστείτε, διαγράψετε και να αναδιατάξετε κατηγορίες και όρους. Μια κατηγορία είναι μια ομάδα σχετικών όρων. Κάθε κατηγορία μπορεί να περιέχει απεριόριστο αριθμό όρων.', + 'ACP_BOARDRULES_INTRO' => 'Εισαγωγή σελίδας όρων', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Προσαρμόστε την εισαγωγή που εμφανίζεται στους χρήστες της σελίδας όρων %s. Αφήστε αυτό το πεδίο κενό για να χρησιμοποιήσετε την προεπιλεγμένη εισαγωγή που εμφανίζεται ως κείμενο υπόδειξης.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Αποθήκευση εισαγωγής', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Η εισαγωγή της σελίδας όρων αποθηκεύτηκε.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Κατηγορία όρων', 'ACP_BOARDRULES_RULE' => 'Όρος', diff --git a/language/el/info_acp_boardrules.php b/language/el/info_acp_boardrules.php index ce2e0e6d..960b3fd5 100644 --- a/language/el/info_acp_boardrules.php +++ b/language/el/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Το γλωσσικό σύνολο όρων συμμετοχής αντιγράφηκε
» %1$s → %2$s (%3$d κανόνες)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Το γλωσσικό σύνολο όρων συμμετοχής δημοσιεύτηκε
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Το γλωσσικό σύνολο όρων συμμετοχής άλλαξε σε πρόχειρο
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Η εισαγωγή της σελίδας όρων άλλαξε
» %s', )); diff --git a/language/en/boardrules_acp.php b/language/en/boardrules_acp.php index 02eeef8e..c7508240 100644 --- a/language/en/boardrules_acp.php +++ b/language/en/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Manage rules', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'From this page you can add, edit, delete and re-order categories and rules. A category is a group of related rules. Each category can have an unlimited number of rules.', + 'ACP_BOARDRULES_INTRO' => 'Rules page introduction', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Customise the introduction shown to users viewing the %s rules page. Leave this field empty to use the default introduction shown as placeholder text.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Save introduction', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Rules page introduction saved.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Rule category', 'ACP_BOARDRULES_RULE' => 'Rule', diff --git a/language/en/info_acp_boardrules.php b/language/en/info_acp_boardrules.php index 0583940d..f19f1f5a 100644 --- a/language/en/info_acp_boardrules.php +++ b/language/en/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Copied board rules language set
» %1$s → %2$s (%3$d rules)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Published board rules language set
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Changed board rules language set to draft
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Changed board rules page introduction
» %s', )); diff --git a/language/es/boardrules_acp.php b/language/es/boardrules_acp.php index c16ec734..6710fe12 100644 --- a/language/es/boardrules_acp.php +++ b/language/es/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Gestionar Normas', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Desde esta página puede añadir, editar, borrar y re-ordenar categorías y normas. Una categoría es un grupo de normas relacionadas. Cada categoría puede tener un número ilimitado de normas.', + 'ACP_BOARDRULES_INTRO' => 'Introducción de la página de normas', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personalice la introducción que se muestra a los usuarios que consultan la página de normas %s. Deje este campo vacío para usar la introducción predeterminada que aparece como marcador de posición.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Guardar introducción', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Se ha guardado la introducción de la página de normas.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Categoría de Norma', 'ACP_BOARDRULES_RULE' => 'Norma', diff --git a/language/es/info_acp_boardrules.php b/language/es/info_acp_boardrules.php index 75992420..1937d9f0 100644 --- a/language/es/info_acp_boardrules.php +++ b/language/es/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Conjunto de normas del foro del idioma copiado
» %1$s → %2$s (%3$d normas)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Conjunto de normas del foro del idioma publicado
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Conjunto de normas del foro del idioma cambiado a borrador
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introducción de la página de normas modificada
» %s', )); diff --git a/language/et/boardrules_acp.php b/language/et/boardrules_acp.php index 367cedc1..beccd09b 100644 --- a/language/et/boardrules_acp.php +++ b/language/et/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Halda reegleid', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Siin lehel saad lisada, muuta, kustutada ja muuta järjestust reeglitel. Kategooria on grupp, seotud reeglitega. Igal kategoorial võib olla piiramatu arv reegleid.', + 'ACP_BOARDRULES_INTRO' => 'Reeglite lehe sissejuhatus', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Kohanda sissejuhatust, mida näidatakse reeglilehe %s kasutajatele. Jäta see väli tühjaks, et kasutada kohatäitena kuvatavat vaikimisi sissejuhatust.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Salvesta sissejuhatus', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Reeglite lehe sissejuhatus salvestati.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Reegli kategooria', 'ACP_BOARDRULES_RULE' => 'Reegel', diff --git a/language/et/info_acp_boardrules.php b/language/et/info_acp_boardrules.php index 89b80b74..339204f6 100644 --- a/language/et/info_acp_boardrules.php +++ b/language/et/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Foorumi reeglite keelekomplekt kopeeritud
» %1$s → %2$s (%3$d reeglit)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Foorumi reeglite keelekomplekt avaldatud
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Foorumi reeglite keelekomplekt muudeti mustandiks
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Reeglite lehe sissejuhatust muudeti
» %s', )); diff --git a/language/fi/boardrules_acp.php b/language/fi/boardrules_acp.php index b18d5626..7b211bff 100644 --- a/language/fi/boardrules_acp.php +++ b/language/fi/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Muokkaa sääntöjä', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Tällä sivulla voit lisätä, muokata, poistaa ja järjestää uudelleen kategorioita ja sääntöjä. Kategoria on joukko toisiinsa liittyviä sääntöjä. Jokaisella kategorialla voi olla rajoittamaton määrä sääntöjä.', + 'ACP_BOARDRULES_INTRO' => 'Sääntösivun johdanto', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Mukauta johdantoa, joka näytetään sääntösivun %s käyttäjille. Jätä tämä kenttä tyhjäksi käyttääksesi paikkamerkkinä näkyvää oletusjohdantoa.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Tallenna johdanto', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Sääntösivun johdanto tallennettu.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Valitse sääntöjen kieli. Käyttäjät näkevät heidän haluamalleen kielelle luomasi säännöt. Jos et luo sääntöjä halutulla kielellä, käyttäjät näkevät säännöt, jotka on luotu laudan oletuskielellä.', 'ACP_BOARDRULES_CATEGORY' => 'Sääntö kategoria', 'ACP_BOARDRULES_RULE' => 'Sääntö', diff --git a/language/fi/info_acp_boardrules.php b/language/fi/info_acp_boardrules.php index a0906bfa..dbf98d44 100644 --- a/language/fi/info_acp_boardrules.php +++ b/language/fi/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Foorumin sääntöjen kielikohtainen sääntökokonaisuus kopioitu
» %1$s → %2$s (%3$d sääntöä)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Foorumin sääntöjen kielikohtainen sääntökokonaisuus julkaistu
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Foorumin sääntöjen kielikohtainen sääntökokonaisuus muutettu luonnokseksi
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Sääntösivun johdanto muutettu
» %s', )); diff --git a/language/fr/boardrules_acp.php b/language/fr/boardrules_acp.php index e485c16a..c2a81573 100644 --- a/language/fr/boardrules_acp.php +++ b/language/fr/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Gestion des règles', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Depuis cette page vous pouvez ajouter, modifier, supprimer et réordonner les catégories et les règles. Une catégorie est un ensemble de règles connexes. Chaque catégorie peut contenir un nombre illimité de règles.', + 'ACP_BOARDRULES_INTRO' => 'Introduction de la page des règles', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personnalisez l’introduction affichée aux utilisateurs qui consultent la page des règles %s. Laissez ce champ vide pour utiliser l’introduction par défaut affichée comme texte indicatif.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Enregistrer l’introduction', + 'ACP_BOARDRULES_INTRO_SAVED' => 'L’introduction de la page des règles a été enregistrée.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Catégorie des règles', 'ACP_BOARDRULES_RULE' => 'Règle', diff --git a/language/fr/info_acp_boardrules.php b/language/fr/info_acp_boardrules.php index dd15fabe..1109bdb7 100644 --- a/language/fr/info_acp_boardrules.php +++ b/language/fr/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Ensemble de règles du forum de la langue copié
» %1$s → %2$s (%3$d règles)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Ensemble de règles du forum de la langue publié
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Ensemble de règles du forum de la langue défini comme brouillon
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introduction de la page des règles modifiée
» %s', )); diff --git a/language/he/boardrules_acp.php b/language/he/boardrules_acp.php index a139df26..2a089512 100644 --- a/language/he/boardrules_acp.php +++ b/language/he/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'נהל חוקים', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'בעמוד זה אתה יכול לשנות חוקים וקטגוריות. קטגוריה היא אוסף של חוקים קשורים. בכל קטגוריה יכול להיות מספר לא מוגבל של חוקים.', + 'ACP_BOARDRULES_INTRO' => 'מבוא לדף החוקים', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'התאם את המבוא המוצג למשתמשים הצופים בדף החוקים %s. השאר שדה זה ריק כדי להשתמש במבוא ברירת המחדל המוצג כטקסט מציין מקום.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'שמור מבוא', + 'ACP_BOARDRULES_INTRO_SAVED' => 'המבוא לדף החוקים נשמר.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'קטגורית חוקים', 'ACP_BOARDRULES_RULE' => 'חוק', diff --git a/language/he/info_acp_boardrules.php b/language/he/info_acp_boardrules.php index 6fdf9cb2..9ffa43ea 100644 --- a/language/he/info_acp_boardrules.php +++ b/language/he/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'מערכת חוקי הפורום של השפה הועתקה
» %1$s → %2$s (%3$d חוקים)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'מערכת חוקי הפורום של השפה פורסמה
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'מערכת חוקי הפורום של השפה שונתה לטיוטה
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'המבוא לדף חוקי הפורום שונה
» %s', )); diff --git a/language/hr/boardrules_acp.php b/language/hr/boardrules_acp.php index edb29295..90e4c982 100644 --- a/language/hr/boardrules_acp.php +++ b/language/hr/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Upravljanje pravilima', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Ovdje možeš dod(av)ati, uređivati, izbrisivati i reorganizirati kategorije i pravila.
Kategorija je grupa povezanih pravila. Svaka kategorija može imati neograničen broj pravila.', + 'ACP_BOARDRULES_INTRO' => 'Uvod stranice s pravilima', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Prilagodite uvod koji se prikazuje korisnicima stranice pravila %s. Ostavite ovo polje prazno za uporabu zadanog uvoda prikazanog kao rezervirano mjesto.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Spremi uvod', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Uvod stranice s pravilima je spremljen.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Pravilo kategorije', 'ACP_BOARDRULES_RULE' => 'Pravilo', diff --git a/language/hr/info_acp_boardrules.php b/language/hr/info_acp_boardrules.php index 1db24c94..27787eb4 100644 --- a/language/hr/info_acp_boardrules.php +++ b/language/hr/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Kopiran jezični skup forumskih pravila
» %1$s → %2$s (%3$d pravila)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Objavljen jezični skup forumskih pravila
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Jezični skup forumskih pravila promijenjen u skicu
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Promijenjen uvod stranice s pravilima
» %s', )); diff --git a/language/hu/boardrules_acp.php b/language/hu/boardrules_acp.php index 4dabf87c..3d988f9f 100644 --- a/language/hu/boardrules_acp.php +++ b/language/hu/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Szabályzat kezelése', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Ezen az oldalon hozzáadhat, szerkeszthet, törölhet és módosíthat kategóriákat és szabályzatokat. A kategória a kapcsolódó szabályzatok egy csoportja. Minden kategória korlátlan számú szabályzatot tartalmazhat.', + 'ACP_BOARDRULES_INTRO' => 'A szabályzat oldalának bevezetője', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Szabja testre a %s szabályoldalt megtekintő felhasználóknak megjelenő bevezetőt. Hagyja üresen ezt a mezőt a helyőrzőként megjelenő alapértelmezett bevezető használatához.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Bevezető mentése', + 'ACP_BOARDRULES_INTRO_SAVED' => 'A szabályzat oldalának bevezetője mentve.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Szabályzat kategória', 'ACP_BOARDRULES_RULE' => 'Szabályzat', diff --git a/language/hu/info_acp_boardrules.php b/language/hu/info_acp_boardrules.php index b1e2cb5c..2cce817a 100644 --- a/language/hu/info_acp_boardrules.php +++ b/language/hu/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Fórumszabályzat nyelvi szabálykészlete másolva
» %1$s → %2$s (%3$d szabály)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Fórumszabályzat nyelvi szabálykészlete közzétéve
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Fórumszabályzat nyelvi szabálykészlete piszkozatra állítva
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'A szabályzat oldalának bevezetője módosítva
» %s', )); diff --git a/language/it/boardrules_acp.php b/language/it/boardrules_acp.php index c263a3e8..2fcd0100 100644 --- a/language/it/boardrules_acp.php +++ b/language/it/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Gestisci Regole', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Da questa pagina è possibile aggiungere, modificare, eliminare e riordinare le categorie e le regole. Una categoria è un gruppo di regole correlate. Ogni categoria può avere un numero illimitato di regole.', + 'ACP_BOARDRULES_INTRO' => 'Introduzione alla pagina delle regole', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personalizza l’introduzione mostrata agli utenti che visualizzano la pagina delle regole %s. Lascia vuoto questo campo per usare l’introduzione predefinita mostrata come segnaposto.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Salva introduzione', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Introduzione alla pagina delle regole salvata.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Categoria Regola', 'ACP_BOARDRULES_RULE' => 'Regola', diff --git a/language/it/info_acp_boardrules.php b/language/it/info_acp_boardrules.php index 9281b4f7..cb13b319 100644 --- a/language/it/info_acp_boardrules.php +++ b/language/it/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Set di regole del forum della lingua copiato
» %1$s → %2$s (%3$d regole)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Set di regole del forum della lingua pubblicato
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Set di regole del forum della lingua impostato come bozza
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introduzione alla pagina delle regole modificata
» %s', )); diff --git a/language/nb/boardrules_acp.php b/language/nb/boardrules_acp.php index 463a1b95..cac06744 100644 --- a/language/nb/boardrules_acp.php +++ b/language/nb/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Behandle regler', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'På denne siden kan du opprette, oppdatere, slette og omorganisere kategorier og regler. En kategori er en gruppe av lignende regler. Hver kategori kan inneholde et ubegrenset antall regler.', + 'ACP_BOARDRULES_INTRO' => 'Introduksjon til regelsiden', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Tilpass introduksjonen som vises til brukere av regelsiden %s. La dette feltet stå tomt for å bruke standardintroduksjonen som vises som plassholdertekst.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Lagre introduksjon', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Introduksjonen til regelsiden ble lagret.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Regelkategori', 'ACP_BOARDRULES_RULE' => 'Regel', diff --git a/language/nb/info_acp_boardrules.php b/language/nb/info_acp_boardrules.php index 1261cb77..83fb3815 100644 --- a/language/nb/info_acp_boardrules.php +++ b/language/nb/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Språksett med forumregler kopiert
» %1$s → %2$s (%3$d regler)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Språksett med forumregler publisert
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Språksett med forumregler endret til utkast
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introduksjonen til regelsiden ble endret
» %s', )); diff --git a/language/nl/boardrules_acp.php b/language/nl/boardrules_acp.php index 23a3e3ca..5b5d03ad 100644 --- a/language/nl/boardrules_acp.php +++ b/language/nl/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Beheer regels', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Op deze pagina kan je regels en categorieën toevoegen, wijzigen, verwijderen en rangschikken. Een categorie is een groep gerelateerde regels. Elke categorie kan een onbeperkt aantal regels bevatten.', + 'ACP_BOARDRULES_INTRO' => 'Inleiding van de regelspagina', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Pas de inleiding aan die wordt getoond aan gebruikers van de regelspagina %s. Laat dit veld leeg om de standaardinleiding te gebruiken die als tijdelijke aanduiding wordt weergegeven.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Inleiding opslaan', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Inleiding van de regelspagina opgeslagen.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Regelcategorie', 'ACP_BOARDRULES_RULE' => 'Regel', diff --git a/language/nl/info_acp_boardrules.php b/language/nl/info_acp_boardrules.php index cc4ab9f3..58d53b13 100644 --- a/language/nl/info_acp_boardrules.php +++ b/language/nl/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Taalregelset voor forumregels gekopieerd
» %1$s → %2$s (%3$d regels)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Taalregelset voor forumregels gepubliceerd
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Taalregelset voor forumregels gewijzigd naar concept
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Inleiding van de regelspagina gewijzigd
» %s', )); diff --git a/language/pl/boardrules_acp.php b/language/pl/boardrules_acp.php index fd5cbf8c..2030f39e 100644 --- a/language/pl/boardrules_acp.php +++ b/language/pl/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Zarządzanie przepisami', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Z tej strony można dodać, zmienić, usunąć albo zmienić kolejność rozdziałów i przepisów. Rozdział jest grupą powiązanych przepisów. Każdy rozdział może składać się z nieograniczonej liczby przepisów.', + 'ACP_BOARDRULES_INTRO' => 'Wprowadzenie na stronie regulaminu', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Dostosuj wprowadzenie wyświetlane użytkownikom strony przepisów %s. Pozostaw to pole puste, aby użyć domyślnego wprowadzenia wyświetlanego jako tekst zastępczy.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Zapisz wprowadzenie', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Wprowadzenie na stronie regulaminu zostało zapisane.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Rozdział regulaminu', 'ACP_BOARDRULES_RULE' => 'Przepis', diff --git a/language/pl/info_acp_boardrules.php b/language/pl/info_acp_boardrules.php index a59bdac4..b3658a15 100644 --- a/language/pl/info_acp_boardrules.php +++ b/language/pl/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Skopiowano zestaw językowy regulaminu witryny
» %1$s → %2$s (%3$d przepisów)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Opublikowano zestaw językowy regulaminu witryny
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Zmieniono zestaw językowy regulaminu witryny na szkic
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Zmieniono wprowadzenie na stronie regulaminu
» %s', )); diff --git a/language/pt/boardrules_acp.php b/language/pt/boardrules_acp.php index 918256dc..86b306fc 100644 --- a/language/pt/boardrules_acp.php +++ b/language/pt/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Gerir regras', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Nesta página pode adicionar, editar, apagar e reordenar as categorias e regras. A categoria é um conjunto de regras inter-relacionadas. Cada categoria pode ter um número ilimitado de regras.', + 'ACP_BOARDRULES_INTRO' => 'Introdução da página de regras', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personalize a introdução apresentada aos utilizadores que consultam a página de regras %s. Deixe este campo vazio para utilizar a introdução predefinida apresentada como marcador de posição.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Guardar introdução', + 'ACP_BOARDRULES_INTRO_SAVED' => 'A introdução da página de regras foi guardada.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Categoria de regras', 'ACP_BOARDRULES_RULE' => 'Regra', diff --git a/language/pt/info_acp_boardrules.php b/language/pt/info_acp_boardrules.php index deab1841..87a3a758 100644 --- a/language/pt/info_acp_boardrules.php +++ b/language/pt/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Conjunto de regras do fórum do idioma copiado
» %1$s → %2$s (%3$d regras)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Conjunto de regras do fórum do idioma publicado
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Conjunto de regras do fórum do idioma alterado para rascunho
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introdução da página de regras alterada
» %s', )); diff --git a/language/pt_br/boardrules_acp.php b/language/pt_br/boardrules_acp.php index 9bb71aa3..f0718934 100644 --- a/language/pt_br/boardrules_acp.php +++ b/language/pt_br/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Gerenciar regras', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Nesta página adicione, edite, apage e reordene as categorias e regras. A categoria é um conjunto de regras inter-relacionadas. Cada categoria pode ter um número ilimitado de regras.', + 'ACP_BOARDRULES_INTRO' => 'Introdução da página de regras', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personalize a introdução exibida aos usuários que acessam a página de regras %s. Deixe este campo vazio para usar a introdução padrão exibida como texto de exemplo.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Salvar introdução', + 'ACP_BOARDRULES_INTRO_SAVED' => 'A introdução da página de regras foi salva.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Categoria de regras', 'ACP_BOARDRULES_RULE' => 'Regra', diff --git a/language/pt_br/info_acp_boardrules.php b/language/pt_br/info_acp_boardrules.php index 9619e316..9403a62a 100644 --- a/language/pt_br/info_acp_boardrules.php +++ b/language/pt_br/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Conjunto de regras do fórum do idioma copiado
» %1$s → %2$s (%3$d regras)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Conjunto de regras do fórum do idioma publicado
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Conjunto de regras do fórum do idioma alterado para rascunho
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introdução da página de regras alterada
» %s', )); diff --git a/language/pt_preao/boardrules_acp.php b/language/pt_preao/boardrules_acp.php index e7af3f7d..c793072e 100644 --- a/language/pt_preao/boardrules_acp.php +++ b/language/pt_preao/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Gerir regras', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Nesta página pode adicionar, editar, apagar e reordenar as categorias e regras. A categoria é um conjunto de regras inter-relacionadas. Cada categoria pode ter um número ilimitado de regras.', + 'ACP_BOARDRULES_INTRO' => 'Introdução da página de regras', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personalize a introdução apresentada aos utilizadores que consultam a página de regras %s. Deixe este campo vazio para utilizar a introdução predefinida apresentada como marcador de posição.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Guardar introdução', + 'ACP_BOARDRULES_INTRO_SAVED' => 'A introdução da página de regras foi guardada.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Categoria de regras', 'ACP_BOARDRULES_RULE' => 'Regra', diff --git a/language/pt_preao/info_acp_boardrules.php b/language/pt_preao/info_acp_boardrules.php index deab1841..87a3a758 100644 --- a/language/pt_preao/info_acp_boardrules.php +++ b/language/pt_preao/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Conjunto de regras do fórum do idioma copiado
» %1$s → %2$s (%3$d regras)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Conjunto de regras do fórum do idioma publicado
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Conjunto de regras do fórum do idioma alterado para rascunho
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introdução da página de regras alterada
» %s', )); diff --git a/language/ro/boardrules_acp.php b/language/ro/boardrules_acp.php index c69b8d7a..a3dad194 100644 --- a/language/ro/boardrules_acp.php +++ b/language/ro/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Editeza Reguli', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'De aici poti edita ,adauga si sterge regurile impuse de tine, le poti pune pe categorii ele fiind nelimitate', + 'ACP_BOARDRULES_INTRO' => 'Introducerea paginii cu reguli', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Personalizați introducerea afișată utilizatorilor care consultă pagina de reguli %s. Lăsați acest câmp necompletat pentru a utiliza introducerea implicită afișată ca substituent.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Salvează introducerea', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Introducerea paginii cu reguli a fost salvată.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Caterorie Regula', 'ACP_BOARDRULES_RULE' => 'Regula', diff --git a/language/ro/info_acp_boardrules.php b/language/ro/info_acp_boardrules.php index ffc642d4..051a92bf 100644 --- a/language/ro/info_acp_boardrules.php +++ b/language/ro/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Setul de reguli al limbii a fost copiat
» %1$s → %2$s (%3$d reguli)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Setul de reguli al limbii a fost publicat
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Setul de reguli al limbii a fost schimbat în ciornă
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introducerea paginii cu reguli a fost modificată
» %s', )); diff --git a/language/ru/boardrules_acp.php b/language/ru/boardrules_acp.php index 2ffd4a29..10ca548c 100644 --- a/language/ru/boardrules_acp.php +++ b/language/ru/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Редактирование правил', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'С помощью этой страницы вы можете добавлять, редактировать, удалять и менять порядок правил и категорий. Категория — набор связанных правил. В каждой категории может быть неограниченное количество правил.', + 'ACP_BOARDRULES_INTRO' => 'Введение на странице правил', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Настройте введение, отображаемое пользователям страницы правил %s. Оставьте это поле пустым, чтобы использовать введение по умолчанию, показанное в качестве заполнителя.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Сохранить введение', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Введение на странице правил сохранено.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Категория правил', 'ACP_BOARDRULES_RULE' => 'Правило', diff --git a/language/ru/info_acp_boardrules.php b/language/ru/info_acp_boardrules.php index 75bc8c2e..10a2370a 100644 --- a/language/ru/info_acp_boardrules.php +++ b/language/ru/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Скопирован языковой набор правил форума
» %1$s → %2$s (%3$d правил)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Опубликован языковой набор правил форума
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Языковой набор правил форума переведён в черновик
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Изменено введение на странице правил
» %s', )); diff --git a/language/sk/boardrules_acp.php b/language/sk/boardrules_acp.php index 6ef317c1..50ee44e6 100644 --- a/language/sk/boardrules_acp.php +++ b/language/sk/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Spravovať pravidlá', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Na tejto stránke môžeš pridávať, upravovať, mazať a reorganizovať kategórie a pravidlá. Kategória je skupina spoločných/súvisiacich pravidel. Každá kategória môže mať neobmedzený počet pravidiel.', + 'ACP_BOARDRULES_INTRO' => 'Úvod stránky s pravidlami', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Upravte úvod zobrazený používateľom stránky pravidiel %s. Ponechajte toto pole prázdne, ak chcete použiť predvolený úvod zobrazený ako zástupný text.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Uložiť úvod', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Úvod stránky s pravidlami bol uložený.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Kategória pravidiel', 'ACP_BOARDRULES_RULE' => 'Pravidlo', diff --git a/language/sk/info_acp_boardrules.php b/language/sk/info_acp_boardrules.php index e91002c4..e37921b1 100644 --- a/language/sk/info_acp_boardrules.php +++ b/language/sk/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Jazyková sada pravidiel fóra skopírovaná
» %1$s → %2$s (%3$d pravidiel)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Jazyková sada pravidiel fóra zverejnená
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Jazyková sada pravidiel fóra zmenená na koncept
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Úvod stránky s pravidlami zmenený
» %s', )); diff --git a/language/sv/boardrules_acp.php b/language/sv/boardrules_acp.php index 4ab35941..c393e07b 100644 --- a/language/sv/boardrules_acp.php +++ b/language/sv/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Hantera reglerna', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'På denna sidan kan du skapa, uppdatera, radera och omorganisera kategorier och regler. En kategori är en grupp av liknande regler. Varja kategori kan innehålla ett obegränsat antal regler.', + 'ACP_BOARDRULES_INTRO' => 'Introduktion till regelsidan', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Anpassa introduktionen som visas för användare av regelsidan %s. Lämna detta fält tomt för att använda standardintroduktionen som visas som platshållartext.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Spara introduktion', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Introduktionen till regelsidan har sparats.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Choose a language for your Board Rules. Users will see the rules you create for their preferred language. If you do not create any rules in their preferred language, then users will see rules created using the board’s default language.', 'ACP_BOARDRULES_CATEGORY' => 'Regelkategori', 'ACP_BOARDRULES_RULE' => 'Regel', diff --git a/language/sv/info_acp_boardrules.php b/language/sv/info_acp_boardrules.php index a8ca2959..d84cc122 100644 --- a/language/sv/info_acp_boardrules.php +++ b/language/sv/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Språkuppsättning med forumregler kopierad
» %1$s → %2$s (%3$d regler)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Språkuppsättning med forumregler publicerad
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Språkuppsättning med forumregler ändrad till utkast
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Introduktionen till regelsidan ändrad
» %s', )); diff --git a/language/tr/boardrules_acp.php b/language/tr/boardrules_acp.php index 9757d7c4..07cfd96f 100644 --- a/language/tr/boardrules_acp.php +++ b/language/tr/boardrules_acp.php @@ -64,6 +64,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Kuralları yönet', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'Bu sayfadan kurallar ve kategoriler ekleyebilir, düzenleyebilir, silebilir ve yeniden sıralayabilirsiniz. Kategori, kurallar ile bağlantılı olan bir gruptur. Her kategori sınırsız sayıda mesaja sahip olabilir.', + 'ACP_BOARDRULES_INTRO' => 'Kurallar sayfası giriş metni', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => '%s kurallar sayfasını görüntüleyen kullanıcılara gösterilen giriş metnini özelleştirin. Yer tutucu metin olarak gösterilen varsayılan girişi kullanmak için bu alanı boş bırakın.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Giriş metnini kaydet', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Kurallar sayfası giriş metni kaydedildi.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Mesaj Panosu kurallarınız için bir dil seçin. Kullanıcılar, tercih ettikleri dil için oluşturduğunuz kuralları göreceklerdir. Eğer kullanıcıların tercih ettikleri dilde herhangi bir kural oluşturmazsanız, o zaman kullanıcılar mesaj panosunun varsayılan dili kullanılarak oluşturulan kuralları görürler.', 'ACP_BOARDRULES_CATEGORY' => 'Kural kategorisi', 'ACP_BOARDRULES_RULE' => 'Kural', diff --git a/language/tr/info_acp_boardrules.php b/language/tr/info_acp_boardrules.php index 1a706973..275996db 100644 --- a/language/tr/info_acp_boardrules.php +++ b/language/tr/info_acp_boardrules.php @@ -50,4 +50,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Mesaj panosu kuralları dil kümesi kopyalandı
» %1$s → %2$s (%3$d kural)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Mesaj panosu kuralları dil kümesi yayınlandı
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Mesaj panosu kuralları dil kümesi taslak olarak değiştirildi
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Kurallar sayfası giriş metni değiştirildi
» %s', )); diff --git a/language/uk/boardrules_acp.php b/language/uk/boardrules_acp.php index 2021691d..e167c3dd 100644 --- a/language/uk/boardrules_acp.php +++ b/language/uk/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => 'Редагування правил', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => 'За допомогою цієї сторінки ви можете додавати, редагувати, видаляти та змінювати порядок правил та категорій. Категорія - набір пов\'язаних правил. У кожній категорії може бути необмежена кількість правил.', + 'ACP_BOARDRULES_INTRO' => 'Вступ на сторінці правил', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => 'Налаштуйте вступ, який відображається користувачам сторінки правил %s. Залиште це поле порожнім, щоб використати типовий вступ, показаний як заповнювач.', + 'ACP_BOARDRULES_INTRO_SAVE' => 'Зберегти вступ', + 'ACP_BOARDRULES_INTRO_SAVED' => 'Вступ на сторінці правил збережено.', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => 'Виберіть мову для правил форуму. Користувачі побачать створені вами правила для їхньої мови. Якщо ви не створите жодних правил мовою, яку використовують користувачі, то вони побачать правила, створені з використанням мови форуму за замовчуванням.', 'ACP_BOARDRULES_CATEGORY' => 'Категорія правил', 'ACP_BOARDRULES_RULE' => 'Правило', diff --git a/language/uk/info_acp_boardrules.php b/language/uk/info_acp_boardrules.php index 8b5618ed..d76d367f 100644 --- a/language/uk/info_acp_boardrules.php +++ b/language/uk/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => 'Скопійовано мовний набір правил форуму
» %1$s → %2$s (%3$d правил)', 'ACP_BOARDRULES_PUBLISH_LOG' => 'Опубліковано мовний набір правил форуму
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => 'Мовний набір правил форуму переведено в чернетку
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => 'Змінено вступ на сторінці правил
» %s', )); diff --git a/language/zh_cmn_hans/boardrules_acp.php b/language/zh_cmn_hans/boardrules_acp.php index e1e727df..be3e0024 100644 --- a/language/zh_cmn_hans/boardrules_acp.php +++ b/language/zh_cmn_hans/boardrules_acp.php @@ -63,6 +63,10 @@ // Manage page 'ACP_BOARDRULES_MANAGE' => '管理章程', 'ACP_BOARDRULES_MANAGE_EXPLAIN' => '在此页,您可以增加,编辑,删除或重新排序分类和章程。一个分类包含一组章程。分类内可以包含无限条章程。', + 'ACP_BOARDRULES_INTRO' => '章程页面介绍', + 'ACP_BOARDRULES_INTRO_EXPLAIN' => '自定义向查看 %s 章程页面的用户显示的介绍。留空此字段可使用占位文本中显示的默认介绍。', + 'ACP_BOARDRULES_INTRO_SAVE' => '保存介绍', + 'ACP_BOARDRULES_INTRO_SAVED' => '章程页面介绍已保存。', 'ACP_BOARDRULES_LANGUAGE_EXPLAIN' => '给你的论坛章程选择一个语言。用户会看到您用他们的首选语言所创建的论坛章程。如果您没有用他们的首选语言创建论坛章程,那么他们看到的就是以论坛的默认语言写的章程。', 'ACP_BOARDRULES_CATEGORY' => '章程分类', 'ACP_BOARDRULES_RULE' => '章程', diff --git a/language/zh_cmn_hans/info_acp_boardrules.php b/language/zh_cmn_hans/info_acp_boardrules.php index 360f6a11..1c1f57e0 100644 --- a/language/zh_cmn_hans/info_acp_boardrules.php +++ b/language/zh_cmn_hans/info_acp_boardrules.php @@ -49,4 +49,5 @@ 'ACP_BOARDRULES_COPY_LOG' => '已复制论坛章程语言集
» %1$s → %2$s(%3$d 条章程)', 'ACP_BOARDRULES_PUBLISH_LOG' => '已发布论坛章程语言集
» %s', 'ACP_BOARDRULES_DRAFT_LOG' => '已将论坛章程语言集改为草稿
» %s', + 'ACP_BOARDRULES_INTRO_LOG' => '已更改论坛章程页面介绍
» %s', )); diff --git a/migrations/v30x/m18_ruleset_status.php b/migrations/v30x/m18_ruleset_status.php index 623ba51d..e0be345e 100644 --- a/migrations/v30x/m18_ruleset_status.php +++ b/migrations/v30x/m18_ruleset_status.php @@ -33,6 +33,7 @@ public function update_schema() 'COLUMNS' => array( 'language_iso' => array('VCHAR:30', ''), 'rules_published' => array('BOOL', 1), + 'rules_intro_text' => array('MTEXT_UNI', ''), ), 'PRIMARY_KEY' => 'language_iso', ), diff --git a/operators/ruleset.php b/operators/ruleset.php index c095e644..3ff02fe3 100644 --- a/operators/ruleset.php +++ b/operators/ruleset.php @@ -194,6 +194,34 @@ public function is_published($language) return $published === false ? true : (bool) $published; } + /** + * {@inheritdoc} + */ + public function get_intro_text($language) + { + $sql = 'SELECT rules_intro_text + FROM ' . $this->rulesets_table . " + WHERE language_iso = '" . $this->db->sql_escape($language) . "'"; + $result = $this->db->sql_query_limit($sql, 1); + $intro_text = $this->db->sql_fetchfield('rules_intro_text'); + $this->db->sql_freeresult($result); + + return $intro_text === false ? '' : utf8_decode_ncr((string) $intro_text); + } + + /** + * {@inheritdoc} + */ + public function set_intro_text($language, $intro_text) + { + if (!$this->language_exists($language)) + { + throw new \InvalidArgumentException('ACP_BOARDRULES_INVALID_LANGUAGE'); + } + + $this->save_ruleset_value($language, 'rules_intro_text', utf8_encode_ncr((string) $intro_text)); + } + /** * {@inheritdoc} */ @@ -334,6 +362,19 @@ protected function get_rules_data($language) * @return void */ protected function save_published_state($language, $published) + { + $this->save_ruleset_value($language, 'rules_published', (int) $published); + } + + /** + * Save one language-level ruleset value without changing the others. + * + * @param string $language + * @param string $column + * @param mixed $value + * @return void + */ + protected function save_ruleset_value($language, $column, $value) { $sql = 'SELECT language_iso FROM ' . $this->rulesets_table . " @@ -342,19 +383,20 @@ protected function save_published_state($language, $published) $exists = (bool) $this->db->sql_fetchfield('language_iso'); $this->db->sql_freeresult($result); - $sql_data = array( - 'language_iso' => $language, - 'rules_published' => (int) $published, - ); - if ($exists) { $sql = 'UPDATE ' . $this->rulesets_table . ' - SET ' . $this->db->sql_build_array('UPDATE', array('rules_published' => (int) $published)) . " + SET ' . $this->db->sql_build_array('UPDATE', array($column => $value)) . " WHERE language_iso = '" . $this->db->sql_escape($language) . "'"; } else { + $sql_data = array( + 'language_iso' => $language, + 'rules_published' => 1, + 'rules_intro_text' => '', + ); + $sql_data[$column] = $value; $sql = 'INSERT INTO ' . $this->rulesets_table . ' ' . $this->db->sql_build_array('INSERT', $sql_data); } diff --git a/operators/ruleset_interface.php b/operators/ruleset_interface.php index 922c589d..dee30f03 100644 --- a/operators/ruleset_interface.php +++ b/operators/ruleset_interface.php @@ -39,6 +39,25 @@ public function copy($source_language, $target_language); */ public function is_published($language); + /** + * Get the custom introduction for a language ruleset. + * + * An empty value means the translated language string should be used. + * + * @param string $language + * @return string + */ + public function get_intro_text($language); + + /** + * Set the custom introduction for a language ruleset. + * + * @param string $language + * @param string $intro_text + * @return void + */ + public function set_intro_text($language, $intro_text); + /** * Set publication state for a populated language ruleset. * diff --git a/tests/acp/boardrules_module_test.php b/tests/acp/boardrules_module_test.php index b950b499..3376501e 100644 --- a/tests/acp/boardrules_module_test.php +++ b/tests/acp/boardrules_module_test.php @@ -178,6 +178,20 @@ public function test_manage_mode_copy_action(): void $this->executeModeAndAssert('manage', self::TEMPLATE_MANAGE, 'ACP_BOARDRULES_COPY_RULESET'); } + public function test_manage_mode_save_intro_action(): void + { + $this->setupLanguageExpectation(); + $this->setupManageRequestVariables('save_intro', 'fr', 0, 0); + + $this->admin_controller->expects($this->once()) + ->method('save_ruleset_intro') + ->with('fr'); + $this->admin_controller->expects($this->never()) + ->method('display_rules'); + + $this->executeModeAndAssert('manage', self::TEMPLATE_MANAGE, 'ACP_BOARDRULES_MANAGE'); + } + /** * @dataProvider ruleset_status_data */ diff --git a/tests/controller/admin_controller_test.php b/tests/controller/admin_controller_test.php index 193e8f52..e3f437ad 100644 --- a/tests/controller/admin_controller_test.php +++ b/tests/controller/admin_controller_test.php @@ -86,6 +86,7 @@ protected function setUp(): void 'boardrules_notification' => 4, 'boardrules.table_lock.boardrules_table' => 0, 'default_lang' => 'en', + 'sitename' => 'Test board', )); $phpbb_dispatcher = new \phpbb_mock_event_dispatcher(); $cache = new \phpbb_mock_cache(); @@ -103,6 +104,11 @@ protected function setUp(): void $language->set_default_language('en'); $language->set_user_language('en'); $language->add_lang('boardrules_acp', 'phpbb/boardrules'); + $language_loader = $this->createMock(\phpbb\language\language_file_loader::class); + $language_loader->method('load_extension') + ->willReturnCallback(function ($extension, $component, $locales, &$lang) { + $lang['BOARDRULES_EXPLAIN'] = 'Fallback for %s.'; + }); $user = new \phpbb\user($language, '\\phpbb\\datetime'); $user->data['user_id'] = 2; $user->data['user_options'] = 230271; @@ -163,6 +169,7 @@ protected function setUp(): void $helper, $this->db, $language, + $language_loader, $this->log, $this->notification_manager, $this->request, @@ -300,6 +307,23 @@ public function test_display_rules_uses_real_tree_and_skips_nested_children(): v self::assertSame('English', $this->assigned_vars['CURRENT_LANGUAGE']); self::assertSame(3, $this->assigned_vars['CURRENT_RULE_COUNT']); self::assertTrue($this->assigned_vars['S_DEFAULT_LANGUAGE']); + self::assertTrue($this->assigned_vars['S_RULESET_ROOT']); + self::assertSame('', $this->assigned_vars['BOARDRULES_INTRO_TEXT']); + self::assertSame('Fallback for Test board.', $this->assigned_vars['BOARDRULES_INTRO_FALLBACK']); + self::assertSame(array('boardrules_intro', 'add_edit_rule'), admin_test_state::$form_keys); + self::assertSame(array( + 'boardrules_intro' => '_INTRO', + 'add_edit_rule' => '_ADD_RULE', + ), admin_test_state::$form_key_suffixes); + } + + public function test_display_rules_escapes_encoded_sitename_once(): void + { + $this->config->set('sitename', 'Extension "Development"'); + + $this->controller->display_rules('en'); + + self::assertSame('Fallback for Extension "Development".', $this->assigned_vars['BOARDRULES_INTRO_FALLBACK']); } public function test_display_rules_for_parent_builds_breadcrumb_and_direct_children(): void @@ -310,6 +334,42 @@ public function test_display_rules_for_parent_builds_breadcrumb_and_direct_child self::assertSame(array('Be kind', 'Stay on topic'), array_column($this->blocks['rules'], 'RULE_TITLE')); self::assertSame('General', $this->blocks['breadcrumb'][0]['RULE_TITLE']); self::assertTrue($this->blocks['breadcrumb'][0]['S_CURRENT_LEVEL']); + self::assertFalse($this->assigned_vars['S_RULESET_ROOT']); + } + + public function test_save_ruleset_intro_persists_and_logs(): void + { + $this->variables['boardrules_intro_text'] = ' Custom introduction. '; + $this->log->expects(self::once()) + ->method('add') + ->with('admin', 2, '127.0.0.1', 'ACP_BOARDRULES_INTRO_LOG', false, array('fr')); + $this->setExpectedTriggerError(E_USER_NOTICE, 'ACP_BOARDRULES_INTRO_SAVED'); + + $this->controller->save_ruleset_intro('fr'); + } + + public function test_save_empty_ruleset_intro_restores_fallback(): void + { + $this->ruleset_operator->set_intro_text('fr', 'Custom'); + $this->variables['boardrules_intro_text'] = ' '; + $this->setExpectedTriggerError(E_USER_NOTICE, 'ACP_BOARDRULES_INTRO_SAVED'); + + $this->controller->save_ruleset_intro('fr'); + } + + public function test_save_ruleset_intro_rejects_invalid_form(): void + { + admin_test_state::$valid_form = false; + $this->setExpectedTriggerError(E_USER_WARNING, 'The submitted form was invalid. Try submitting again.'); + + $this->controller->save_ruleset_intro('fr'); + } + + public function test_save_ruleset_intro_rejects_unknown_language(): void + { + $this->setExpectedTriggerError(E_USER_WARNING, 'ACP_BOARDRULES_INVALID_LANGUAGE'); + + $this->controller->save_ruleset_intro('xx'); } public function test_display_rules_rejects_unknown_language(): void diff --git a/tests/controller/admin_test_helpers.php b/tests/controller/admin_test_helpers.php index 2a2f4580..3420c30f 100644 --- a/tests/controller/admin_test_helpers.php +++ b/tests/controller/admin_test_helpers.php @@ -8,6 +8,7 @@ class admin_test_state public static $confirm = true; public static $valid_link_hash = true; public static $form_keys = array(); + public static $form_key_suffixes = array(); public static $confirmations = array(); public static $redirects = array(); public static $custom_bbcodes_displayed = 0; @@ -18,15 +19,17 @@ public static function reset(): void self::$confirm = true; self::$valid_link_hash = true; self::$form_keys = array(); + self::$form_key_suffixes = array(); self::$confirmations = array(); self::$redirects = array(); self::$custom_bbcodes_displayed = 0; } } -function add_form_key($name) +function add_form_key($name, $template_variable_suffix = '') { admin_test_state::$form_keys[] = $name; + admin_test_state::$form_key_suffixes[$name] = $template_variable_suffix; } function check_form_key($name) diff --git a/tests/controller/main_controller_test.php b/tests/controller/main_controller_test.php index 8c32fdf2..ad01a9d9 100644 --- a/tests/controller/main_controller_test.php +++ b/tests/controller/main_controller_test.php @@ -104,6 +104,7 @@ public function test_display($status_code, $page_content, $rule_data, $language_ ->willReturnCallback(function ($language) use ($language_published) { return $language === 'fr' ? $language_published : true; }); + $ruleset_operator->method('get_intro_text')->willReturn('Custom & details'); // Mock the controller helper and return render response object $controller_helper = $this->getMockBuilder('\phpbb\controller\helper') @@ -118,6 +119,11 @@ public function test_display($status_code, $page_content, $rule_data, $language_ // Mock the template $template = $this->getMockBuilder('\phpbb\template\template') ->getMock(); + $template->expects(self::once()) + ->method('assign_vars') + ->with(self::callback(function ($vars) { + return $vars['BOARDRULES_EXPLAIN'] === 'Custom <intro> & details'; + })); /** @var \phpbb\controller\helper $controller_helper */ /** @var \phpbb\boardrules\operators\rule $rule_operator */ diff --git a/tests/functional/admin_controller_test.php b/tests/functional/admin_controller_test.php index 48592108..6ca3050a 100644 --- a/tests/functional/admin_controller_test.php +++ b/tests/functional/admin_controller_test.php @@ -38,6 +38,48 @@ public function test_acp_module() return $crawler; } + /** + * Test the per-language rules page introduction editor and public output. + */ + public function test_acp_ruleset_intro() + { + $this->login(); + $this->admin_login(); + $this->get_db(); + + $intro_text = "Welcome to our community. 👋 مرحبًا こんにちは\nThis is plain text."; + $crawler = self::request('GET', "adm/index.php?i=\\phpbb\\boardrules\\acp\\boardrules_module&mode=manage&language=en&sid={$this->sid}"); + $form_node = $crawler->filter('#boardrules_intro_form'); + self::assertCount(1, $form_node); + self::assertSame('true', $form_node->attr('data-ajax')); + self::assertNotSame('', $form_node->filter('#boardrules_intro_text')->attr('placeholder')); + self::assertNotSame( + $form_node->filter('input[name="form_token"]')->attr('value'), + $crawler->filter('#rules input[name="form_token"]')->attr('value') + ); + + try + { + $form = $form_node->selectButton($this->lang('ACP_BOARDRULES_INTRO_SAVE'))->form(array( + 'boardrules_intro_text' => $intro_text, + )); + $crawler = self::submit($form); + $this->assertContainsLang('ACP_BOARDRULES_INTRO_SAVED', $crawler->text()); + + $result = $this->db->sql_query("SELECT rules_intro_text FROM phpbb_boardrules_rulesets WHERE language_iso = 'en'"); + self::assertSame(utf8_encode_ncr($intro_text), $this->db->sql_fetchfield('rules_intro_text')); + $this->db->sql_freeresult($result); + + $crawler = self::request('GET', "adm/index.php?i=\\phpbb\\boardrules\\acp\\boardrules_module&mode=manage&language=en&sid={$this->sid}"); + self::assertSame($intro_text, $crawler->filter('#boardrules_intro_text')->text()); + + } + finally + { + $this->db->sql_query("UPDATE phpbb_boardrules_rulesets SET rules_intro_text = '' WHERE language_iso = 'en'"); + } + } + /** * Test Board Rules ACP Create Rule * @param $crawler \Symfony\Component\DomCrawler\Crawler diff --git a/tests/functional/boardrules_controller_test.php b/tests/functional/boardrules_controller_test.php index 911c6855..915892b4 100644 --- a/tests/functional/boardrules_controller_test.php +++ b/tests/functional/boardrules_controller_test.php @@ -29,6 +29,49 @@ public function test_boardrules_page() self::assertCount(1, $crawler->filter('ol.boardrules-rules > li > ol.br-list-style-lower-alpha')); } + public function test_custom_ruleset_intro() + { + $this->get_db(); + $intro_text = "Welcome to our community.\nThis is plain text."; + $result = $this->db->sql_query("SELECT rules_published, rules_intro_text FROM phpbb_boardrules_rulesets WHERE language_iso = 'en'"); + $original_ruleset = $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + + try + { + $sql = $original_ruleset + ? "UPDATE phpbb_boardrules_rulesets SET rules_intro_text = '" . $this->db->sql_escape($intro_text) . "' WHERE language_iso = 'en'" + : 'INSERT INTO phpbb_boardrules_rulesets ' . $this->db->sql_build_array('INSERT', array( + 'language_iso' => 'en', + 'rules_published' => 1, + 'rules_intro_text' => $intro_text, + )); + $this->db->sql_query($sql); + $this->purge_cache(); + + $crawler = self::request('GET', 'app.php/rules'); + $intro = $crawler->filter('#main p')->first(); + self::assertCount(1, $intro); + self::assertStringContainsString('Welcome to our community.', $intro->text()); + self::assertStringContainsString('This is plain text.', $intro->text()); + self::assertCount(0, $intro->filter('strong')); + self::assertStringContainsString('html()); + } + finally + { + if ($original_ruleset) + { + $sql = 'UPDATE phpbb_boardrules_rulesets SET ' . $this->db->sql_build_array('UPDATE', $original_ruleset) . " WHERE language_iso = 'en'"; + $this->db->sql_query($sql); + } + else + { + $this->db->sql_query("DELETE FROM phpbb_boardrules_rulesets WHERE language_iso = 'en'"); + } + $this->purge_cache(); + } + } + public function test_alternative_list_styles() { $this->get_db(); diff --git a/tests/operators/ruleset_operator_test.php b/tests/operators/ruleset_operator_test.php index d201a0c4..4c32cd51 100644 --- a/tests/operators/ruleset_operator_test.php +++ b/tests/operators/ruleset_operator_test.php @@ -162,6 +162,36 @@ public function test_publication_state_can_change(): void self::assertFalse($this->operator->is_published('fr')); } + public function test_ruleset_intro_defaults_to_empty_and_can_be_saved(): void + { + self::assertSame('', $this->operator->get_intro_text('en')); + + $this->operator->set_intro_text('en', 'Welcome to our rules. 👋 مرحبًا こんにちは'); + + self::assertSame('Welcome to our rules. 👋 مرحبًا こんにちは', $this->operator->get_intro_text('en')); + + $result = $this->db->sql_query("SELECT rules_intro_text FROM phpbb_boardrules_rulesets WHERE language_iso = 'en'"); + self::assertSame('Welcome to our rules. 👋 مرحبًا こんにちは', $this->db->sql_fetchfield('rules_intro_text')); + $this->db->sql_freeresult($result); + self::assertTrue($this->operator->is_published('en')); + } + + public function test_ruleset_intro_can_be_created_before_rules(): void + { + $this->operator->set_intro_text('fr', 'Bienvenue.'); + + self::assertSame('Bienvenue.', $this->operator->get_intro_text('fr')); + self::assertTrue($this->operator->is_published('fr')); + } + + public function test_unknown_ruleset_intro_language_is_rejected(): void + { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('ACP_BOARDRULES_INVALID_LANGUAGE'); + + $this->operator->set_intro_text('xx', 'Unknown'); + } + public function test_empty_ruleset_cannot_be_published(): void { $this->expectException(\InvalidArgumentException::class);