diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 00000000..858d05c9 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,58 @@ +name: Tests + +on: + push: + branches: [main, master, develop] + pull_request: + branches: [main, master, develop] + +jobs: + tests: + runs-on: ubuntu-latest + + strategy: + fail-fast: true + matrix: + php: [8.2, 8.3, 8.4] + + name: PHP ${{ matrix.php }} + + steps: + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: mbstring, intl, pdo_sqlite + coverage: none + ini-values: memory_limit=512M + + - name: Install October CMS + run: | + composer create-project october/october october --no-interaction --no-progress + + - name: Configure environment + run: | + cd october + mkdir -p database && touch database/database.sqlite + sed -i 's/DB_CONNECTION=.*/DB_CONNECTION=sqlite/' .env + sed -i 's|DB_DATABASE=.*|DB_DATABASE=database/database.sqlite|' .env + + - name: Migrate core tables + run: | + cd october + php artisan october:migrate --no-interaction + + - name: Checkout plugin + uses: actions/checkout@v4 + with: + path: october/plugins/rainlab/blog + + - name: Migrate plugin + run: | + cd october + php artisan october:migrate --no-interaction + + - name: Run tests + run: | + cd october + php vendor/bin/phpunit --configuration plugins/rainlab/blog/phpunit.xml diff --git a/Plugin.php b/Plugin.php index 0bbc95a5..441171fa 100644 --- a/Plugin.php +++ b/Plugin.php @@ -1,180 +1,179 @@ 'rainlab.blog::lang.plugin.name', - 'description' => 'rainlab.blog::lang.plugin.description', - 'author' => 'Alexey Bobkov, Samuel Georges', - 'icon' => 'icon-pencil', - 'homepage' => 'https://github.com/rainlab/blog-plugin' + 'name' => "Blog", + 'description' => "A robust blogging platform.", + 'author' => 'Alexey Bobkov, Samuel Georges', + 'icon' => 'icon-pencil', + 'homepage' => 'https://github.com/rainlab/blog-plugin' ]; } + /** + * boot the module events. + */ + public function boot() + { + $this->bootPageManagerLookups(); + } + + /** + * registerComponents + */ public function registerComponents() { return [ - 'RainLab\Blog\Components\Post' => 'blogPost', - 'RainLab\Blog\Components\Posts' => 'blogPosts', - 'RainLab\Blog\Components\Categories' => 'blogCategories', - 'RainLab\Blog\Components\RssFeed' => 'blogRssFeed' + \RainLab\Blog\Components\Post::class => 'blogPost', + \RainLab\Blog\Components\Posts::class => 'blogPosts', + \RainLab\Blog\Components\Categories::class => 'blogCategories', + \RainLab\Blog\Components\RssFeed::class => 'blogRssFeed', ]; } + /** + * registerPermissions + */ public function registerPermissions() { return [ 'rainlab.blog.manage_settings' => [ - 'tab' => 'rainlab.blog::lang.blog.tab', - 'label' => 'rainlab.blog::lang.blog.manage_settings' + 'tab' => "Blog", + 'label' => "Manage blog settings", ], 'rainlab.blog.access_posts' => [ - 'tab' => 'rainlab.blog::lang.blog.tab', - 'label' => 'rainlab.blog::lang.blog.access_posts' + 'tab' => "Blog", + 'label' => "Manage the blog posts", ], 'rainlab.blog.access_categories' => [ - 'tab' => 'rainlab.blog::lang.blog.tab', - 'label' => 'rainlab.blog::lang.blog.access_categories' + 'tab' => "Blog", + 'label' => "Manage the blog categories", ], 'rainlab.blog.access_other_posts' => [ - 'tab' => 'rainlab.blog::lang.blog.tab', - 'label' => 'rainlab.blog::lang.blog.access_other_posts' + 'tab' => "Blog", + 'label' => "Manage other users blog posts", ], 'rainlab.blog.access_import_export' => [ - 'tab' => 'rainlab.blog::lang.blog.tab', - 'label' => 'rainlab.blog::lang.blog.access_import_export' + 'tab' => "Blog", + 'label' => "Allowed to import and export posts", ], 'rainlab.blog.access_publish' => [ - 'tab' => 'rainlab.blog::lang.blog.tab', - 'label' => 'rainlab.blog::lang.blog.access_publish' - ] + 'tab' => "Blog", + 'label' => "Allowed to publish posts", + ], ]; } + /** + * registerNavigation + */ public function registerNavigation() { return [ 'blog' => [ - 'label' => 'rainlab.blog::lang.blog.menu_label', - 'url' => Backend::url('rainlab/blog/posts'), - 'icon' => 'icon-pencil', - 'iconSvg' => 'plugins/rainlab/blog/assets/images/blog-icon.svg', + 'label' => "Blog", + 'url' => Backend::url('rainlab/blog/posts'), + 'icon' => 'icon-pencil', + 'iconSvg' => 'plugins/rainlab/blog/assets/images/blog-icon.svg', 'permissions' => ['rainlab.blog.*'], - 'order' => 300, - + 'order' => 300, 'sideMenu' => [ 'new_post' => [ - 'label' => 'rainlab.blog::lang.posts.new_post', - 'icon' => 'icon-plus', - 'url' => Backend::url('rainlab/blog/posts/create'), - 'permissions' => ['rainlab.blog.access_posts'] + 'label' => "New Post", + 'icon' => 'icon-plus', + 'url' => Backend::url('rainlab/blog/posts/create'), + 'permissions' => ['rainlab.blog.access_posts'], ], 'posts' => [ - 'label' => 'rainlab.blog::lang.blog.posts', - 'icon' => 'icon-copy', - 'url' => Backend::url('rainlab/blog/posts'), - 'permissions' => ['rainlab.blog.access_posts'] + 'label' => "Posts", + 'icon' => 'icon-copy', + 'url' => Backend::url('rainlab/blog/posts'), + 'permissions' => ['rainlab.blog.access_posts'], ], 'categories' => [ - 'label' => 'rainlab.blog::lang.blog.categories', - 'icon' => 'icon-list-ul', - 'url' => Backend::url('rainlab/blog/categories'), - 'permissions' => ['rainlab.blog.access_categories'] - ] - ] - ] + 'label' => "Categories", + 'icon' => 'icon-list-ul', + 'url' => Backend::url('rainlab/blog/categories'), + 'permissions' => ['rainlab.blog.access_categories'], + ], + ], + ], ]; } + /** + * registerSettings + */ public function registerSettings() { return [ 'blog' => [ - 'label' => 'rainlab.blog::lang.blog.menu_label', - 'description' => 'rainlab.blog::lang.blog.settings_description', - 'category' => 'rainlab.blog::lang.blog.menu_label', + 'label' => "Blog Settings", + 'description' => "Manage blog settings", + 'category' => "Blog", 'icon' => 'icon-pencil', - 'class' => 'RainLab\Blog\Models\Settings', + 'class' => \RainLab\Blog\Models\Setting::class, 'order' => 500, 'keywords' => 'blog post category', - 'permissions' => ['rainlab.blog.manage_settings'] - ] + 'permissions' => ['rainlab.blog.manage_settings'], + ], ]; } /** - * Register method, called when the plugin is first registered. + * bootPageManagerLookups registers menu items for the RainLab.Pages plugin */ - public function register() - { - /* - * Register the image tag processing callback - */ - TagProcessor::instance()->registerCallback(function($input, $preview) { - if (!$preview) { - return $input; - } - - return preg_replace('|\([0-9]+)]*)\/>|m', - ' - - '. trans('rainlab.blog::lang.post.dropzone') .' - - - ', - $input); - }); - } - - public function boot() + protected function bootPageManagerLookups() { - /* - * Register menu items for the RainLab.Pages plugin - */ Event::listen('cms.pageLookup.listTypes', function() { return [ - 'blog-category' => 'rainlab.blog::lang.menuitem.blog_category', - 'all-blog-categories' => ['rainlab.blog::lang.menuitem.all_blog_categories', true], - 'blog-post' => 'rainlab.blog::lang.menuitem.blog_post', - 'all-blog-posts' => ['rainlab.blog::lang.menuitem.all_blog_posts', true], - 'category-blog-posts' => ['rainlab.blog::lang.menuitem.category_blog_posts', true], + 'blog-category' => "Blog Category", + 'all-blog-categories' => ["All Blog Categories", true], + 'blog-post' => "Blog Post", + 'all-blog-posts' => ["All Blog Posts", true], + 'category-blog-posts' => ["Blog Category Posts", true], ]; }); Event::listen('pages.menuitem.listTypes', function() { return [ - 'blog-category' => 'rainlab.blog::lang.menuitem.blog_category', - 'all-blog-categories' => 'rainlab.blog::lang.menuitem.all_blog_categories', - 'blog-post' => 'rainlab.blog::lang.menuitem.blog_post', - 'all-blog-posts' => 'rainlab.blog::lang.menuitem.all_blog_posts', - 'category-blog-posts' => 'rainlab.blog::lang.menuitem.category_blog_posts', + 'blog-category' => "Blog Category", + 'all-blog-categories' => "All Blog Categories", + 'blog-post' => "Blog Post", + 'all-blog-posts' => "All Blog Posts", + 'category-blog-posts' => "Blog Category Posts", ]; }); Event::listen(['cms.pageLookup.getTypeInfo', 'pages.menuitem.getTypeInfo'], function($type) { - if ($type == 'blog-category' || $type == 'all-blog-categories') { + if ($type === 'blog-category' || $type === 'all-blog-categories') { return Category::getMenuTypeInfo($type); } - elseif ($type == 'blog-post' || $type == 'all-blog-posts' || $type == 'category-blog-posts') { + elseif ($type === 'blog-post' || $type === 'all-blog-posts' || $type === 'category-blog-posts') { return Post::getMenuTypeInfo($type); } }); Event::listen(['cms.pageLookup.resolveItem', 'pages.menuitem.resolveItem'], function($type, $item, $url, $theme) { - if ($type == 'blog-category' || $type == 'all-blog-categories') { + if ($type === 'blog-category' || $type === 'all-blog-categories') { return Category::resolveMenuItem($item, $url, $theme); } - elseif ($type == 'blog-post' || $type == 'all-blog-posts' || $type == 'category-blog-posts') { + elseif ($type === 'blog-post' || $type === 'all-blog-posts' || $type === 'category-blog-posts') { return Post::resolveMenuItem($item, $url, $theme); } }); diff --git a/assets/css/rainlab.blog-preview.css b/assets/css/rainlab.blog-preview.css deleted file mode 100644 index eb21587d..00000000 --- a/assets/css/rainlab.blog-preview.css +++ /dev/null @@ -1,85 +0,0 @@ -.blog-post-preview .editor-preview .preview-content { - padding: 20px; -} -.blog-post-preview .editor-preview span.image-placeholder { - display: block; -} -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone { - background: #ecf0f1; - display: block; - border: 1px solid #e5e9ec; - padding: 25px; - min-height: 123px; - position: relative; - text-align: center; - cursor: pointer; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone span.label { - color: #b1b9be; - font-size: 16px; - display: inline-block; - margin-top: 25px; -} -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone:before { - display: inline-block; - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - text-decoration: inherit; - -webkit-font-smoothing: antialiased; - *margin-right: .3em; - content: "\f03e"; - position: absolute; - left: 25px; - top: 25px; - line-height: 100%; - font-size: 73px; - color: #d1d3d4; -} -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone.hover, -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone:hover { - background: #2f99da; -} -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone.hover:before, -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone:hover:before, -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone.hover span.label, -.blog-post-preview .editor-preview span.image-placeholder .upload-dropzone:hover span.label { - color: white; -} -.blog-post-preview .editor-preview span.image-placeholder input[type=file] { - position: absolute; - left: -10000em; -} -.blog-post-preview-container .loading-indicator { - position: absolute; - display: none; - width: 20px; - height: 20px; - padding: 0!important; - background: transparent; - right: 10px; - left: auto; - top: 10px; -} -.blog-post-preview-container.loading-indicator-visible .loading-indicator { - display: block; -} -html.cssanimations .blog-post-preview span.image-placeholder.loading .upload-dropzone:before { - display: none; -} -html.cssanimations .blog-post-preview span.image-placeholder.loading .upload-dropzone .indicator { - display: block; - width: 50px; - height: 50px; - position: absolute; - left: 35px; - top: 35px; - background-image: url('../../../../../modules/system/assets/ui/images/loader-transparent.svg'); - background-size: 50px 50px; - background-position: 50% 50%; - -webkit-animation: spin 1s linear infinite; - animation: spin 1s linear infinite; -} diff --git a/assets/js/post-form.js b/assets/js/post-form.js deleted file mode 100644 index 13888506..00000000 --- a/assets/js/post-form.js +++ /dev/null @@ -1,186 +0,0 @@ -+function ($) { "use strict"; - var PostForm = function () { - this.$form = $('#post-form') - this.$markdownEditor = $('[data-field-name=content] [data-control=markdowneditor]:first', this.$form) - this.$preview = $('.editor-preview', this.$markdownEditor) - - this.formAction = this.$form.attr('action') - this.sessionKey = $('input[name=_session_key]', this.$form).val() - - if (this.$markdownEditor.length > 0 && typeof this.$markdownEditor.markdownEditor === 'function') { - this.codeEditor = this.$markdownEditor.markdownEditor('getEditorObject') - - this.$markdownEditor.on('initPreview.oc.markdowneditor', $.proxy(this.initPreview, this)) - - this.initDropzones() - this.addToolbarButton() - } - - this.initFormEvents() - this.initLayout() - } - - PostForm.prototype.addToolbarButton = function() { - this.buttonClickCount = 1 - - var self = this, - $button = this.$markdownEditor.markdownEditor('findToolbarButton', 'image') - - if (!$button.length) return - - $button.data('button-action', 'insertLine') - $button.data('button-template', '\n\n![1](image)\n') - - $button.on('click', function() { - $button.data('button-template', '\n\n!['+self.buttonClickCount+'](image)\n') - self.buttonClickCount++ - }) - } - - PostForm.prototype.initPreview = function() { - this.initImageUploaders() - } - - PostForm.prototype.updateScroll = function() { - // Reserved in case MarkdownEditor uses scrollbar plugin - // this.$preview.data('oc.scrollbar').update() - } - - PostForm.prototype.initImageUploaders = function() { - var self = this - $('span.image-placeholder .upload-dropzone', this.$preview).each(function(){ - var - $placeholder = $(this).parent(), - $link = $('span.label', $placeholder), - placeholderIndex = $placeholder.data('index') - - var uploaderOptions = { - url: self.formAction, - clickable: [$(this).get(0), $link.get(0)], - previewsContainer: $('
').get(0), - paramName: 'file', - headers: {} - } - - /* - * Add CSRF token to headers - */ - var token = $('meta[name="csrf-token"]').attr('content') - if (token) { - uploaderOptions.headers['X-CSRF-TOKEN'] = token - } - - var dropzone = new Dropzone($(this).get(0), uploaderOptions) - - dropzone.on('error', function(file, error) { - alert('Error uploading file: ' + error) - }) - dropzone.on('success', function(file, data){ - if (data.error) - alert(data.error); - else { - self.pauseUpdates(); - var $img = $(''); - $img.one('load', function(){ - self.updateScroll(); - }); - - $placeholder.replaceWith($img); - - self.codeEditor.replace('!['+data.file+']('+data.path+')', { - needle: '!['+placeholderIndex+'](image)' - }); - - self.resumeUpdates(); - } - }) - dropzone.on('complete', function(){ - $placeholder.removeClass('loading') - }) - dropzone.on('sending', function(file, xhr, formData) { - formData.append('X_BLOG_IMAGE_UPLOAD', 1) - formData.append('_session_key', self.sessionKey) - $placeholder.addClass('loading') - }) - }) - } - - PostForm.prototype.pauseUpdates = function() { - this.$markdownEditor.markdownEditor('pauseUpdates') - } - - PostForm.prototype.resumeUpdates = function() { - this.$markdownEditor.markdownEditor('resumeUpdates') - } - - PostForm.prototype.initDropzones = function() { - $(document).bind('dragover', function (e) { - var dropZone = $('span.image-placeholder .upload-dropzone'), - foundDropzone, - timeout = window.dropZoneTimeout - - if (!timeout) - dropZone.addClass('in'); - else - clearTimeout(timeout); - - var found = false, - node = e.target - - do { - if ($(node).hasClass('dropzone')) { - found = true - foundDropzone = $(node) - break - } - - node = node.parentNode; - - } while (node != null); - - dropZone.removeClass('in hover') - - if (found) - foundDropzone.addClass('hover') - - window.dropZoneTimeout = setTimeout(function () { - window.dropZoneTimeout = null - dropZone.removeClass('in hover') - }, 100) - }) - } - - PostForm.prototype.initFormEvents = function() { - $(document).on('ajaxSuccess', '#post-form', function(event, context, data){ - if (context.handler == 'onSave' && !data.X_OCTOBER_ERROR_FIELDS) { - $(this).trigger('unchange.oc.changeMonitor') - } - }) - } - - PostForm.prototype.initLayout = function() { - $('#Form-secondaryTabs .tab-pane.layout-cell:not(:first-child), #Form-secondaryTabs .tab-pane.form-tab-pane:not(:first-child)').addClass('padded-pane') - $('#Form-secondaryTabs .nav-tabs > li:not(:first-child)').addClass('tab-content-bg') - } - - PostForm.prototype.replacePlaceholder = function(placeholder, placeholderHtmlReplacement, mdCodePlaceholder, mdCodeReplacement) { - this.pauseUpdates() - placeholder.replaceWith(placeholderHtmlReplacement) - - this.codeEditor.replace(mdCodeReplacement, { - needle: mdCodePlaceholder - }) - this.updateScroll() - this.resumeUpdates() - } - - $(document).ready(function(){ - var form = new PostForm() - - if ($.oc === undefined) - $.oc = {} - - $.oc.blogPostForm = form - }) - -}(window.jQuery); \ No newline at end of file diff --git a/assets/less/rainlab.blog-preview.less b/assets/less/rainlab.blog-preview.less deleted file mode 100644 index 95334a05..00000000 --- a/assets/less/rainlab.blog-preview.less +++ /dev/null @@ -1,99 +0,0 @@ -@import "../../../../../modules/backend/assets/less/core/boot.less"; - -.blog-post-preview .editor-preview { - .preview-content { - padding: 20px; - } - - span.image-placeholder { - display: block; - - .upload-dropzone { - background: #ecf0f1; - display: block; - border: 1px solid #e5e9ec; - padding: 25px; - min-height: 123px; - position: relative; - text-align: center; - cursor: pointer; - .box-sizing(border-box); - - span.label { - color: #b1b9be; - font-size: 16px; - display: inline-block; - margin-top: 25px; - } - - &:before { - display: inline-block; - .icon(@picture-o); - position: absolute; - left: 25px; - top: 25px; - line-height: 100%; - font-size: 73px; - color: #d1d3d4; - } - - &.hover, &:hover { - background: #2f99da; - - &:before, span.label { - color: white; - } - } - } - - input[type=file] { - position: absolute; - left: -10000em; - } - } -} - -.blog-post-preview-container { - .loading-indicator { - position: absolute; - display: none; - width: 20px; - height: 20px; - padding: 0!important; - background: transparent; - right: 10px; - left: auto; - top: 10px; - } - - &.loading-indicator-visible { - .loading-indicator { - display: block; - } - } -} - -html.cssanimations { - .blog-post-preview { - span.image-placeholder.loading { - .upload-dropzone { - &:before { - display: none; - } - - .indicator { - display: block; - width: 50px; - height: 50px; - position: absolute; - left: 35px; - top: 35px; - background-image:url('../../../../../modules/system/assets/ui/images/loader-transparent.svg'); - background-size: 50px 50px; - background-position: 50% 50%; - .animation(spin 1s linear infinite); - } - } - } - } -} \ No newline at end of file diff --git a/components/Categories.php b/components/Categories.php index 8caed92f..a54b29f0 100644 --- a/components/Categories.php +++ b/components/Categories.php @@ -1,7 +1,5 @@ 'rainlab.blog::lang.settings.category_title', - 'description' => 'rainlab.blog::lang.settings.category_description' + 'name' => "Category List", + 'description' => "Displays a list of blog categories on the page.", ]; } + /** + * defineProperties + */ public function defineProperties() { return [ 'slug' => [ - 'title' => 'rainlab.blog::lang.settings.category_slug', - 'description' => 'rainlab.blog::lang.settings.category_slug_description', - 'default' => '{{ :slug }}', - 'type' => 'string', + 'title' => "Category slug", + 'description' => "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", + 'default' => '{{ :slug }}', + 'type' => 'string', ], 'displayEmpty' => [ - 'title' => 'rainlab.blog::lang.settings.category_display_empty', - 'description' => 'rainlab.blog::lang.settings.category_display_empty_description', - 'type' => 'checkbox', - 'default' => 0, + 'title' => "Display empty categories", + 'description' => "Show categories that do not have any posts.", + 'type' => 'checkbox', + 'default' => 0, ], 'categoryPage' => [ - 'title' => 'rainlab.blog::lang.settings.category_page', - 'description' => 'rainlab.blog::lang.settings.category_page_description', - 'type' => 'dropdown', - 'default' => 'blog/category', - 'group' => 'rainlab.blog::lang.settings.group_links', + 'title' => "Category page", + 'description' => "Name of the category page file for the category links. This property is used by the default component partial.", + 'type' => 'dropdown', + 'default' => 'blog/category', + 'group' => "Links", ], ]; } @@ -75,6 +79,7 @@ public function onRun() protected function loadCategories() { $categories = BlogCategory::with('posts_count')->getNested(); + if (!$this->property('displayEmpty')) { $iterator = function ($categories) use (&$iterator) { return $categories->reject(function ($category) use (&$iterator) { @@ -90,9 +95,7 @@ protected function loadCategories() $categories = $iterator($categories); } - /* - * Add a "url" helper attribute for linking to each category - */ + // Add a "url" helper attribute for linking to each category return $this->linkCategories($categories); } diff --git a/components/Post.php b/components/Post.php index d2437b85..54aa1a6b 100644 --- a/components/Post.php +++ b/components/Post.php @@ -6,10 +6,13 @@ use Cms\Classes\ComponentBase; use RainLab\Blog\Models\Post as BlogPost; +/** + * Post + */ class Post extends ComponentBase { /** - * @var RainLab\Blog\Models\Post The post model used for display. + * @var \RainLab\Blog\Models\Post The post model used for display. */ public $post; @@ -21,8 +24,8 @@ class Post extends ComponentBase public function componentDetails() { return [ - 'name' => 'rainlab.blog::lang.settings.post_title', - 'description' => 'rainlab.blog::lang.settings.post_description' + 'name' => "Post", + 'description' => "Displays a blog post on the page.", ]; } @@ -30,16 +33,16 @@ public function defineProperties() { return [ 'slug' => [ - 'title' => 'rainlab.blog::lang.settings.post_slug', - 'description' => 'rainlab.blog::lang.settings.post_slug_description', - 'default' => '{{ :slug }}', - 'type' => 'string', + 'title' => "Post slug", + 'description' => "Look up the blog post using the supplied slug value.", + 'default' => '{{ :slug }}', + 'type' => 'string', ], 'categoryPage' => [ - 'title' => 'rainlab.blog::lang.settings.post_category', - 'description' => 'rainlab.blog::lang.settings.post_category_description', - 'type' => 'dropdown', - 'default' => 'blog/category', + 'title' => "Category page", + 'description' => "Name of the category page file for the category links. This property is used by the default component partial.", + 'type' => 'dropdown', + 'default' => 'blog/category', ], ]; } @@ -51,30 +54,16 @@ public function getCategoryPageOptions() public function init() { - Event::listen('translate.localePicker.translateParams', function ($page, $params, $oldLocale, $newLocale) { - $newParams = $params; - - if (isset($params['slug'])) { - $records = BlogPost::transWhere('slug', $params['slug'], $oldLocale)->first(); - if ($records) { - $records->translateContext($newLocale); - $newParams['slug'] = $records['slug']; - } - } - - return $newParams; - }); - Event::listen('cms.sitePicker.overrideParams', function ($page, $params, $currentSite, $proposedSite) { $newParams = $params; $oldLocale = $currentSite->hard_locale; $newLocale = $proposedSite->hard_locale; if (isset($params['slug'])) { - $records = BlogPost::transWhere('slug', $params['slug'], $oldLocale)->first(); - if ($records) { - $records->translateContext($newLocale); - $newParams['slug'] = $records['slug']; + $record = BlogPost::whereTranslation('slug', $oldLocale, $params['slug'])->first(); + if ($record) { + $record->setLocale($newLocale); + $newParams['slug'] = $record->slug; } } @@ -103,14 +92,7 @@ protected function loadPost() { $slug = $this->property('slug'); - $post = new BlogPost; - $query = $post->query(); - - if ($post->isClassExtendedWith('RainLab.Translate.Behaviors.TranslatableModel')) { - $query->transWhere('slug', $slug); - } else { - $query->where('slug', $slug); - } + $query = BlogPost::where('slug', $slug); if (!$this->checkEditor()) { $query->isPublished(); diff --git a/components/Posts.php b/components/Posts.php index 3ac3c4a3..1d564713 100644 --- a/components/Posts.php +++ b/components/Posts.php @@ -9,8 +9,11 @@ use October\Rain\Database\Collection; use RainLab\Blog\Models\Post as BlogPost; use RainLab\Blog\Models\Category as BlogCategory; -use RainLab\Blog\Models\Settings as BlogSettings; +use RainLab\Blog\Models\Setting as BlogSettings; +/** + * Posts + */ class Posts extends ComponentBase { /** @@ -62,80 +65,86 @@ class Posts extends ComponentBase */ public $sortOrder; + /** + * componentDetails + */ public function componentDetails() { return [ - 'name' => 'rainlab.blog::lang.settings.posts_title', - 'description' => 'rainlab.blog::lang.settings.posts_description' + 'name' => "Post List", + 'description' => "Displays a list of latest blog posts on the page.", ]; } + /** + * defineProperties + */ public function defineProperties() { return [ 'pageNumber' => [ - 'title' => 'rainlab.blog::lang.settings.posts_pagination', - 'description' => 'rainlab.blog::lang.settings.posts_pagination_description', - 'type' => 'string', - 'default' => '{{ :page }}', + 'title' => "Page number", + 'description' => "This value is used to determine what page the user is on.", + 'type' => 'string', + 'default' => '{{ :page }}', ], 'categoryFilter' => [ - 'title' => 'rainlab.blog::lang.settings.posts_filter', - 'description' => 'rainlab.blog::lang.settings.posts_filter_description', - 'type' => 'string', - 'default' => '', + 'title' => "Category filter", + 'description' => "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.", + 'type' => 'string', + 'default' => '', ], 'postsPerPage' => [ - 'title' => 'rainlab.blog::lang.settings.posts_per_page', - 'type' => 'string', + 'title' => "Posts per page", + 'type' => 'string', 'validationPattern' => '^[0-9]+$', - 'validationMessage' => 'rainlab.blog::lang.settings.posts_per_page_validation', - 'default' => '10', + 'validationMessage' => "Invalid format of the posts per page value", + 'default' => '10', ], 'noPostsMessage' => [ - 'title' => 'rainlab.blog::lang.settings.posts_no_posts', - 'description' => 'rainlab.blog::lang.settings.posts_no_posts_description', - 'type' => 'string', - 'default' => Lang::get('rainlab.blog::lang.settings.posts_no_posts_default'), + 'title' => "No posts message", + 'description' => "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.", + 'type' => 'string', + 'default' => __("No posts found"), 'showExternalParam' => false, ], 'sortOrder' => [ - 'title' => 'rainlab.blog::lang.settings.posts_order', - 'description' => 'rainlab.blog::lang.settings.posts_order_description', - 'type' => 'dropdown', - 'default' => 'published_at desc', + 'title' => "Post order", + 'description' => "Attribute on which the posts should be ordered", + 'type' => 'dropdown', + 'default' => 'published_at desc', ], 'categoryPage' => [ - 'title' => 'rainlab.blog::lang.settings.posts_category', - 'description' => 'rainlab.blog::lang.settings.posts_category_description', - 'type' => 'dropdown', - 'default' => 'blog/category', - 'group' => 'rainlab.blog::lang.settings.group_links', + 'title' => "Category page", + 'description' => "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.", + 'type' => 'dropdown', + 'default' => 'blog/category', + 'group' => "Links", ], 'postPage' => [ - 'title' => 'rainlab.blog::lang.settings.posts_post', - 'description' => 'rainlab.blog::lang.settings.posts_post_description', - 'type' => 'dropdown', - 'default' => 'blog/post', - 'group' => 'rainlab.blog::lang.settings.group_links', + 'title' => "Post page", + 'description' => "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.", + 'type' => 'dropdown', + 'default' => 'blog/post', + 'group' => "Links", ], 'exceptPost' => [ - 'title' => 'rainlab.blog::lang.settings.posts_except_post', - 'description' => 'rainlab.blog::lang.settings.posts_except_post_description', - 'type' => 'string', + 'title' => "Except post", + 'description' => "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.", + 'type' => 'string', 'validationPattern' => '^[a-z0-9\-_,\s]+$', - 'validationMessage' => 'rainlab.blog::lang.settings.posts_except_post_validation', - 'default' => '', - 'group' => 'rainlab.blog::lang.settings.group_exceptions', + 'validationMessage' => "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs", + 'default' => '', + 'group' => "Exceptions", ], 'exceptCategories' => [ - 'title' => 'rainlab.blog::lang.settings.posts_except_categories', - 'description' => 'rainlab.blog::lang.settings.posts_except_categories_description', - 'type' => 'string', + 'title' => "Except categories", + 'description' => "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude", + 'type' => 'string', 'validationPattern' => '^[a-z0-9\-_,\s]+$', - 'validationMessage' => 'rainlab.blog::lang.settings.posts_except_categories_validation', - 'default' => '', - 'group' => 'rainlab.blog::lang.settings.group_exceptions', + 'validationMessage' => "Category exceptions must be a single category slug, or a comma-separated list of slugs", + 'default' => '', + 'group' => "Exceptions", ], ]; } @@ -237,13 +246,7 @@ protected function loadCategory() return null; } - $category = new BlogCategory; - - $category = $category->isClassExtendedWith('RainLab.Translate.Behaviors.TranslatableModel') - ? $category->transWhere('slug', $slug) - : $category->where('slug', $slug); - - $category = $category->first(); + $category = BlogCategory::where('slug', $slug)->first(); return $category ?: null; } diff --git a/components/RssFeed.php b/components/RssFeed.php index 295433b0..cc981554 100644 --- a/components/RssFeed.php +++ b/components/RssFeed.php @@ -36,8 +36,8 @@ class RssFeed extends ComponentBase public function componentDetails() { return [ - 'name' => 'rainlab.blog::lang.settings.rssfeed_title', - 'description' => 'rainlab.blog::lang.settings.rssfeed_description' + 'name' => "RSS Feed", + 'description' => "Generates an RSS feed containing posts from the blog.", ]; } @@ -45,51 +45,60 @@ public function defineProperties() { return [ 'categoryFilter' => [ - 'title' => 'rainlab.blog::lang.settings.posts_filter', - 'description' => 'rainlab.blog::lang.settings.posts_filter_description', - 'type' => 'string', - 'default' => '', + 'title' => "Category filter", + 'description' => "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.", + 'type' => 'string', + 'default' => '', ], 'sortOrder' => [ - 'title' => 'rainlab.blog::lang.settings.posts_order', - 'description' => 'rainlab.blog::lang.settings.posts_order_description', - 'type' => 'dropdown', - 'default' => 'created_at desc', + 'title' => "Post order", + 'description' => "Attribute on which the posts should be ordered", + 'type' => 'dropdown', + 'default' => 'created_at desc', ], 'postsPerPage' => [ - 'title' => 'rainlab.blog::lang.settings.posts_per_page', - 'type' => 'string', + 'title' => "Posts per page", + 'type' => 'string', 'validationPattern' => '^[0-9]+$', - 'validationMessage' => 'rainlab.blog::lang.settings.posts_per_page_validation', - 'default' => '10', + 'validationMessage' => "Invalid format of the posts per page value", + 'default' => '10', ], 'blogPage' => [ - 'title' => 'rainlab.blog::lang.settings.rssfeed_blog', - 'description' => 'rainlab.blog::lang.settings.rssfeed_blog_description', - 'type' => 'dropdown', - 'default' => 'blog/post', - 'group' => 'rainlab.blog::lang.settings.group_links', + 'title' => "Blog page", + 'description' => "Name of the main blog page file for generating links. This property is used by the default component partial.", + 'type' => 'dropdown', + 'default' => 'blog/post', + 'group' => "Links", ], 'postPage' => [ - 'title' => 'rainlab.blog::lang.settings.posts_post', - 'description' => 'rainlab.blog::lang.settings.posts_post_description', - 'type' => 'dropdown', - 'default' => 'blog/post', - 'group' => 'rainlab.blog::lang.settings.group_links', + 'title' => "Post page", + 'description' => "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.", + 'type' => 'dropdown', + 'default' => 'blog/post', + 'group' => "Links", ], ]; } + /** + * getBlogPageOptions + */ public function getBlogPageOptions() { return Page::sortBy('baseFileName')->lists('baseFileName', 'baseFileName'); } + /** + * getPostPageOptions + */ public function getPostPageOptions() { return Page::sortBy('baseFileName')->lists('baseFileName', 'baseFileName'); } + /** + * getSortOrderOptions + */ public function getSortOrderOptions() { $options = BlogPost::$allowedSortingOptions; @@ -101,6 +110,9 @@ public function getSortOrderOptions() return $options; } + /** + * onRun + */ public function onRun() { $this->prepareVars(); @@ -110,6 +122,9 @@ public function onRun() return Response::make($xmlFeed, '200')->header('Content-Type', 'text/xml'); } + /** + * prepareVars + */ protected function prepareVars() { $this->blogPage = $this->page['blogPage'] = $this->property('blogPage'); @@ -121,22 +136,21 @@ protected function prepareVars() $this->page['rssLink'] = $this->currentPageUrl(); } + /** + * listPosts + */ protected function listPosts() { $category = $this->category ? $this->category->id : null; - /* - * List all the posts, eager load their categories - */ + // List all the posts, eager load their categories $posts = BlogPost::with('categories')->listFrontEnd([ - 'sort' => $this->property('sortOrder'), - 'perPage' => $this->property('postsPerPage'), + 'sort' => $this->property('sortOrder'), + 'perPage' => $this->property('postsPerPage'), 'category' => $category ]); - /* - * Add a "url" helper attribute for linking to each post and category - */ + // Add a "url" helper attribute for linking to each post and category $posts->each(function($post) { $post->setUrl($this->postPage, $this->controller); }); @@ -144,6 +158,9 @@ protected function listPosts() return $posts; } + /** + * loadCategory + */ protected function loadCategory() { if (!$categoryId = $this->property('categoryFilter')) { diff --git a/composer.json b/composer.json index 7f49a069..8db02f63 100644 --- a/composer.json +++ b/composer.json @@ -18,8 +18,6 @@ } ], "require": { - "php": ">=7.0", - "composer/installers": "~1.0" - }, - "minimum-stability": "dev" + "php": ">=8.2" + } } diff --git a/controllers/Categories.php b/controllers/Categories.php index 583cdbf2..93c56def 100644 --- a/controllers/Categories.php +++ b/controllers/Categories.php @@ -1,25 +1,41 @@ delete(); } - Flash::success(Lang::get('rainlab.blog::lang.category.delete_success')); + Flash::success(__("Successfully deleted those categories.")); } return $this->listRefresh(); diff --git a/controllers/Posts.php b/controllers/Posts.php index 65fffef3..b07c1b2b 100644 --- a/controllers/Posts.php +++ b/controllers/Posts.php @@ -1,10 +1,9 @@ vars['postsTotal'] = Post::count(); @@ -53,23 +69,21 @@ public function index() $this->asExtension('ListController')->index(); } + /** + * create + */ public function create() { BackendMenu::setContextSideMenu('new_post'); - $this->bodyClass = 'compact-container'; - $this->addCss('/plugins/rainlab/blog/assets/css/rainlab.blog-preview.css'); - $this->addJs('/plugins/rainlab/blog/assets/js/post-form.js'); - return $this->asExtension('FormController')->create(); } + /** + * update + */ public function update($recordId = null) { - $this->bodyClass = 'compact-container'; - $this->addCss('/plugins/rainlab/blog/assets/css/rainlab.blog-preview.css'); - $this->addJs('/plugins/rainlab/blog/assets/js/post-form.js'); - $result = $this->asExtension('FormController')->update($recordId); $this->setPreviewPageUrlVars(); return $result; @@ -90,6 +104,9 @@ protected function setPreviewPageUrlVars() } } + /** + * export + */ public function export() { $this->addCss('/plugins/rainlab/blog/assets/css/rainlab.blog-export.css'); @@ -97,6 +114,9 @@ public function export() return $this->asExtension('ImportExportController')->export(); } + /** + * listExtendQuery + */ public function listExtendQuery($query) { if (!$this->user->hasAnyAccess(['rainlab.blog.access_other_posts'])) { @@ -104,6 +124,9 @@ public function listExtendQuery($query) } } + /** + * formExtendQuery + */ public function formExtendQuery($query) { if (!$this->user->hasAnyAccess(['rainlab.blog.access_other_posts'])) { @@ -111,27 +134,23 @@ public function formExtendQuery($query) } } + /** + * formExtendFieldsBefore + */ public function formExtendFieldsBefore($widget) { if (!$model = $widget->model) { return; } - // Support for October CMS 3.0 and below - if (!class_exists('Site') && $model instanceof Post && $model->isClassExtendedWith('RainLab.Translate.Behaviors.TranslatableModel')) { - $widget->secondaryTabs['fields']['content']['type'] = 'RainLab\Blog\FormWidgets\MLBlogMarkdown'; - } - - if (BlogSettings::get('use_legacy_editor', false)) { - $widget->secondaryTabs['fields']['content']['legacyMode'] = true; - } - - // Force richeditor by settings if ($model instanceof Post && BlogSettings::get('force_richeditor_editor', false)) { - $widget->secondaryTabs['fields']['content']['type'] = 'richeditor'; + $widget->tabs['fields']['content']['type'] = 'richeditor'; } } + /** + * index_onDelete + */ public function index_onDelete() { if (($checkedIds = post('checked')) && is_array($checkedIds) && count($checkedIds)) { @@ -144,7 +163,7 @@ public function index_onDelete() $post->delete(); } - Flash::success(Lang::get('rainlab.blog::lang.post.delete_success')); + Flash::success(__("Successfully deleted those posts.")); } return $this->listRefresh(); @@ -160,19 +179,11 @@ public function listInjectRowClass($record, $definition = null) } } + /** + * formBeforeCreate + */ public function formBeforeCreate($model) { $model->user_id = $this->user->id; } - - public function onRefreshPreview() - { - $data = post('Post'); - - $previewHtml = Post::formatHtml($data['content'], true); - - return [ - 'preview' => $previewHtml - ]; - } } diff --git a/controllers/categories/_list_toolbar.htm b/controllers/categories/_list_toolbar.htm deleted file mode 100644 index fe438117..00000000 --- a/controllers/categories/_list_toolbar.htm +++ /dev/null @@ -1,25 +0,0 @@ -
- - - - - - - - - -
diff --git a/controllers/categories/_list_toolbar.php b/controllers/categories/_list_toolbar.php new file mode 100644 index 00000000..6618c193 --- /dev/null +++ b/controllers/categories/_list_toolbar.php @@ -0,0 +1,21 @@ +
+ + +
+ + +
diff --git a/controllers/categories/_reorder_toolbar.htm b/controllers/categories/_reorder_toolbar.htm deleted file mode 100644 index de33eb7b..00000000 --- a/controllers/categories/_reorder_toolbar.htm +++ /dev/null @@ -1,5 +0,0 @@ -
- - - -
\ No newline at end of file diff --git a/controllers/categories/config_form.yaml b/controllers/categories/config_form.yaml index 250c41aa..b25caa98 100644 --- a/controllers/categories/config_form.yaml +++ b/controllers/categories/config_form.yaml @@ -2,7 +2,7 @@ # Form Behavior Config # =================================== -name: rainlab.blog::lang.blog.create_category +name: Blog category form: $/rainlab/blog/models/category/fields.yaml modelClass: RainLab\Blog\Models\Category defaultRedirect: rainlab/blog/categories @@ -10,7 +10,11 @@ defaultRedirect: rainlab/blog/categories create: redirect: rainlab/blog/categories/update/:id redirectClose: rainlab/blog/categories + design: + displayMode: basic update: redirect: rainlab/blog/categories redirectClose: rainlab/blog/categories + design: + displayMode: basic diff --git a/controllers/categories/config_list.yaml b/controllers/categories/config_list.yaml index c2b6b205..4e505319 100644 --- a/controllers/categories/config_list.yaml +++ b/controllers/categories/config_list.yaml @@ -9,7 +9,7 @@ list: $/rainlab/blog/models/category/columns.yaml modelClass: RainLab\Blog\Models\Category # List Title -title: rainlab.blog::lang.categories.list_title +title: Manage the blog categories # Link URL for each record recordUrl: rainlab/blog/categories/update/:id diff --git a/controllers/categories/config_reorder.yaml b/controllers/categories/config_reorder.yaml deleted file mode 100644 index 392b0c51..00000000 --- a/controllers/categories/config_reorder.yaml +++ /dev/null @@ -1,17 +0,0 @@ -# =================================== -# Reorder Behavior Config -# =================================== - -# Reorder Title -title: rainlab.blog::lang.category.reorder - -# Attribute name -nameFrom: name - -# Model Class name -modelClass: RainLab\Blog\Models\Category - -# Toolbar widget configuration -toolbar: - # Partial for toolbar buttons - buttons: reorder_toolbar \ No newline at end of file diff --git a/controllers/categories/create.htm b/controllers/categories/create.htm deleted file mode 100644 index ea47c339..00000000 --- a/controllers/categories/create.htm +++ /dev/null @@ -1,46 +0,0 @@ - - - - -fatalError): ?> - - 'layout']) ?> - -
- formRender() ?> -
- -
-
- - - - - -
-
- - - - -

fatalError)) ?>

-

- diff --git a/controllers/categories/create.php b/controllers/categories/create.php new file mode 100644 index 00000000..2d601420 --- /dev/null +++ b/controllers/categories/create.php @@ -0,0 +1 @@ +formRenderDesign() ?> diff --git a/controllers/categories/index.htm b/controllers/categories/index.php similarity index 100% rename from controllers/categories/index.htm rename to controllers/categories/index.php diff --git a/controllers/categories/reorder.htm b/controllers/categories/reorder.php similarity index 100% rename from controllers/categories/reorder.htm rename to controllers/categories/reorder.php diff --git a/controllers/categories/update.htm b/controllers/categories/update.htm deleted file mode 100644 index 7949c329..00000000 --- a/controllers/categories/update.htm +++ /dev/null @@ -1,54 +0,0 @@ - - - - -fatalError): ?> - - 'layout']) ?> - -
- formRender() ?> -
- -
-
- - - - - - - -
-
- - - -

fatalError)) ?>

-

- diff --git a/controllers/categories/update.php b/controllers/categories/update.php new file mode 100644 index 00000000..2d601420 --- /dev/null +++ b/controllers/categories/update.php @@ -0,0 +1 @@ +formRenderDesign() ?> diff --git a/controllers/posts/_form_buttons.php b/controllers/posts/_form_buttons.php new file mode 100644 index 00000000..63ea04ff --- /dev/null +++ b/controllers/posts/_form_buttons.php @@ -0,0 +1,49 @@ + +formGetModel()->exists): ?> + + + + + + + + + + + formCheckPermission('modelDelete')): ?> + + + diff --git a/controllers/posts/_list_toolbar.htm b/controllers/posts/_list_toolbar.htm deleted file mode 100644 index d0f93f67..00000000 --- a/controllers/posts/_list_toolbar.htm +++ /dev/null @@ -1,37 +0,0 @@ -
- - - - - - user->hasAnyAccess(['rainlab.blog.access_import_export'])): ?> - - -
diff --git a/controllers/posts/_list_toolbar.php b/controllers/posts/_list_toolbar.php new file mode 100644 index 00000000..de18eda9 --- /dev/null +++ b/controllers/posts/_list_toolbar.php @@ -0,0 +1,42 @@ +
+ + +
+ + + + user->hasAnyAccess(['rainlab.blog.access_import_export'])): ?> + slot() ?> + + + + +
diff --git a/controllers/posts/_post_toolbar.htm b/controllers/posts/_post_toolbar.htm deleted file mode 100644 index 7ed28504..00000000 --- a/controllers/posts/_post_toolbar.htm +++ /dev/null @@ -1,58 +0,0 @@ -formGetContext() == 'create'; - $pageUrl = isset($pageUrl) ? $pageUrl : null; -?> -
- - - data-request-data="redirect:0" - data-hotkey="ctrl+s, cmd+s"> - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/controllers/posts/config_form.yaml b/controllers/posts/config_form.yaml index 10c090f0..63c777ff 100644 --- a/controllers/posts/config_form.yaml +++ b/controllers/posts/config_form.yaml @@ -2,7 +2,7 @@ # Form Behavior Config # =================================== -name: rainlab.blog::lang.blog.create_post +name: Blog post form: $/rainlab/blog/models/post/fields.yaml modelClass: RainLab\Blog\Models\Post defaultRedirect: rainlab/blog/posts @@ -10,7 +10,11 @@ defaultRedirect: rainlab/blog/posts create: redirect: rainlab/blog/posts/update/:id redirectClose: rainlab/blog/posts + design: + displayMode: document update: redirect: rainlab/blog/posts redirectClose: rainlab/blog/posts + design: + displayMode: document diff --git a/controllers/posts/config_import_export.yaml b/controllers/posts/config_import_export.yaml index e0cf8c5b..25b1fdbd 100644 --- a/controllers/posts/config_import_export.yaml +++ b/controllers/posts/config_import_export.yaml @@ -4,7 +4,7 @@ import: # Page title - title: rainlab.blog::lang.posts.import_post + title: Import Posts # Import List Column configuration list: $/rainlab/blog/models/postimport/columns.yaml @@ -23,7 +23,7 @@ import: export: # Page title - title: rainlab.blog::lang.posts.export_post + title: Export Posts # Output file name fileName: posts.csv diff --git a/controllers/posts/config_list.yaml b/controllers/posts/config_list.yaml index 62c7d237..bfb22b03 100644 --- a/controllers/posts/config_list.yaml +++ b/controllers/posts/config_list.yaml @@ -12,7 +12,7 @@ filter: $/rainlab/blog/models/post/scopes.yaml modelClass: RainLab\Blog\Models\Post # List Title -title: rainlab.blog::lang.posts.list_title +title: Manage the blog posts # Link URL for each record recordUrl: rainlab/blog/posts/update/:id diff --git a/controllers/posts/create.htm b/controllers/posts/create.htm deleted file mode 100644 index e6cd6a55..00000000 --- a/controllers/posts/create.htm +++ /dev/null @@ -1,23 +0,0 @@ -fatalError): ?> - -
- 'layout', - 'data-change-monitor' => 'true', - 'data-window-close-confirm' => e(trans('rainlab.blog::lang.post.close_confirm')), - 'id' => 'post-form' - ]) ?> - formRender() ?> - - -
- - -
- -
-
-

fatalError)) ?>

-

-
- diff --git a/controllers/posts/create.php b/controllers/posts/create.php new file mode 100644 index 00000000..2d601420 --- /dev/null +++ b/controllers/posts/create.php @@ -0,0 +1 @@ +formRenderDesign() ?> diff --git a/controllers/posts/export.htm b/controllers/posts/export.htm deleted file mode 100644 index 1023caf0..00000000 --- a/controllers/posts/export.htm +++ /dev/null @@ -1,27 +0,0 @@ - - - - - 'layout']) ?> - -
- exportRender() ?> -
- -
-
- -
-
- - diff --git a/controllers/posts/export.php b/controllers/posts/export.php new file mode 100644 index 00000000..efb55934 --- /dev/null +++ b/controllers/posts/export.php @@ -0,0 +1,26 @@ + + + + + 'd-flex flex-column h-100']) ?> + +
+ exportRender() ?> +
+ +
+
+ +
+
+ + diff --git a/controllers/posts/import.htm b/controllers/posts/import.htm deleted file mode 100644 index e33d6daa..00000000 --- a/controllers/posts/import.htm +++ /dev/null @@ -1,25 +0,0 @@ - - - - - 'layout']) ?> - -
- importRender() ?> -
- -
- -
- - diff --git a/controllers/posts/import.php b/controllers/posts/import.php new file mode 100644 index 00000000..c4c4132c --- /dev/null +++ b/controllers/posts/import.php @@ -0,0 +1,24 @@ + + + + + 'd-flex flex-column h-100']) ?> + +
+ importRender() ?> +
+ +
+ +
+ + diff --git a/controllers/posts/index.htm b/controllers/posts/index.php similarity index 100% rename from controllers/posts/index.htm rename to controllers/posts/index.php diff --git a/controllers/posts/update.htm b/controllers/posts/update.htm deleted file mode 100644 index 3f82c198..00000000 --- a/controllers/posts/update.htm +++ /dev/null @@ -1,25 +0,0 @@ -fatalError): ?> - -
- 'layout', - 'data-change-monitor' => 'true', - 'data-window-close-confirm' => e(trans('rainlab.blog::lang.post.close_confirm')), - 'id' => 'post-form' - ]) ?> - formRender() ?> - - -
- - - -
- -
-
-

fatalError)) ?>

-

-
- - diff --git a/controllers/posts/update.php b/controllers/posts/update.php new file mode 100644 index 00000000..2d601420 --- /dev/null +++ b/controllers/posts/update.php @@ -0,0 +1 @@ +formRenderDesign() ?> diff --git a/formwidgets/BlogMarkdown.php b/formwidgets/BlogMarkdown.php deleted file mode 100644 index caff7189..00000000 --- a/formwidgets/BlogMarkdown.php +++ /dev/null @@ -1,133 +0,0 @@ -viewPath = base_path().'/modules/backend/formwidgets/markdowneditor/partials'; - - $this->checkUploadPostback(); - - parent::init(); - } - - /** - * {@inheritDoc} - */ - protected function loadAssets() - { - $this->assetPath = '/modules/backend/formwidgets/markdowneditor/assets'; - parent::loadAssets(); - } - - /** - * Disable HTML cleaning on the widget level since the PostModel will handle it - * - * @return boolean - */ - protected function shouldCleanHtml() - { - return false; - } - - /** - * {@inheritDoc} - */ - public function onRefresh() - { - $content = post($this->formField->getName()); - - $previewHtml = PostModel::formatHtml($content, true); - - return [ - 'preview' => $previewHtml - ]; - } - - /** - * Handle images being uploaded to the blog post - * - * @return void - */ - protected function checkUploadPostback() - { - if (!post('X_BLOG_IMAGE_UPLOAD')) { - return; - } - - $uploadedFileName = null; - - try { - $uploadedFile = Input::file('file'); - - if ($uploadedFile) - $uploadedFileName = $uploadedFile->getClientOriginalName(); - - $validationRules = ['max:'.File::getMaxFilesize()]; - $validationRules[] = 'mimes:jpg,jpeg,bmp,png,gif'; - - $validation = Validator::make( - ['file_data' => $uploadedFile], - ['file_data' => $validationRules] - ); - - if ($validation->fails()) { - throw new ValidationException($validation); - } - - if (!$uploadedFile->isValid()) { - throw new SystemException(Lang::get('cms::lang.asset.file_not_valid')); - } - - $fileRelation = $this->model->content_images(); - - $file = new File(); - $file->data = $uploadedFile; - $file->is_public = true; - $file->save(); - - $fileRelation->add($file, $this->sessionKey); - $result = [ - 'file' => $uploadedFileName, - 'path' => $file->getPath() - ]; - - $response = Response::make()->setContent($result); - $this->controller->setResponse($response); - - } catch (Exception $ex) { - $message = $uploadedFileName - ? Lang::get('cms::lang.asset.error_uploading_file', ['name' => $uploadedFileName, 'error' => $ex->getMessage()]) - : $ex->getMessage(); - - $result = [ - 'error' => $message, - 'file' => $uploadedFileName - ]; - - $response = Response::make()->setContent($result); - $this->controller->setResponse($response); - } - } -} diff --git a/formwidgets/MLBlogMarkdown.php b/formwidgets/MLBlogMarkdown.php deleted file mode 100644 index 5da6fa90..00000000 --- a/formwidgets/MLBlogMarkdown.php +++ /dev/null @@ -1,137 +0,0 @@ -initLocale(); - } - - /** - * {@inheritDoc} - */ - public function render() - { - $this->actAsParent(); - $parentContent = parent::render(); - $this->actAsParent(false); - - if (!$this->isAvailable) { - return $parentContent; - } - - $this->vars['markdowneditor'] = $parentContent; - - $this->actAsControl(true); - - return $this->makePartial('mlmarkdowneditor'); - } - - public function prepareVars() - { - parent::prepareVars(); - $this->prepareLocaleVars(); - } - - /** - * Returns an array of translated values for this field - * @param $value - * @return array - */ - public function getSaveValue($value) - { - $localeData = $this->getLocaleSaveData(); - - /* - * Set the translated values to the model - */ - if ($this->model->methodExists('setAttributeTranslated')) { - foreach ($localeData as $locale => $value) { - $this->model->setAttributeTranslated('content', $value, $locale); - - $this->model->setAttributeTranslated( - 'content_html', - Post::formatHtml($value), - $locale - ); - } - } - - return array_get($localeData, $this->defaultLocale->code, $value); - } - - /** - * {@inheritDoc} - */ - protected function loadAssets() - { - $this->actAsParent(); - parent::loadAssets(); - $this->actAsParent(false); - - if (Locale::isAvailable()) { - $this->loadLocaleAssets(); - - $this->actAsControl(true); - $this->addJs('js/mlmarkdowneditor.js'); - $this->actAsControl(false); - } - } - - protected function actAsParent($switch = true) - { - if ($switch) { - $this->originalAssetPath = $this->assetPath; - $this->originalViewPath = $this->viewPath; - $this->assetPath = '/modules/backend/formwidgets/markdowneditor/assets'; - $this->viewPath = base_path('/modules/backend/formwidgets/markdowneditor/partials'); - } - else { - $this->assetPath = $this->originalAssetPath; - $this->viewPath = $this->originalViewPath; - } - } - - protected function actAsControl($switch = true) - { - if ($switch) { - $this->originalAssetPath = $this->assetPath; - $this->originalViewPath = $this->viewPath; - $this->assetPath = '/plugins/rainlab/translate/formwidgets/mlmarkdowneditor/assets'; - $this->viewPath = base_path('/plugins/rainlab/translate/formwidgets/mlmarkdowneditor/partials'); - } - else { - $this->assetPath = $this->originalAssetPath; - $this->viewPath = $this->originalViewPath; - } - } -} diff --git a/lang/bg.json b/lang/bg.json new file mode 100644 index 00000000..700b04de --- /dev/null +++ b/lang/bg.json @@ -0,0 +1,74 @@ +{ + "Blog": "Блог", + "A robust blogging platform.": "Стабилната блог платформа.", + "Manage Blog Posts": "управление на публикациите", + "Posts": "публикации", + "Blog post": "създай публикация", + "Categories": "категории", + "Blog category": "създай категория", + "Manage the blog posts": "управление на публикациите", + "Manage the blog categories": "управление на категории", + "Manage other users blog posts": "управление на други потребители публикации в блога", + "Are you sure?": "Сигурни ли сте?", + "Published": "Публикувано", + "Drafts": "Чернови", + "Total": "Общо", + "Category": "Категория", + "Hide Published": "Скрий публикуваните", + "New Post": "Нова публикация", + "Title": "Заглавие", + "New post title": "Ново заглавие на публикацията", + "Slug": "Slug", + "new-post-slug": "нов slug на публикацията", + "Created": "Създаден", + "Updated": "Обновен", + "Please specify the published date": "Моля, посочете дата на публикуване", + "Edit": "Промяна", + "Select categories the blog post belongs to": "Изберете категории към който пренадлежи публикацията ", + "There are no categories, you should create one first!": "Няма категирии, Създайте първата?!", + "Manage": "Управление", + "Published on": "публикувано в", + "Excerpt": "Откъс", + "Featured Images": "Избрани снимки", + "Delete this post?": "Наистина ли искате да изтриете тази публикация?", + "The post is not saved.": "Публикацията не е запазена.", + "Return to posts list": "Върни ме към всички публикации", + "Manage the blog categories": "Управление категориите в блога", + "New Category": "Нова категория", + "Uncategorized": "Без категория", + "Name": "Име", + "New category name": "Ново име на категорията", + "new-category-slug": "нов slug на категотията", + "Delete this category?": "Наистина ли искате да изтриете тази категория?", + "Return to the blog category list": "Върни ме към всички категории", + "Category List": "Списък с категории", + "Displays a list of blog categories on the page.": "Показва списък с категориите на блога.", + "Category slug": "категория slug", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", + "Display empty categories": "Показване на празни категории", + "Show categories that do not have any posts.": "Показване на категории, които нямат никакви публикации.", + "Category page": "Страница на категория", + "Name of the category page file for the category links. This property is used by the default component partial.": "Име на страницата за категирия. Това се използва подразбиране от компонента.", + "Post": "Публикация", + "Displays a blog post on the page.": "Показване на Публикациите в блога на страницата.", + "Post slug": "Post slug", + "Look up the blog post using the supplied slug value.": "Търсене на публикации по зададен slug.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Име на страница за категория за генериране на линк.Това се използва подразбиране от компонента.", + "Post List": "Лист с Публикации", + "Displays a list of latest blog posts on the page.": "Показване на лист с публикации на страницата.", + "Page number": "Номер на страницата", + "This value is used to determine what page the user is on.": "Тази стойност се използва за определяне на коя страница е потребителя.", + "Category filter": "Филтер Категория", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Въведи slug на категория или URL адрес за филтриране по. Оставете празно за да се покажат всички публикации.", + "Posts per page": "Публикации на страница", + "Invalid format of the posts per page value": "Невалиден формат за публикации на страница", + "No posts message": "Няма публикации", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Съобщение което да се покаже, в случай ,че няма публикации за показване.Това се използва подразбиране от компонента.", + "Post order": "подреждане на публикации", + "Attribute on which the posts should be ordered": "Атрибут по който да бъдат подредени публикациите", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Име на страницата за категории , за \"публикувано в\". Това се използва подразбиране от компонента.", + "Post page": "Post page", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Име на страницата за публикации \"Прочетете повече\". Това се използва подразбиране от компонента.", + "Except post": "Except post", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Enter ID/URL or variable with post ID/URL you want to except" +} diff --git a/lang/bg/lang.php b/lang/bg/lang.php deleted file mode 100644 index 6e5161df..00000000 --- a/lang/bg/lang.php +++ /dev/null @@ -1,100 +0,0 @@ - [ - 'name' => 'Блог', - 'description' => 'Стабилната блог платформа.' - ], - 'blog' => [ - 'menu_label' => 'Блог', - 'menu_description' => 'управление на публикациите', - 'posts' => 'публикации', - 'create_post' => 'създай публикация', - 'categories' => 'категории', - 'create_category' => 'създай категория', - 'tab' => 'Блог', - 'access_posts' => 'управление на публикациите', - 'access_categories' => 'управление на категории', - 'access_other_posts' => 'управление на други потребители публикации в блога', - 'delete_confirm' => 'Сигурни ли сте?', - 'chart_published' => 'Публикувано', - 'chart_drafts' => 'Чернови', - 'chart_total' => 'Общо' - ], - 'posts' => [ - 'list_title' => 'Управление публикациите в блога', - 'filter_category' => 'Категория', - 'filter_published' => 'Скрий публикуваните', - 'new_post' => 'Нова публикация' - ], - 'post' => [ - 'title' => 'Заглавие', - 'title_placeholder' => 'Ново заглавие на публикацията', - 'slug' => 'Slug', - 'slug_placeholder' => 'нов slug на публикацията', - 'categories' => 'Категории', - 'created' => 'Създаден', - 'updated' => 'Обновен', - 'published' => 'Публикуван', - 'published_validation' => 'Моля, посочете дата на публикуване', - 'tab_edit' => 'Промяна', - 'tab_categories' => 'Категории', - 'categories_comment' => 'Изберете категории към който пренадлежи публикацията ', - 'categories_placeholder' => 'Няма категирии, Създайте първата?!', - 'tab_manage' => 'Управление', - 'published_on' => 'публикувано в', - 'excerpt' => 'Откъс', - 'featured_images' => 'Избрани снимки', - 'delete_confirm' => 'Наистина ли искате да изтриете тази публикация?', - 'close_confirm' => 'Публикацията не е запазена.', - 'return_to_posts' => 'Върни ме към всички публикации' - ], - 'categories' => [ - 'list_title' => 'Управление категориите в блога', - 'new_category' => 'Нова категория', - 'uncategorized' => 'Без категория' - ], - 'category' => [ - 'name' => 'Име', - 'name_placeholder' => 'Ново име на категорията', - 'slug' => 'Slug', - 'slug_placeholder' => 'нов slug на категотията', - 'posts' => 'публикации', - 'delete_confirm' => 'Наистина ли искате да изтриете тази категория?', - 'return_to_categories' => 'Върни ме към всички категории' - ], - 'settings' => [ - 'category_title' => 'Списък с категории', - 'category_description' => 'Показва списък с категориите на блога.', - 'category_slug' => 'категория slug', - 'category_slug_description' => "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", - 'category_display_empty' => 'Показване на празни категории', - 'category_display_empty_description' => 'Показване на категории, които нямат никакви публикации.', - 'category_page' => 'Страница на категория', - 'category_page_description' => 'Име на страницата за категирия. Това се използва подразбиране от компонента.', - 'post_title' => 'Публикация', - 'post_description' => 'Показване на Публикациите в блога на страницата.', - 'post_slug' => 'Post slug', - 'post_slug_description' => "Търсене на публикации по зададен slug.", - 'post_category' => 'Страница за Категория', - 'post_category_description' => 'Име на страница за категория за генериране на линк.Това се използва подразбиране от компонента.', - 'posts_title' => 'Лист с Публикации', - 'posts_description' => 'Показване на лист с публикации на страницата.', - 'posts_pagination' => 'Номер на страницата', - 'posts_pagination_description' => 'Тази стойност се използва за определяне на коя страница е потребителя.', - 'posts_filter' => 'Филтер Категория', - 'posts_filter_description' => 'Въведи slug на категория или URL адрес за филтриране по. Оставете празно за да се покажат всички публикации.', - 'posts_per_page' => 'Публикации на страница', - 'posts_per_page_validation' => 'Невалиден формат за публикации на страница', - 'posts_no_posts' => 'Няма публикации', - 'posts_no_posts_description' => 'Съобщение което да се покаже, в случай ,че няма публикации за показване.Това се използва подразбиране от компонента.', - 'posts_order' => 'подреждане на публикации', - 'posts_order_description' => 'Атрибут по който да бъдат подредени публикациите', - 'posts_category' => 'страница на категориите', - 'posts_category_description' => 'Име на страницата за категории , за "публикувано в". Това се използва подразбиране от компонента.', - 'posts_post' => 'Post page', - 'posts_post_description' => 'Име на страницата за публикации "Прочетете повече". Това се използва подразбиране от компонента.', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - ] -]; diff --git a/lang/cs.json b/lang/cs.json new file mode 100644 index 00000000..9848e994 --- /dev/null +++ b/lang/cs.json @@ -0,0 +1,131 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Robustní blogová platforma.", + "Manage Blog Posts": "Správa blogových příspěvků", + "Posts": "Příspěvky", + "Blog post": "Příspěvek", + "Categories": "Kategorie", + "Blog category": "Kategorie příspěvků", + "Manage the blog posts": "Správa blogových příspěvků", + "Manage the blog categories": "Správa blogových kategorií", + "Manage other users blog posts": "Správa příspěvků ostatních uživatelů", + "Allowed to import and export posts": "Možnost importu a exportu příspěvků", + "Allowed to publish posts": "Možnost publikovat příspěvky", + "Are you sure?": "Jste si jistí?", + "Published": "Publikované", + "Drafts": "Návrhy", + "Total": "Celkem", + "Manage blog settings": "Správa nastavení blogu", + "Show All Posts to Backend Users": "Zobrazit všechny příspěvky uživatelům na pozadí", + "Display both published and unpublished posts on the frontend to backend users": "Zobrazit publikované i nepublikované příspěvky na frontend uživatelům backendu", + "Use the Legacy Markdown Editor": "Použít starší editor Markdown", + "Enable the older version of the markdown editor when using October CMS v2 and above": "Povolit starší verzi editoru markdown při použití systému October CMS v2 a vyšší", + "Force the WYSIWYG editor": "Vynutit WYSIWYG editor", + "Use common richtext editor instead of the Markdown editor": "Použít běžný richtextový editor místo editoru Markdown", + "Preview CMS Page": "Náhled stránky CMS", + "Select a page to open for the Preview button": "Vyberte stránku, která se otevře pro tlačítko Náhled", + "General": "Obecné", + "Preview": "Náhled", + "Category": "Kategorie", + "Hide Published": "Schovat publikované", + "Date": "Datum", + "New Post": "Nový příspěvek", + "Export Posts": "Export příspěvků", + "Import Posts": "Import příspěvků", + "Title": "Název", + "New post title": "Zadejte název", + "Content": "Obsah", + "HTML Content": "HTML obsah", + "Slug": "URL příspěvku", + "new-post-slug": "zadejte-url-prispevku", + "Author Email": "E-mail autora", + "Created": "Vytvořeno", + "Created date": "Vytvořeno dne", + "Updated": "Upraveno", + "Updated date": "Upraveno dne", + "Published date": "Publikováno dne", + "Please specify the published date": "Zadejte prosím datum publikace příspěvku", + "Edit": "Upravit", + "Select categories the blog post belongs to": "Vyberte kategorie do kterých příspěvek patří", + "There are no categories, you should create one first!": "Nejsou zde žádné kategorie, nejdříve musíte nějaké vytvořit!", + "Manage": "Nastavení", + "Published on": "Publikováno dne", + "Excerpt": "Perex příspěvku", + "Summary": "Shrnutí", + "Featured Images": "Obrázky", + "Delete this post?": "Opravdu chcete smazat tento příspěvek?", + "Successfully deleted those posts.": "Vybrané příspěvky úspěšně odstraněny.", + "The post is not saved.": "Příspěvek není uložený.", + "Return to posts list": "Zpět na seznam příspěvků", + "Manage the blog categories": "Správa blogových kategorií", + "New Category": "Nová kategorie", + "Uncategorized": "Nezařazeno", + "Name": "Název", + "New category name": "Název nové kategorie", + "Description": "Popis", + "new-category-slug": "zadejte-url-kategorie", + "Delete this category?": "Opravdu chcete smazat tuto kategorii?", + "Successfully deleted those categories.": "Vybrané kategorie úspěšně odstraněny.", + "Return to the blog category list": "Zpět na seznam blogových kategorií", + "Reorder Categories": "Změnit pořadí", + "Blog Category": "Blogová kategorie", + "All Blog Categories": "Všechny blogové kategorie", + "Blog Post": "Blogový příspěvek", + "All Blog Posts": "Všechny blogové příspěvky", + "Blog Category Posts": "Blog category posts", + "Category List": "Seznam kategorií", + "Displays a list of blog categories on the page.": "Zobrazí na stránce seznam blogových kategorií.", + "Category slug": "URL kategorie", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Najde blogovou kategorii s tímto URL. Používá se pro zobrazení aktivní kategorie.", + "Display empty categories": "Zobrazit prázdné kategorie", + "Show categories that do not have any posts.": "Zobrazit kategorie bez blogových příspěvků.", + "Category page": "Stránka kategorií", + "Name of the category page file for the category links. This property is used by the default component partial.": "Vyberte stránku která slouží k zobrazení všech kategorií (nebo detailu kategorie).", + "Post": "Příspěvek", + "Displays a blog post on the page.": "Zobrazí blogový příspěvek na stránce.", + "Post slug": "URL příspěvku", + "Look up the blog post using the supplied slug value.": "Najde příspěvek dle zadané URL.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Vyberte stránku která slouží k zobrazení všech kategorií (nebo detailu kategorie).", + "Post List": "Seznam příspěvků", + "Displays a list of latest blog posts on the page.": "Zobrazí na stránce seznam posledních příspěvků na stránkách.", + "Page number": "Číslo stránky", + "This value is used to determine what page the user is on.": "Číslo stránky určující na které stránce se uživatel nachází. Použito pro stránkování.", + "Category filter": "Filtr kategorií", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Zadejte URL kategorie, nebo URL parametr pro filtrování příspěvků. Nechte prázdné pro zobrazení všech příspěvků.", + "Posts per page": "Příspěvků na stránku", + "Invalid format of the posts per page value": "Špatný formát počtu příspěvků na stránku, musí být zadáno jako číslo", + "No posts message": "Hláška prázdné stránky", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Zpráva se zobrazí pokud se nepovede najít žádné články.", + "No posts found": "Nenalezeny žádné příspěvky", + "Post order": "Řazení článků", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Vyberte stránku která slouží k zobrazení všech kategorií (nebo detailu kategorie).", + "Post page": "Stránka příspěvků", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Vyberte stránku která slouží k zobrazení článků (nebo detailu článku).", + "Except post": "Vyloučit příspěvěk", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Zadejte ID nebo URL příspěvku který chcete vyloučit", + "Except categories": "Vyloučené kategorie", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Pro vyloučení kategorií zadejte čárkou oddělené URL příspěvků nebo proměnnou, která tento seznam obsahuje.", + "Blog page": "Blogová stránka", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Name of the main blog page file for generating links. This property is used by the default component partial.", + "RSS Feed": "RSS Kanál", + "Generates an RSS feed containing posts from the blog.": "Vygeneruje RSS kanál který obsahuje blogové příspěvky.", + "Links": "Odkazy", + "Exceptions": "Výjimky", + "Title (ascending)": "Název (sestupně)", + "Title (descending)": "Název (vzestupně)", + "Created (ascending)": "Vytvořeno (sestupně)", + "Created (descending)": "Vytvořeno (vzestupně)", + "Updated (ascending)": "Upraveno (sestupně)", + "Updated (descending)": "Upraveno (vzestupně)", + "Published (ascending)": "Publikováno (sestupně)", + "Published (descending)": "Publikováno (vzestupně)", + "Random": "Náhodně", + "Update existing posts": "Uprav existující příspěvky", + "Check this box to update posts that have exactly the same ID, title or slug.": "Zvolte pokud chcete upravit příspěvky se stejným ID, názvem nebo URL.", + "Create categories specified in the import file": "VYtvořit kategorie ze souboru", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Chcete-li tuto funkci použít, měli byste se shodovat se sloupcem Kategorie, jinak vyberte výchozí kategorie, které chcete použít z níže uvedených položek.", + "Select the categories that imported posts will belong to (optional).": "Vyberte kategorie ke kterým budou příspěvky přiřazeny (volitelné).", + "Default post author (optional)": "Výchozí autor příspěvků (volitelné)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Import se pokusí použít existujícího autora, pokud odpovídá sloupci email, jinak se použije výše uvedený autor.", + "-- select author --": "-- vyberte autora --" +} diff --git a/lang/cs/lang.php b/lang/cs/lang.php deleted file mode 100644 index ab6ec4b4..00000000 --- a/lang/cs/lang.php +++ /dev/null @@ -1,165 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Robustní blogová platforma.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Správa blogových příspěvků', - 'posts' => 'Příspěvky', - 'create_post' => 'Příspěvek', - 'categories' => 'Kategorie', - 'create_category' => 'Kategorie příspěvků', - 'tab' => 'Blog', - 'access_posts' => 'Správa blogových příspěvků', - 'access_categories' => 'Správa blogových kategorií', - 'access_other_posts' => 'Správa příspěvků ostatních uživatelů', - 'access_import_export' => 'Možnost importu a exportu příspěvků', - 'access_publish' => 'Možnost publikovat příspěvky', - 'delete_confirm' => 'Jste si jistí?', - 'chart_published' => 'Publikované', - 'chart_drafts' => 'Návrhy', - 'chart_total' => 'Celkem', - 'settings_description' => 'Správa nastavení blogu', - 'show_all_posts_label' => 'Zobrazit všechny příspěvky uživatelům na pozadí', - 'show_all_posts_comment' => 'Zobrazit publikované i nepublikované příspěvky na frontend uživatelům backendu', - 'use_legacy_editor_label' => 'Použít starší editor Markdown', - 'use_legacy_editor_comment' => 'Povolit starší verzi editoru markdown při použití systému October CMS v2 a vyšší', - 'force_richeditor_editor_label' => 'Vynutit WYSIWYG editor', - 'force_richeditor_editor_comment' => 'Použít běžný richtextový editor místo editoru Markdown', - 'preview_cms_page_label' => 'Náhled stránky CMS', - 'preview_cms_page_comment' => 'Vyberte stránku, která se otevře pro tlačítko Náhled', - 'tab_general' => 'Obecné', - 'preview' => 'Náhled' - ], - 'posts' => [ - 'list_title' => 'Správa blogových příspěvků', - 'filter_category' => 'Kategorie', - 'filter_published' => 'Schovat publikované', - 'filter_date' => 'Datum', - 'new_post' => 'Nový příspěvek', - 'export_post' => 'Export příspěvků', - 'import_post' => 'Import příspěvků', - ], - 'post' => [ - 'title' => 'Název', - 'title_placeholder' => 'Zadejte název', - 'content' => 'Obsah', - 'content_html' => 'HTML obsah', - 'slug' => 'URL příspěvku', - 'slug_placeholder' => 'zadejte-url-prispevku', - 'categories' => 'Kategorie', - 'author_email' => 'E-mail autora', - 'created' => 'Vytvořeno', - 'created_date' => 'Vytvořeno dne', - 'updated' => 'Upraveno', - 'updated_date' => 'Upraveno dne', - 'published' => 'Publikováno', - 'published_date' => 'Publikováno dne', - 'published_validation' => 'Zadejte prosím datum publikace příspěvku', - 'tab_edit' => 'Upravit', - 'tab_categories' => 'Kategorie', - 'categories_comment' => 'Vyberte kategorie do kterých příspěvek patří', - 'categories_placeholder' => 'Nejsou zde žádné kategorie, nejdříve musíte nějaké vytvořit!', - 'tab_manage' => 'Nastavení', - 'published_on' => 'Publikováno dne', - 'excerpt' => 'Perex příspěvku', - 'summary' => 'Shrnutí', - 'featured_images' => 'Obrázky', - 'delete_confirm' => 'Opravdu chcete smazat tento příspěvek?', - 'delete_success' => 'Vybrané příspěvky úspěšně odstraněny.', - 'close_confirm' => 'Příspěvek není uložený.', - 'return_to_posts' => 'Zpět na seznam příspěvků', - ], - 'categories' => [ - 'list_title' => 'Správa blogových kategorií', - 'new_category' => 'Nová kategorie', - 'uncategorized' => 'Nezařazeno', - ], - 'category' => [ - 'name' => 'Název', - 'name_placeholder' => 'Název nové kategorie', - 'description' => 'Popis', - 'slug' => 'URL kategorie', - 'slug_placeholder' => 'zadejte-url-kategorie', - 'posts' => 'Počet příspěvků', - 'delete_confirm' => 'Opravdu chcete smazat tuto kategorii?', - 'delete_success' => 'Vybrané kategorie úspěšně odstraněny.', - 'return_to_categories' => 'Zpět na seznam blogových kategorií', - 'reorder' => 'Změnit pořadí', - ], - 'menuitem' => [ - 'blog_category' => 'Blogová kategorie', - 'all_blog_categories' => 'Všechny blogové kategorie', - 'blog_post' => 'Blogový příspěvek', - 'all_blog_posts' => 'Všechny blogové příspěvky', - 'category_blog_posts' => 'Blog category posts' - ], - 'settings' => [ - 'category_title' => 'Seznam kategorií', - 'category_description' => 'Zobrazí na stránce seznam blogových kategorií.', - 'category_slug' => 'URL kategorie', - 'category_slug_description' => "Najde blogovou kategorii s tímto URL. Používá se pro zobrazení aktivní kategorie.", - 'category_display_empty' => 'Zobrazit prázdné kategorie', - 'category_display_empty_description' => 'Zobrazit kategorie bez blogových příspěvků.', - 'category_page' => 'Stránka kategorií', - 'category_page_description' => 'Vyberte stránku která slouží k zobrazení všech kategorií (nebo detailu kategorie).', - 'post_title' => 'Příspěvek', - 'post_description' => 'Zobrazí blogový příspěvek na stránce.', - 'post_slug' => 'URL příspěvku', - 'post_slug_description' => "Najde příspěvek dle zadané URL.", - 'post_category' => 'Stránka kategorie', - 'post_category_description' => 'Vyberte stránku která slouží k zobrazení všech kategorií (nebo detailu kategorie).', - 'posts_title' => 'Seznam příspěvků', - 'posts_description' => 'Zobrazí na stránce seznam posledních příspěvků na stránkách.', - 'posts_pagination' => 'Číslo stránky', - 'posts_pagination_description' => 'Číslo stránky určující na které stránce se uživatel nachází. Použito pro stránkování.', - 'posts_filter' => 'Filtr kategorií', - 'posts_filter_description' => 'Zadejte URL kategorie, nebo URL parametr pro filtrování příspěvků. Nechte prázdné pro zobrazení všech příspěvků.', - 'posts_per_page' => 'Příspěvků na stránku', - 'posts_per_page_validation' => 'Špatný formát počtu příspěvků na stránku, musí být zadáno jako číslo', - 'posts_no_posts' => 'Hláška prázdné stránky', - 'posts_no_posts_description' => 'Zpráva se zobrazí pokud se nepovede najít žádné články.', - 'posts_no_posts_default' => 'Nenalezeny žádné příspěvky', - 'posts_order' => 'Řazení článků', - 'posts_order_decription' => 'Nastaví řazení článků ve výpisu', - 'posts_category' => 'Stránka kategorií', - 'posts_category_description' => 'Vyberte stránku která slouží k zobrazení všech kategorií (nebo detailu kategorie).', - 'posts_post' => 'Stránka příspěvků', - 'posts_post_description' => 'Vyberte stránku která slouží k zobrazení článků (nebo detailu článku).', - 'posts_except_post' => 'Vyloučit příspěvěk', - 'posts_except_post_description' => 'Zadejte ID nebo URL příspěvku který chcete vyloučit', - 'posts_except_categories' => 'Vyloučené kategorie', - 'posts_except_categories_description' => 'Pro vyloučení kategorií zadejte čárkou oddělené URL příspěvků nebo proměnnou, která tento seznam obsahuje.', - 'rssfeed_blog' => 'Blogová stránka', - 'rssfeed_blog_description' => 'Name of the main blog page file for generating links. This property is used by the default component partial.', - 'rssfeed_title' => 'RSS Kanál', - 'rssfeed_description' => 'Vygeneruje RSS kanál který obsahuje blogové příspěvky.', - 'group_links' => 'Odkazy', - 'group_exceptions' => 'Výjimky' - ], - 'sorting' => [ - 'title_asc' => 'Název (sestupně)', - 'title_desc' => 'Název (vzestupně)', - 'created_asc' => 'Vytvořeno (sestupně)', - 'created_desc' => 'Vytvořeno (vzestupně)', - 'updated_asc' => 'Upraveno (sestupně)', - 'updated_desc' => 'Upraveno (vzestupně)', - 'published_asc' => 'Publikováno (sestupně)', - 'published_desc' => 'Publikováno (vzestupně)', - 'random' => 'Náhodně' - ], - 'import' => [ - 'update_existing_label' => 'Uprav existující příspěvky', - 'update_existing_comment' => 'Zvolte pokud chcete upravit příspěvky se stejným ID, názvem nebo URL.', - 'auto_create_categories_label' => 'VYtvořit kategorie ze souboru', - 'auto_create_categories_comment' => 'Chcete-li tuto funkci použít, měli byste se shodovat se sloupcem Kategorie, jinak vyberte výchozí kategorie, které chcete použít z níže uvedených položek.', - 'categories_label' => 'Kategorie', - 'categories_comment' => 'Vyberte kategorie ke kterým budou příspěvky přiřazeny (volitelné).', - 'default_author_label' => 'Výchozí autor příspěvků (volitelné)', - 'default_author_comment' => 'Import se pokusí použít existujícího autora, pokud odpovídá sloupci email, jinak se použije výše uvedený autor.', - 'default_author_placeholder' => '-- vyberte autora --' - ] -]; diff --git a/lang/de.json b/lang/de.json new file mode 100644 index 00000000..c573c727 --- /dev/null +++ b/lang/de.json @@ -0,0 +1,138 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Eine robuste Blog Plattform.", + "Manage Blog Posts": "Blog Artikel bearbeiten", + "Posts": "Artikel", + "Blog post": "Blog Artikel", + "Categories": "Kategorien", + "Blog category": "Blog Kategorie", + "Manage the blog posts": "Blog Artikel verwalten", + "Manage the blog categories": "Blog Kategorien verwalten", + "Manage other users blog posts": "Blog Artikel anderer Benutzer verwalten", + "Allowed to import and export posts": "Blog Artikel importieren oder exportieren", + "Allowed to publish posts": "Kann Artikel veröffentlichen", + "Manage blog settings": "Blog Einstellungen verwalten", + "Are you sure?": "Bist du sicher?", + "Published": "Veröffentlicht", + "Drafts": "Entwurf", + "Total": "Gesamt", + "Show All Posts to Backend Users": "Zeige Backend Benutzern alle Artikel an", + "Display both published and unpublished posts on the frontend to backend users": "Zeigt Backend Benutzern sowohl veröffentlichte als auch nicht-veröffentlichte Artikel im Frontend an", + "Use the Legacy Markdown Editor": "Veralteten Markdown Editor verwenden", + "Enable the older version of the markdown editor when using October CMS v2 and above": "Aktiviere die ältere Version des Markdown Editors bei October CMS v2 und höher", + "Preview CMS Page": "Vorschau CMS Seite", + "Select a page to open for the Preview button": "Wähle eine Seite die für den Vorschau Button genutzt werden soll", + "General": "Allgemein", + "Preview": "Vorschau", + "Category": "Kategorie", + "Hide Published": "Veröffentlichte ausblenden", + "Date": "Datum", + "New Post": "Neuer Artikel", + "Export Posts": "Exportiere Artikel", + "Import Posts": "Importiere Artikel", + "Title": "Titel", + "New post title": "Neuer Titel", + "Content": "Inhalt", + "HTML Content": "HTML-Inhalt", + "Slug": "Slug", + "new-post-slug": "neuer-artikel-slug", + "Author Email": "Autor E-Mail", + "Created": "Erstellt", + "Created date": "Erstellzeitpunkt", + "Updated": "Aktualisiert", + "Updated date": "Aktualisierungszeitpunk", + "Published by": "Veröffentlicht von", + "Current user": "Aktueller Benutzer", + "Published date": "Veröffentlichungszeitpunkt", + "Please specify the published date": "Bitte gebe das Datum der Veröffentlichung an", + "Edit": "Bearbeiten", + "Select categories the blog post belongs to": "Wähle die zugehörigen Kategorien", + "There are no categories, you should create one first!": "Es existieren keine Kategorien. Bitte lege zuerst Kategorien an!", + "Manage": "Verwalten", + "Published on": "Veröffentlicht am", + "Excerpt": "Textauszug", + "Summary": "Zusammenfassung", + "Featured Images": "Zugehörige Bilder", + "Delete this post?": "Möchtest du diesen Artikel wirklich löschen?", + "Successfully deleted those posts.": "Diese Artikel wurden erfolgreich gelöscht.", + "The post is not saved.": "Der Artikel ist noch nicht gespeichert.", + "Return to posts list": "Zurück zur Artikel-Übersicht", + "Posted in :categories on :date.": "Veröffentlicht in :categories am :date", + "Posted on :date.": "Veröffentlicht am :date", + "M d, Y": "d. F Y", + "Click or drop an image...": "Klicken oder Bild hier ablegen...", + "Manage the blog categories": "Blog Kategorien verwalten", + "New Category": "Neue Kategorie", + "Uncategorized": "Allgemein", + "Name": "Name", + "New category name": "Neuer Kategorie Name", + "Description": "Beschreibung", + "new-category-slug": "neuer-kategorie-slug", + "Delete this category?": "Möchtest du die Kategorie wirklich löschen?", + "Successfully deleted those categories.": "Diese Kategorien wurden erfolgreich gelöscht.", + "Return to the blog category list": "Zurück zur Kategorie-Übersicht.", + "Reorder Categories": "Kategorien sortieren", + "Blog Category": "Blog Kategorie", + "All Blog Categories": "Alle Blog Kategorien", + "Blog Post": "Blog Artikel", + "All Blog Posts": "Alle Blog Artikel", + "Blog Category Posts": "Blog Kategorie Artikel", + "Category List": "Blog Kategorie-Übersicht", + "Displays a list of blog categories on the page.": "Zeigt eine Blog Kategorien-Übersicht.", + "Category slug": "Slug Parametername", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Der URL-Routen-Parameter welcher verwendet wird um die aktuelle Kategorie zu bestimmen. Wird von der Standard-Komponente benötigt um die aktive Kategorie zu markieren.", + "Display empty categories": "Leere Kategorien anzeigen", + "Show categories that do not have any posts.": "Kategorien zeigen welche keine Artikel besitzen.", + "Category page": "Kategorien Seite", + "Name of the category page file for the category links. This property is used by the default component partial.": "Name der Kategorien-Seiten-Datei für die Kategorien Links. Wird von der Standard-Komponente benötigt.", + "Post": "Blog Artikel", + "Displays a blog post on the page.": "Zeigt einen Blog Artikel auf der Seite.", + "Post slug": "Slug Parametername", + "Look up the blog post using the supplied slug value.": "Der URL-Routen-Parameter um den Post mittels \"Slug\" zu bestimmen.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Name der Kategorien-Seiten-Datei für Kategorie-Links.", + "Post List": "Blog Artikel-Übersicht", + "Displays a list of latest blog posts on the page.": "Stellt eine Liste der neuesten Artikel auf der Seite dar.", + "Page number": "Blättern Parametername", + "This value is used to determine what page the user is on.": "Der erwartete Parametername welcher für Seiten verwendet wird.", + "Category filter": "Kategorien-Filter", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Bitte gebe ein Kategorien-Slug oder URL-Parameter an, mittels den die Artikel gefiltert werden. Wenn der Wert leer ist, werden alle Artikel angezeigt.", + "Posts per page": "Artikel pro Seite", + "Invalid format of the posts per page value": "Ungültiger \"Artikel pro Seiten\" Wert", + "No posts message": "Keine Artikel Nachricht", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Nachricht welche dargestellt wird wenn keine Artikel vorhanden sind. Dieser Wert wird von der Standard-Komponente verwendet.", + "No posts found": "Keine Artikel gefunden", + "Post order": "Artikel Sortierung", + "Attribute on which the posts should be ordered": "Attribute nach welchem Artikel sortiert werden.", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Name der Kategorien-Seiten-Datei für \"Veröffentlicht in\" Kategorien-Links. Dieser Wert von der Standard-Komponente verwendet.", + "Post page": "Artikel Seite", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Name der Artikel-Seiten-Datei für die \"Erfahre mehr\" Links. Dieser Wert für von der Standard-Komponente verwendet.", + "Except post": "Artikel ausschließen", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Gebe direkt die ID/URL oder eine Variable mit der Artikel-ID/URL an um diesen Artikel auszuschließen. Dieser Wert für von der Standard-Komponente verwendet.", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "Aritkel-Ausnahmen müssen einzelne Slugs oder IDs oder eine kommagetrennte Liste von Slugs und IDs sein", + "Except categories": "Kategorien ausschließen", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Gebe eine kommagetrennte Liste von Kategorie-Slugs oder eine Variable mit einer solchen Liste an um deren Artikel auszuschließen. Die Dieser Wert für von der Standard-Komponente verwendet.", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Kategorie-Ausnahmen müssen einzelne Slugs oder eine kommagetrennte Liste von Slugs sein", + "Blog page": "Blog Seite", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Name der Artikel-Seiten-Datei für die Links. Dieser Wert für von der Standard-Komponente verwendet.", + "RSS Feed": "RSS-Feed", + "Generates an RSS feed containing posts from the blog.": "Erstellt einen RSS-Feed mit Artikeln aus dem Blog.", + "Links": "Links", + "Exceptions": "Ausnahmen", + "Title (ascending)": "Titel (aufsteigend)", + "Title (descending)": "Titel (absteigend)", + "Created (ascending)": "Erstelldatum (aufsteigend)", + "Created (descending)": "Erstelldatum (absteigend)", + "Updated (ascending)": "Aktualisierungsdatum (aufsteigend)", + "Updated (descending)": "Aktualisierungsdatum (absteigend)", + "Published (ascending)": "Veröffentlichungsdatum (aufsteigend)", + "Published (descending)": "Veröffentlichungsdatum (absteigend)", + "Random": "Zufällig", + "Update existing posts": "Bestehende Artikel aktualisieren", + "Check this box to update posts that have exactly the same ID, title or slug.": "Wähle diese Box um Artikel mit derselben ID, Titel oder Slug zu aktualisieren.", + "Create categories specified in the import file": "Kategorien wie in der Import-Datei angegeben erstellen", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Um diese Funktion zu nutzen sollte die Kategorien Spalte gesetzt sein, andernfalls wähle die Standard-Kategorie aus der Liste unterhalb.", + "Select the categories that imported posts will belong to (optional).": "Wähle die Kategorie die für die importierten Artikel verwendet werden soll (optional).", + "Default post author (optional)": "Standard Artikel-Autor (optional)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Der Import versucht einen vorhandenen Autor anhand der E-Mail Spalte zu verwenden sofern diese gesetzt ist und übereinstimmt, andernfalls wird der oben angegebene Autor verwendet.", + "-- select author --": "-- Autor auswählen --" +} diff --git a/lang/de/lang.php b/lang/de/lang.php deleted file mode 100644 index 9ee25ed9..00000000 --- a/lang/de/lang.php +++ /dev/null @@ -1,172 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Eine robuste Blog Plattform.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Blog Artikel bearbeiten', - 'posts' => 'Artikel', - 'create_post' => 'Blog Artikel', - 'categories' => 'Kategorien', - 'create_category' => 'Blog Kategorie', - 'tab' => 'Blog', - 'access_posts' => 'Blog Artikel verwalten', - 'access_categories' => 'Blog Kategorien verwalten', - 'access_other_posts' => 'Blog Artikel anderer Benutzer verwalten', - 'access_import_export' => 'Blog Artikel importieren oder exportieren', - 'access_publish' => 'Kann Artikel veröffentlichen', - 'manage_settings' => 'Blog Einstellungen verwalten', - 'delete_confirm' => 'Bist du sicher?', - 'chart_published' => 'Veröffentlicht', - 'chart_drafts' => 'Entwurf', - 'chart_total' => 'Gesamt', - 'settings_description' => 'Blog Einstellungen verwalten', - 'show_all_posts_label' => 'Zeige Backend Benutzern alle Artikel an', - 'show_all_posts_comment' => 'Zeigt Backend Benutzern sowohl veröffentlichte als auch nicht-veröffentlichte Artikel im Frontend an', - 'use_legacy_editor_label' => 'Veralteten Markdown Editor verwenden', - 'use_legacy_editor_comment' => 'Aktiviere die ältere Version des Markdown Editors bei October CMS v2 und höher', - 'preview_cms_page_label' => 'Vorschau CMS Seite', - 'preview_cms_page_comment' => 'Wähle eine Seite die für den Vorschau Button genutzt werden soll', - 'tab_general' => 'Allgemein', - 'preview' => 'Vorschau' - ], - 'posts' => [ - 'list_title' => 'Blog Artikel verwalten', - 'filter_category' => 'Kategorie', - 'filter_published' => 'Veröffentlichte ausblenden', - 'filter_date' => 'Datum', - 'new_post' => 'Neuer Artikel', - 'export_post' => 'Exportiere Artikel', - 'import_post' => 'Importiere Artikel' - ], - 'post' => [ - 'title' => 'Titel', - 'title_placeholder' => 'Neuer Titel', - 'content' => 'Inhalt', - 'content_html' => 'HTML-Inhalt', - 'slug' => 'Slug', - 'slug_placeholder' => 'neuer-artikel-slug', - 'categories' => 'Kategorien', - 'author_email' => 'Autor E-Mail', - 'created' => 'Erstellt', - 'created_date' => 'Erstellzeitpunkt', - 'updated' => 'Aktualisiert', - 'updated_date' => 'Aktualisierungszeitpunk', - 'published' => 'Veröffentlicht', - 'published_by' => 'Veröffentlicht von', - 'current_user' => 'Aktueller Benutzer', - 'published_date' => 'Veröffentlichungszeitpunkt', - 'published_validation' => 'Bitte gebe das Datum der Veröffentlichung an', - 'tab_edit' => 'Bearbeiten', - 'tab_categories' => 'Kategorien', - 'categories_comment' => 'Wähle die zugehörigen Kategorien', - 'categories_placeholder' => 'Es existieren keine Kategorien. Bitte lege zuerst Kategorien an!', - 'tab_manage' => 'Verwalten', - 'published_on' => 'Veröffentlicht am', - 'excerpt' => 'Textauszug', - 'summary' => 'Zusammenfassung', - 'featured_images' => 'Zugehörige Bilder', - 'delete_confirm' => 'Möchtest du diesen Artikel wirklich löschen?', - 'delete_success' => 'Diese Artikel wurden erfolgreich gelöscht.', - 'close_confirm' => 'Der Artikel ist noch nicht gespeichert.', - 'return_to_posts' => 'Zurück zur Artikel-Übersicht', - 'posted_byline' => 'Veröffentlicht in :categories am :date', - 'posted_byline_no_categories' => 'Veröffentlicht am :date', - 'date_format' => 'd. F Y', - 'dropzone' => 'Klicken oder Bild hier ablegen...' - ], - 'categories' => [ - 'list_title' => 'Blog Kategorien verwalten', - 'new_category' => 'Neue Kategorie', - 'uncategorized' => 'Allgemein' - ], - 'category' => [ - 'name' => 'Name', - 'name_placeholder' => 'Neuer Kategorie Name', - 'description' => 'Beschreibung', - 'slug' => 'Slug', - 'slug_placeholder' => 'neuer-kategorie-slug', - 'posts' => 'Artikel', - 'delete_confirm' => 'Möchtest du die Kategorie wirklich löschen?', - 'delete_success' => 'Diese Kategorien wurden erfolgreich gelöscht.', - 'return_to_categories' => 'Zurück zur Kategorie-Übersicht.', - 'reorder' => 'Kategorien sortieren' - ], - 'menuitem' => [ - 'blog_category' => 'Blog Kategorie', - 'all_blog_categories' => 'Alle Blog Kategorien', - 'blog_post' => 'Blog Artikel', - 'all_blog_posts' => 'Alle Blog Artikel', - 'category_blog_posts' => 'Blog Kategorie Artikel' - ], - 'settings' => [ - 'category_title' => 'Blog Kategorie-Übersicht', - 'category_description' => 'Zeigt eine Blog Kategorien-Übersicht.', - 'category_slug' => 'Slug Parametername', - 'category_slug_description' => 'Der URL-Routen-Parameter welcher verwendet wird um die aktuelle Kategorie zu bestimmen. Wird von der Standard-Komponente benötigt um die aktive Kategorie zu markieren.', - 'category_display_empty' => 'Leere Kategorien anzeigen', - 'category_display_empty_description' => 'Kategorien zeigen welche keine Artikel besitzen.', - 'category_page' => 'Kategorien Seite', - 'category_page_description' => 'Name der Kategorien-Seiten-Datei für die Kategorien Links. Wird von der Standard-Komponente benötigt.', - 'post_title' => 'Blog Artikel', - 'post_description' => 'Zeigt einen Blog Artikel auf der Seite.', - 'post_slug' => 'Slug Parametername', - 'post_slug_description' => 'Der URL-Routen-Parameter um den Post mittels "Slug" zu bestimmen.', - 'post_category' => 'Kategorien-Seite', - 'post_category_description' => 'Name der Kategorien-Seiten-Datei für Kategorie-Links.', - 'posts_title' => 'Blog Artikel-Übersicht', - 'posts_description' => 'Stellt eine Liste der neuesten Artikel auf der Seite dar.', - 'posts_pagination' => 'Blättern Parametername', - 'posts_pagination_description' => 'Der erwartete Parametername welcher für Seiten verwendet wird.', - 'posts_filter' => 'Kategorien-Filter', - 'posts_filter_description' => 'Bitte gebe ein Kategorien-Slug oder URL-Parameter an, mittels den die Artikel gefiltert werden. Wenn der Wert leer ist, werden alle Artikel angezeigt.', - 'posts_per_page' => 'Artikel pro Seite', - 'posts_per_page_validation' => 'Ungültiger "Artikel pro Seiten" Wert', - 'posts_no_posts' => 'Keine Artikel Nachricht', - 'posts_no_posts_description' => 'Nachricht welche dargestellt wird wenn keine Artikel vorhanden sind. Dieser Wert wird von der Standard-Komponente verwendet.', - 'posts_no_posts_default' => 'Keine Artikel gefunden', - 'posts_order' => 'Artikel Sortierung', - 'posts_order_description' => 'Attribute nach welchem Artikel sortiert werden.', - 'posts_category' => 'Kategorien-Seite', - 'posts_category_description' => 'Name der Kategorien-Seiten-Datei für "Veröffentlicht in" Kategorien-Links. Dieser Wert von der Standard-Komponente verwendet.', - 'posts_post' => 'Artikel Seite', - 'posts_post_description' => 'Name der Artikel-Seiten-Datei für die "Erfahre mehr" Links. Dieser Wert für von der Standard-Komponente verwendet.', - 'posts_except_post' => 'Artikel ausschließen', - 'posts_except_post_description' => 'Gebe direkt die ID/URL oder eine Variable mit der Artikel-ID/URL an um diesen Artikel auszuschließen. Dieser Wert für von der Standard-Komponente verwendet.', - 'posts_except_post_validation' => 'Aritkel-Ausnahmen müssen einzelne Slugs oder IDs oder eine kommagetrennte Liste von Slugs und IDs sein', - 'posts_except_categories' => 'Kategorien ausschließen', - 'posts_except_categories_description' => 'Gebe eine kommagetrennte Liste von Kategorie-Slugs oder eine Variable mit einer solchen Liste an um deren Artikel auszuschließen. Die Dieser Wert für von der Standard-Komponente verwendet.', - 'posts_except_categories_validation' => 'Kategorie-Ausnahmen müssen einzelne Slugs oder eine kommagetrennte Liste von Slugs sein', - 'rssfeed_blog' => 'Blog Seite', - 'rssfeed_blog_description' => 'Name der Artikel-Seiten-Datei für die Links. Dieser Wert für von der Standard-Komponente verwendet.', - 'rssfeed_title' => 'RSS-Feed', - 'rssfeed_description' => 'Erstellt einen RSS-Feed mit Artikeln aus dem Blog.', - 'group_links' => 'Links', - 'group_exceptions' => 'Ausnahmen' - ], - 'sorting' => [ - 'title_asc' => 'Titel (aufsteigend)', - 'title_desc' => 'Titel (absteigend)', - 'created_asc' => 'Erstelldatum (aufsteigend)', - 'created_desc' => 'Erstelldatum (absteigend)', - 'updated_asc' => 'Aktualisierungsdatum (aufsteigend)', - 'updated_desc' => 'Aktualisierungsdatum (absteigend)', - 'published_asc' => 'Veröffentlichungsdatum (aufsteigend)', - 'published_desc' => 'Veröffentlichungsdatum (absteigend)', - 'random' => 'Zufällig' - ], - 'import' => [ - 'update_existing_label' => 'Bestehende Artikel aktualisieren', - 'update_existing_comment' => 'Wähle diese Box um Artikel mit derselben ID, Titel oder Slug zu aktualisieren.', - 'auto_create_categories_label' => 'Kategorien wie in der Import-Datei angegeben erstellen', - 'auto_create_categories_comment' => 'Um diese Funktion zu nutzen sollte die Kategorien Spalte gesetzt sein, andernfalls wähle die Standard-Kategorie aus der Liste unterhalb.', - 'categories_label' => 'Kategorien', - 'categories_comment' => 'Wähle die Kategorie die für die importierten Artikel verwendet werden soll (optional).', - 'default_author_label' => 'Standard Artikel-Autor (optional)', - 'default_author_comment' => 'Der Import versucht einen vorhandenen Autor anhand der E-Mail Spalte zu verwenden sofern diese gesetzt ist und übereinstimmt, andernfalls wird der oben angegebene Autor verwendet.', - 'default_author_placeholder' => '-- Autor auswählen --' - ] -]; diff --git a/lang/en.json b/lang/en.json new file mode 100644 index 00000000..c6ed0066 --- /dev/null +++ b/lang/en.json @@ -0,0 +1,137 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "A robust blogging platform.", + "Manage Blog Posts": "Manage Blog Posts", + "Posts": "Posts", + "Blog post": "Blog post", + "Categories": "Categories", + "Blog category": "Blog category", + "Manage the blog posts": "Manage the blog posts", + "Manage the blog categories": "Manage the blog categories", + "Manage other users blog posts": "Manage other users blog posts", + "Allowed to import and export posts": "Allowed to import and export posts", + "Allowed to publish posts": "Allowed to publish posts", + "Manage blog settings": "Manage blog settings", + "Are you sure?": "Are you sure?", + "Published": "Published", + "Drafts": "Drafts", + "Total": "Total", + "Show All Posts to Backend Users": "Show All Posts to Backend Users", + "Display both published and unpublished posts on the frontend to backend users": "Display both published and unpublished posts on the frontend to backend users", + "Use the Legacy Markdown Editor": "Use the Legacy Markdown Editor", + "Enable the older version of the markdown editor when using October CMS v2 and above": "Enable the older version of the markdown editor when using October CMS v2 and above", + "Force the WYSIWYG editor": "Force the WYSIWYG editor", + "Use common richtext editor instead of the Markdown editor": "Use common richtext editor instead of the Markdown editor", + "Preview CMS Page": "Preview CMS Page", + "Select a page to open for the Preview button": "Select a page to open for the Preview button", + "General": "General", + "Preview": "Preview", + "Category": "Category", + "Date": "Date", + "New Post": "New Post", + "Export Posts": "Export Posts", + "Import Posts": "Import Posts", + "Title": "Title", + "New post title": "New post title", + "Content": "Content", + "HTML Content": "HTML Content", + "Slug": "Slug", + "new-post-slug": "new-post-slug", + "Author Email": "Author Email", + "Created": "Created", + "Created date": "Created date", + "Updated": "Updated", + "Updated date": "Updated date", + "Published by": "Published by", + "Current user": "Current user", + "Published date": "Published date", + "Please specify the published date": "Please specify the published date", + "Edit": "Edit", + "Select categories the blog post belongs to": "Select categories the blog post belongs to", + "There are no categories, you should create one first!": "There are no categories, you should create one first!", + "Manage": "Manage", + "Published on": "Published on", + "Excerpt": "Excerpt", + "Summary": "Summary", + "Featured Images": "Featured Images", + "Delete this post?": "Delete this post?", + "Successfully deleted those posts.": "Successfully deleted those posts.", + "The post is not saved.": "The post is not saved.", + "Return to posts list": "Return to posts list", + "Posted in :categories on :date.": "Posted in :categories on :date.", + "Posted on :date.": "Posted on :date.", + "Click or drop an image...": "Click or drop an image...", + "New Category": "New Category", + "Uncategorized": "Uncategorized", + "Name": "Name", + "New category name": "New category name", + "Description": "Description", + "new-category-slug": "new-category-slug", + "Delete this category?": "Delete this category?", + "Successfully deleted those categories.": "Successfully deleted those categories.", + "Return to the blog category list": "Return to the blog category list", + "Reorder Categories": "Reorder Categories", + "Blog Category": "Blog Category", + "All Blog Categories": "All Blog Categories", + "Blog Post": "Blog Post", + "All Blog Posts": "All Blog Posts", + "Blog Category Posts": "Blog Category Posts", + "Category List": "Category List", + "Displays a list of blog categories on the page.": "Displays a list of blog categories on the page.", + "Category slug": "Category slug", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", + "Display empty categories": "Display empty categories", + "Show categories that do not have any posts.": "Show categories that do not have any posts.", + "Category page": "Category page", + "Name of the category page file for the category links. This property is used by the default component partial.": "Name of the category page file for the category links. This property is used by the default component partial.", + "Post": "Post", + "Displays a blog post on the page.": "Displays a blog post on the page.", + "Post slug": "Post slug", + "Look up the blog post using the supplied slug value.": "Look up the blog post using the supplied slug value.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Name of the category page file for the category links. This property is used by the default component partial.", + "Post List": "Post List", + "Displays a list of latest blog posts on the page.": "Displays a list of latest blog posts on the page.", + "Page number": "Page number", + "This value is used to determine what page the user is on.": "This value is used to determine what page the user is on.", + "Category filter": "Category filter", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.", + "Posts per page": "Posts per page", + "Invalid format of the posts per page value": "Invalid format of the posts per page value", + "No posts message": "No posts message", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.", + "No posts found": "No posts found", + "Post order": "Post order", + "Attribute on which the posts should be ordered": "Attribute on which the posts should be ordered", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.", + "Post page": "Post page", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.", + "Except post": "Except post", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs", + "Except categories": "Except categories", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Category exceptions must be a single category slug, or a comma-separated list of slugs", + "Blog page": "Blog page", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Name of the main blog page file for generating links. This property is used by the default component partial.", + "RSS Feed": "RSS Feed", + "Generates an RSS feed containing posts from the blog.": "Generates an RSS feed containing posts from the blog.", + "Links": "Links", + "Exceptions": "Exceptions", + "Title (ascending)": "Title (ascending)", + "Title (descending)": "Title (descending)", + "Created (ascending)": "Created (ascending)", + "Created (descending)": "Created (descending)", + "Updated (ascending)": "Updated (ascending)", + "Updated (descending)": "Updated (descending)", + "Published (ascending)": "Published (ascending)", + "Published (descending)": "Published (descending)", + "Random": "Random", + "Update existing posts": "Update existing posts", + "Check this box to update posts that have exactly the same ID, title or slug.": "Check this box to update posts that have exactly the same ID, title or slug.", + "Create categories specified in the import file": "Create categories specified in the import file", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.", + "Select the categories that imported posts will belong to (optional).": "Select the categories that imported posts will belong to (optional).", + "Default post author (optional)": "Default post author (optional)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.", + "-- select author --": "-- select author --" +} \ No newline at end of file diff --git a/lang/en/lang.php b/lang/en/lang.php deleted file mode 100644 index b4850c9d..00000000 --- a/lang/en/lang.php +++ /dev/null @@ -1,174 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'A robust blogging platform.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Manage Blog Posts', - 'posts' => 'Posts', - 'create_post' => 'Blog post', - 'categories' => 'Categories', - 'create_category' => 'Blog category', - 'tab' => 'Blog', - 'access_posts' => 'Manage the blog posts', - 'access_categories' => 'Manage the blog categories', - 'access_other_posts' => 'Manage other users blog posts', - 'access_import_export' => 'Allowed to import and export posts', - 'access_publish' => 'Allowed to publish posts', - 'manage_settings' => 'Manage blog settings', - 'delete_confirm' => 'Are you sure?', - 'chart_published' => 'Published', - 'chart_drafts' => 'Drafts', - 'chart_total' => 'Total', - 'settings_description' => 'Manage blog settings', - 'show_all_posts_label' => 'Show All Posts to Backend Users', - 'show_all_posts_comment' => 'Display both published and unpublished posts on the frontend to backend users', - 'use_legacy_editor_label' => 'Use the Legacy Markdown Editor', - 'use_legacy_editor_comment' => 'Enable the older version of the markdown editor when using October CMS v2 and above', - 'force_richeditor_editor_label' => 'Force the WYSIWYG editor', - 'force_richeditor_editor_comment' => 'Use common richtext editor instead of the Markdown editor', - 'preview_cms_page_label' => 'Preview CMS Page', - 'preview_cms_page_comment' => 'Select a page to open for the Preview button', - 'tab_general' => 'General', - 'preview' => 'Preview' - ], - 'posts' => [ - 'list_title' => 'Manage the blog posts', - 'filter_category' => 'Category', - 'filter_published' => 'Published', - 'filter_date' => 'Date', - 'new_post' => 'New Post', - 'export_post' => 'Export Posts', - 'import_post' => 'Import Posts' - ], - 'post' => [ - 'title' => 'Title', - 'title_placeholder' => 'New post title', - 'content' => 'Content', - 'content_html' => 'HTML Content', - 'slug' => 'Slug', - 'slug_placeholder' => 'new-post-slug', - 'categories' => 'Categories', - 'author_email' => 'Author Email', - 'created' => 'Created', - 'created_date' => 'Created date', - 'updated' => 'Updated', - 'updated_date' => 'Updated date', - 'published' => 'Published', - 'published_by' => 'Published by', - 'current_user' => 'Current user', - 'published_date' => 'Published date', - 'published_validation' => 'Please specify the published date', - 'tab_edit' => 'Edit', - 'tab_categories' => 'Categories', - 'categories_comment' => 'Select categories the blog post belongs to', - 'categories_placeholder' => 'There are no categories, you should create one first!', - 'tab_manage' => 'Manage', - 'published_on' => 'Published on', - 'excerpt' => 'Excerpt', - 'summary' => 'Summary', - 'featured_images' => 'Featured Images', - 'delete_confirm' => 'Delete this post?', - 'delete_success' => 'Successfully deleted those posts.', - 'close_confirm' => 'The post is not saved.', - 'return_to_posts' => 'Return to posts list', - 'posted_byline' => 'Posted in :categories on :date.', - 'posted_byline_no_categories' => 'Posted on :date.', - 'date_format' => 'M d, Y', - 'dropzone' => 'Click or drop an image...' - ], - 'categories' => [ - 'list_title' => 'Manage the blog categories', - 'new_category' => 'New Category', - 'uncategorized' => 'Uncategorized' - ], - 'category' => [ - 'name' => 'Name', - 'name_placeholder' => 'New category name', - 'description' => 'Description', - 'slug' => 'Slug', - 'slug_placeholder' => 'new-category-slug', - 'posts' => 'Posts', - 'delete_confirm' => 'Delete this category?', - 'delete_success' => 'Successfully deleted those categories.', - 'return_to_categories' => 'Return to the blog category list', - 'reorder' => 'Reorder Categories' - ], - 'menuitem' => [ - 'blog_category' => 'Blog Category', - 'all_blog_categories' => 'All Blog Categories', - 'blog_post' => 'Blog Post', - 'all_blog_posts' => 'All Blog Posts', - 'category_blog_posts' => 'Blog Category Posts' - ], - 'settings' => [ - 'category_title' => 'Category List', - 'category_description' => 'Displays a list of blog categories on the page.', - 'category_slug' => 'Category slug', - 'category_slug_description' => "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", - 'category_display_empty' => 'Display empty categories', - 'category_display_empty_description' => 'Show categories that do not have any posts.', - 'category_page' => 'Category page', - 'category_page_description' => 'Name of the category page file for the category links. This property is used by the default component partial.', - 'post_title' => 'Post', - 'post_description' => 'Displays a blog post on the page.', - 'post_slug' => 'Post slug', - 'post_slug_description' => "Look up the blog post using the supplied slug value.", - 'post_category' => 'Category page', - 'post_category_description' => 'Name of the category page file for the category links. This property is used by the default component partial.', - 'posts_title' => 'Post List', - 'posts_description' => 'Displays a list of latest blog posts on the page.', - 'posts_pagination' => 'Page number', - 'posts_pagination_description' => 'This value is used to determine what page the user is on.', - 'posts_filter' => 'Category filter', - 'posts_filter_description' => 'Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.', - 'posts_per_page' => 'Posts per page', - 'posts_per_page_validation' => 'Invalid format of the posts per page value', - 'posts_no_posts' => 'No posts message', - 'posts_no_posts_description' => 'Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.', - 'posts_no_posts_default' => 'No posts found', - 'posts_order' => 'Post order', - 'posts_order_description' => 'Attribute on which the posts should be ordered', - 'posts_category' => 'Category page', - 'posts_category_description' => 'Name of the category page file for the "Posted into" category links. This property is used by the default component partial.', - 'posts_post' => 'Post page', - 'posts_post_description' => 'Name of the blog post page file for the "Learn more" links. This property is used by the default component partial.', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.', - 'posts_except_post_validation' => 'Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs', - 'posts_except_categories' => 'Except categories', - 'posts_except_categories_description' => 'Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude', - 'posts_except_categories_validation' => 'Category exceptions must be a single category slug, or a comma-separated list of slugs', - 'rssfeed_blog' => 'Blog page', - 'rssfeed_blog_description' => 'Name of the main blog page file for generating links. This property is used by the default component partial.', - 'rssfeed_title' => 'RSS Feed', - 'rssfeed_description' => 'Generates an RSS feed containing posts from the blog.', - 'group_links' => 'Links', - 'group_exceptions' => 'Exceptions' - ], - 'sorting' => [ - 'title_asc' => 'Title (ascending)', - 'title_desc' => 'Title (descending)', - 'created_asc' => 'Created (ascending)', - 'created_desc' => 'Created (descending)', - 'updated_asc' => 'Updated (ascending)', - 'updated_desc' => 'Updated (descending)', - 'published_asc' => 'Published (ascending)', - 'published_desc' => 'Published (descending)', - 'random' => 'Random' - ], - 'import' => [ - 'update_existing_label' => 'Update existing posts', - 'update_existing_comment' => 'Check this box to update posts that have exactly the same ID, title or slug.', - 'auto_create_categories_label' => 'Create categories specified in the import file', - 'auto_create_categories_comment' => 'You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.', - 'categories_label' => 'Categories', - 'categories_comment' => 'Select the categories that imported posts will belong to (optional).', - 'default_author_label' => 'Default post author (optional)', - 'default_author_comment' => 'The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.', - 'default_author_placeholder' => '-- select author --' - ] -]; diff --git a/lang/es.json b/lang/es.json new file mode 100644 index 00000000..6c9b7ccd --- /dev/null +++ b/lang/es.json @@ -0,0 +1,132 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Una plataforma robusta de blogging.", + "Manage Blog Posts": "Administrar Publicaciones", + "Posts": "Publicaciones", + "Blog post": "Crear publicación", + "Categories": "Categorías", + "Blog category": "Categoría", + "Manage the blog posts": "Administrar las publicaciones", + "Manage the blog categories": "Administrar las categorías", + "Manage other users blog posts": "Administrar publicaciones de otros usuarios", + "Allowed to import and export posts": "Autorizado para importar y exportar publicaciones", + "Allowed to publish posts": "Autorizado para publicar publicaciones", + "Manage blog settings": "Administrar configuración del blog", + "Are you sure?": "¿Está seguro?", + "Published": "Publicado", + "Drafts": "Borradores", + "Total": "Total", + "Manage blog settings": "Administrar configuración del blog", + "Show All Posts to Backend Users": "Mostrar todas las publicaciones a los usuarios de backend", + "Display both published and unpublished posts on the frontend to backend users": "Mostrar las publicaciones publicados y los borradores a los usuarios de backend", + "General": "General", + "Category": "Categoría", + "Date": "Fecha", + "New Post": "Nueva publicación", + "Export Posts": "Exportar publicaciones", + "Import Posts": "Importar publicaciones", + "Title": "Título", + "New post title": "Título de la publicación", + "Content": "Contenido", + "HTML Content": "Contenido HTML", + "Slug": "Identificador", + "new-post-slug": "nueva-publicacion", + "Author Email": "Email del Autor", + "Created": "Creado", + "Created date": "Fecha de Creación", + "Updated": "Actualizado", + "Updated date": "Fecha de Actualización", + "Published by": "Publicado por", + "Current user": "Usuario actual", + "Published date": "Fecha de publicación", + "Please specify the published date": "Por favor, especifique la fecha de publicación", + "Edit": "Editar", + "Select categories the blog post belongs to": "Seleccione las categorías para la publicación", + "There are no categories, you should create one first!": "No hay categorías, ¡crea una primero!", + "Manage": "Administrar", + "Published on": "Publicado el", + "Excerpt": "Resumen", + "Summary": "Resumen", + "Featured Images": "Imágenes Destacadas", + "Delete this post?": "¿Borrar la publicación?", + "Successfully deleted those posts.": "Publicación borrada correctamente", + "The post is not saved.": "La publicación no está guardada.", + "Return to posts list": "Volver a la lista de publicaciones", + "Posted in :categories on :date.": "Publicado en :categories el :date.", + "Posted on :date.": "Publicado el :date.", + "M d, Y": "d de M de Y", + "Manage the blog categories": "Administrar las categorías", + "New Category": "Nueva categoría", + "Uncategorized": "Sin Categoría", + "Name": "Nombre", + "New category name": "Nombre de la categoría", + "Description": "Descripción", + "new-category-slug": "nueva-categoría", + "Delete this category?": "¿Borrar esta categoría?", + "Successfully deleted those categories.": "Categorías borradas correctamente.", + "Return to the blog category list": "Volver a la lista de categorías", + "Reorder Categories": "Re-ordenar Categorías", + "Blog Category": "Categoría del blog", + "All Blog Categories": "Todas las categorías del blog", + "Blog Post": "Publicación del blog", + "All Blog Posts": "Todas las publicaciones del blog", + "Blog Category Posts": "Publicaciones del blog por categorías", + "Category List": "Lista de Categorías", + "Displays a list of blog categories on the page.": "Muestra en la página una lista de las categorías.", + "Category slug": "Identificador de la categoría", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Localiza una categoría utilizando el identificador proporcionado. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente para marcar la categoría activa.", + "Display empty categories": "Mostrar categorías vacías", + "Show categories that do not have any posts.": "Mostrar categorías que no tienen ninguna publicación.", + "Category page": "Página de categorías", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nombre del archivo de página utilizado para los enlaces de categorías. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.", + "Post": "Publicación", + "Displays a blog post on the page.": "Muestra una publicación en la página.", + "Post slug": "Identificador de la publicación", + "Look up the blog post using the supplied slug value.": "Se buscará la publicación utilizando el valor del identificador proporcionado.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nombre del archivo de página utilizado para los enlaces de categorías. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.", + "Post List": "Lista de publicaciones", + "Displays a list of latest blog posts on the page.": "Muestra una lista de las últimas publicaciones en la página.", + "Page number": "Número de página", + "This value is used to determine what page the user is on.": "Este valor se utiliza para determinar en que página se encuentra el usuario.", + "Category filter": "Filtro de categoría", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Ingrese un identificador de categoría o parámetro URL. Se utilizará para filtrar las publicaciones. Deje el campo vacío para mostrar todas las publicaciones.", + "Posts per page": "Publicaciones por página", + "Invalid format of the posts per page value": "Formato inválido para el valor de publicaciones por página", + "No posts message": "Mensaje cuando no hay publicaciones", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Mensaje que se mostrará en la lista de publicaciones del blog cuando no haya ningúno. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.", + "No posts found": "No se encontraron publicaciones.", + "Post order": "Ordenar publicaciones por", + "Attribute on which the posts should be ordered": "Atributo mediante el cual se deberán ordenar las publicaciones", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Nombre del archivo de página utilizado para los enlaces de categoría \"Publicado en\". Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.", + "Post page": "Página de las publicaciones", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Nombre del archivo de página utilizado para los enlaces \"Saber más\". Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.", + "Except post": "Exceptuar publicación", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Ingrese una ID/URL o variable que contenga una ID/URL de la publicación que se quiera excluir", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "La publicación a excluir debe ser una ID/URL, o una lista separada por comas de IDs/URLs", + "Except categories": "Excluir categorías", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Introduce una lista separada por comas de IDs/URLs de categorías con las categorías a excluir.", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Las categorías excluidas deben ser una URL de categoría o una lista separada por comas", + "Blog page": "Página del blog", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Nombre del archivo de página principal para generación de enlaces. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.", + "RSS Feed": "RSS Feed", + "Generates an RSS feed containing posts from the blog.": "Genera un feed de RSS con las publicaciones del blog.", + "Links": "Enlaces", + "Exceptions": "Excepciones", + "Title (ascending)": "Título (ascendiente)", + "Title (descending)": "Título (descendiente)", + "Created (ascending)": "Creado (ascendiente)", + "Created (descending)": "Creado (descendiente)", + "Updated (ascending)": "Editado (ascendiente)", + "Updated (descending)": "Editado (descendiente)", + "Published (ascending)": "Publicado (ascendiente)", + "Published (descending)": "Publicado (descendiente)", + "Random": "Aleatorio", + "Update existing posts": "Editar publicaciones existentes", + "Check this box to update posts that have exactly the same ID, title or slug.": "Selecciona este check para actualizar las publicaciones con exactamente la misma ID, título o URL.", + "Create categories specified in the import file": "Crear categorías especificadas en el archivo a importar", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Debes hacer coincidir la columna Categoría para usar esta funcionalidad, sino selecciona la categoría por defecto para para usar para los elementos de abajo.", + "Select the categories that imported posts will belong to (optional).": "Selecciona las categorías a las que pertenecerán las publicaciones importadas (opcional).", + "Default post author (optional)": "Autor de publicación por defecto (opcional)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "La importación intentará usar un autor existente si coicide con la columna \"Author Email\", sino se usará el autor especificado arriba.", + "-- select author --": "-- Selecciona Autor/a --" +} diff --git a/lang/es/lang.php b/lang/es/lang.php deleted file mode 100644 index d34e8e4c..00000000 --- a/lang/es/lang.php +++ /dev/null @@ -1,166 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Una plataforma robusta de blogging.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Administrar Publicaciones', - 'posts' => 'Publicaciones', - 'create_post' => 'Crear publicación', - 'categories' => 'Categorías', - 'create_category' => 'Categoría', - 'tab' => 'Blog', - 'access_posts' => 'Administrar las publicaciones', - 'access_categories' => 'Administrar las categorías', - 'access_other_posts' => 'Administrar publicaciones de otros usuarios', - 'access_import_export' => 'Autorizado para importar y exportar publicaciones', - 'access_publish' => 'Autorizado para publicar publicaciones', - 'manage_settings' => 'Administrar configuración del blog', - 'delete_confirm' => '¿Está seguro?', - 'chart_published' => 'Publicado', - 'chart_drafts' => 'Borradores', - 'chart_total' => 'Total', - 'settings_description' => 'Administrar configuración del blog', - 'show_all_posts_label' => 'Mostrar todas las publicaciones a los usuarios de backend', - 'show_all_posts_comment' => 'Mostrar las publicaciones publicados y los borradores a los usuarios de backend', - 'tab_general' => 'General' - ], - 'posts' => [ - 'list_title' => 'Administrar publicaciones', - 'filter_category' => 'Categoría', - 'filter_published' => 'Publicado', - 'filter_date' => 'Fecha', - 'new_post' => 'Nueva publicación', - 'export_post' => 'Exportar publicaciones', - 'import_post' => 'Importar publicaciones' - ], - 'post' => [ - 'title' => 'Título', - 'title_placeholder' => 'Título de la publicación', - 'content' => 'Contenido', - 'content_html' => 'Contenido HTML', - 'slug' => 'Identificador', - 'slug_placeholder' => 'nueva-publicacion', - 'categories' => 'Categorías', - 'author_email' => 'Email del Autor', - 'created' => 'Creado', - 'created_date' => 'Fecha de Creación', - 'updated' => 'Actualizado', - 'updated_date' => 'Fecha de Actualización', - 'published' => 'Publicado', - 'published_by' => 'Publicado por', - 'current_user' => 'Usuario actual', - 'published_date' => 'Fecha de publicación', - 'published_validation' => 'Por favor, especifique la fecha de publicación', - 'tab_edit' => 'Editar', - 'tab_categories' => 'Categorías', - 'categories_comment' => 'Seleccione las categorías para la publicación', - 'categories_placeholder' => 'No hay categorías, ¡crea una primero!', - 'tab_manage' => 'Administrar', - 'published_on' => 'Publicado el', - 'excerpt' => 'Resumen', - 'summary' => 'Resumen', - 'featured_images' => 'Imágenes Destacadas', - 'delete_confirm' => '¿Borrar la publicación?', - 'delete_success' => 'Publicación borrada correctamente', - 'close_confirm' => 'La publicación no está guardada.', - 'return_to_posts' => 'Volver a la lista de publicaciones', - 'posted_byline' => 'Publicado en :categories el :date.', - 'posted_byline_no_categories' => 'Publicado el :date.', - 'date_format' => 'd de M de Y', - ], - 'categories' => [ - 'list_title' => 'Administrar las categorías', - 'new_category' => 'Nueva categoría', - 'uncategorized' => 'Sin Categoría' - ], - 'category' => [ - 'name' => 'Nombre', - 'name_placeholder' => 'Nombre de la categoría', - 'description' => 'Descripción', - 'slug' => 'Identificador', - 'slug_placeholder' => 'nueva-categoría', - 'posts' => 'Publicaciones', - 'delete_confirm' => '¿Borrar esta categoría?', - 'delete_success' => 'Categorías borradas correctamente.', - 'return_to_categories' => 'Volver a la lista de categorías', - 'reorder' => 'Re-ordenar Categorías' - ], - 'menuitem' => [ - 'blog_category' => 'Categoría del blog', - 'all_blog_categories' => 'Todas las categorías del blog', - 'blog_post' => 'Publicación del blog', - 'all_blog_posts' => 'Todas las publicaciones del blog', - 'category_blog_posts' => 'Publicaciones del blog por categorías' - ], - 'settings' => [ - 'category_title' => 'Lista de Categorías', - 'category_description' => 'Muestra en la página una lista de las categorías.', - 'category_slug' => 'Identificador de la categoría', - 'category_slug_description' => "Localiza una categoría utilizando el identificador proporcionado. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente para marcar la categoría activa.", - 'category_display_empty' => 'Mostrar categorías vacías', - 'category_display_empty_description' => 'Mostrar categorías que no tienen ninguna publicación.', - 'category_page' => 'Página de categorías', - 'category_page_description' => 'Nombre del archivo de página utilizado para los enlaces de categorías. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.', - 'post_title' => 'Publicación', - 'post_description' => 'Muestra una publicación en la página.', - 'post_slug' => 'Identificador de la publicación', - 'post_slug_description' => "Se buscará la publicación utilizando el valor del identificador proporcionado.", - 'post_category' => 'Página de categoría', - 'post_category_description' => 'Nombre del archivo de página utilizado para los enlaces de categorías. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.', - 'posts_title' => 'Lista de publicaciones', - 'posts_description' => 'Muestra una lista de las últimas publicaciones en la página.', - 'posts_pagination' => 'Número de página', - 'posts_pagination_description' => 'Este valor se utiliza para determinar en que página se encuentra el usuario.', - 'posts_filter' => 'Filtro de categoría', - 'posts_filter_description' => 'Ingrese un identificador de categoría o parámetro URL. Se utilizará para filtrar las publicaciones. Deje el campo vacío para mostrar todas las publicaciones.', - 'posts_per_page' => 'Publicaciones por página', - 'posts_per_page_validation' => 'Formato inválido para el valor de publicaciones por página', - 'posts_no_posts' => 'Mensaje cuando no hay publicaciones', - 'posts_no_posts_description' => 'Mensaje que se mostrará en la lista de publicaciones del blog cuando no haya ningúno. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.', - 'posts_no_posts_default' => 'No se encontraron publicaciones.', - 'posts_order' => 'Ordenar publicaciones por', - 'posts_order_description' => 'Atributo mediante el cual se deberán ordenar las publicaciones', - 'posts_category' => 'Página de Categoría', - 'posts_category_description' => 'Nombre del archivo de página utilizado para los enlaces de categoría "Publicado en". Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.', - 'posts_post' => 'Página de las publicaciones', - 'posts_post_description' => 'Nombre del archivo de página utilizado para los enlaces "Saber más". Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.', - 'posts_except_post' => 'Exceptuar publicación', - 'posts_except_post_description' => 'Ingrese una ID/URL o variable que contenga una ID/URL de la publicación que se quiera excluir', - 'posts_except_post_validation' => 'La publicación a excluir debe ser una ID/URL, o una lista separada por comas de IDs/URLs', - 'posts_except_categories' => 'Excluir categorías', - 'posts_except_categories_description' => 'Introduce una lista separada por comas de IDs/URLs de categorías con las categorías a excluir.', - 'posts_except_categories_validation' => 'Las categorías excluidas deben ser una URL de categoría o una lista separada por comas', - 'rssfeed_blog' => 'Página del blog', - 'rssfeed_blog_description' => 'Nombre del archivo de página principal para generación de enlaces. Esta propiedad es utilizada dentro del parcial que viene por defecto en el componente.', - 'rssfeed_title' => 'RSS Feed', - 'rssfeed_description' => 'Genera un feed de RSS con las publicaciones del blog.', - 'group_links' => 'Enlaces', - 'group_exceptions' => 'Excepciones' - ], - 'sorting' => [ - 'title_asc' => 'Título (ascendiente)', - 'title_desc' => 'Título (descendiente)', - 'created_asc' => 'Creado (ascendiente)', - 'created_desc' => 'Creado (descendiente)', - 'updated_asc' => 'Editado (ascendiente)', - 'updated_desc' => 'Editado (descendiente)', - 'published_asc' => 'Publicado (ascendiente)', - 'published_desc' => 'Publicado (descendiente)', - 'random' => 'Aleatorio' - ], - 'import' => [ - 'update_existing_label' => 'Editar publicaciones existentes', - 'update_existing_comment' => 'Selecciona este check para actualizar las publicaciones con exactamente la misma ID, título o URL.', - 'auto_create_categories_label' => 'Crear categorías especificadas en el archivo a importar', - 'auto_create_categories_comment' => 'Debes hacer coincidir la columna Categoría para usar esta funcionalidad, sino selecciona la categoría por defecto para para usar para los elementos de abajo.', - 'categories_label' => 'Categorías', - 'categories_comment' => 'Selecciona las categorías a las que pertenecerán las publicaciones importadas (opcional).', - 'default_author_label' => 'Autor de publicación por defecto (opcional)', - 'default_author_comment' => 'La importación intentará usar un autor existente si coicide con la columna "Author Email", sino se usará el autor especificado arriba.', - 'default_author_placeholder' => '-- Selecciona Autor/a --' - ] -]; diff --git a/lang/fa.json b/lang/fa.json new file mode 100644 index 00000000..f3c568e1 --- /dev/null +++ b/lang/fa.json @@ -0,0 +1,81 @@ +{ + "Blog": "وبلاگ", + "A robust blogging platform.": "پلتفرم قوی برای وبلاگ نویسی", + "Manage Blog Posts": "مدیریت پست های ارسالی", + "Posts": "پست ها", + "Blog post": "ایجاد پست جدید", + "Categories": "دسته بندی ها", + "Blog category": "ایجاد دسته بندی جدید", + "Manage the blog posts": "مدیریت پست های ارسالی", + "Manage the blog categories": "مدیریت دسته بندی های وبلاگ", + "Manage other users blog posts": "مدیریت پست های ارسالی سایر کاربران", + "Allowed to import and export posts": "توانایی واردکردن و خارج کردن پستها", + "Are you sure?": "آیا اطمینان دارید؟", + "Published": "منتشر شده", + "Drafts": "پیش نویس", + "Total": "مجموع", + "Category": "دسته بندی", + "Hide Published": "مخفی کردن منتشر شده ها", + "New Post": "پست جدید", + "Title": "عنوان", + "New post title": "عنوان پست جدید", + "Content": "محتوی", + "HTML Content": "محتوی HTML", + "Slug": "آدرس", + "new-post-slug": "آدرس-پست-جدید", + "Author Email": "پست الکترونیکی نویسنده", + "Created": "ایجاد شده در", + "Created date": "تاریخ ایجاد", + "Updated": "به روزرسانی شده در", + "Updated date": "تاریخ به روزرسانی", + "Published date": "تاریخ انتشار", + "Please specify the published date": "لطفا تاریخ انتشار را وارد نمایید", + "Edit": "ویرایش", + "Select categories the blog post belongs to": "دسته بندی هایی را که پست به آنها تعلق دارد را انتخاب نمایید", + "There are no categories, you should create one first!": "دسته بندی ای وجود ندارد. ابتدا یک دسته بندی ایجاد نمایید!", + "Manage": "مدیریت", + "Published on": "منتشر شده در", + "Excerpt": "خلاصه", + "Summary": "چکیده", + "Featured Images": "تصاویر شاخص", + "Delete this post?": "آیا از حذف این پست اطمینان دارید؟", + "The post is not saved.": "پست ذخیره نشده است", + "Return to posts list": "بازگشت به لیست پست ها", + "Manage the blog categories": "مدیریت دسته بندی های وبلاگ", + "New Category": "دسته بندی جدید", + "Uncategorized": "بدون دسته بندی", + "Name": "نام", + "New category name": "نام دسته بندی جدید", + "new-category-slug": "آدرس-جدید-دسته-بندی", + "Delete this category?": "آیا از حذف این دسته بندی اطمینان دارید؟", + "Return to the blog category list": "بازگشت به لیست دسته بندی های وبلاگ", + "Reorder Categories": "مرتب سازی دسته بندی ها", + "Category List": "لیست دسته بندی", + "Displays a list of blog categories on the page.": "نمایش لیست دسته بندی های وبلاگ در صفحه", + "Category slug": "آدرس دسته بندی", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "دسته بندی وبلاگ توسط آدرس وارد شده جستجو می شود. این عمل توسط ابزار دسته بندی برای برجسته ساختن دسته بندی در حال نمایش استفاده می شود.", + "Display empty categories": "نمایش دسته بندی های خالی", + "Show categories that do not have any posts.": "نمایش دسته بندی هایی که هیچ ارسالی در آنها وجود ندارد.", + "Category page": "صفحه دسته بندی", + "Name of the category page file for the category links. This property is used by the default component partial.": "نام صفحه ای که لیست دسته بندی ها در آن نمایش داده می شوند. این گزینه به طور پیشفرض توسط ابزار مورد استفاده قرار میگیرد.", + "Post": "پست", + "Displays a blog post on the page.": "نمایش پست در صفحه", + "Post slug": "آدرس پست", + "Look up the blog post using the supplied slug value.": "پست توسط آدرس وارد شده جستجو میشود.", + "Name of the category page file for the category links. This property is used by the default component partial.": "نام صفحه ای که لیست دسته بندی ها در آن نمایش داده می شوند. این گزینه به طور پیشفرض توسط ابزار مورد استفاده قرار میگیرد.", + "Post List": "لیست پست ها", + "Displays a list of latest blog posts on the page.": "نمایش لیستی از پستهایی که اخیرا ارسال شده اند در صفحه.", + "Page number": "شماره صفحه", + "This value is used to determine what page the user is on.": "این مقدار جهت تشخیص صفحه ای که کاربر در آن قرار دارد مورد استفاده قرار میگیرد.", + "Category filter": "فیلتر دسته بندی", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "آدرس دسته بندی ای را که میخواهید پست های آن نمایش داده شوند را وارد نمایید. اگر میخواهید همه پست ها نمایش داده شوند این مقدار را خالی رها کنید.", + "Posts per page": "تعداد پست ها در هر صفحه", + "Invalid format of the posts per page value": "مقدار ورودی تعداد پست ها در هر صفحه نامعتبر است.", + "No posts message": "پیغام پستی وجود ندارد", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "این پیغام در صورتی که پستی جهت نمایش وجود نداشته باشد، نمایش داده می شود.", + "Post order": "ترتیب پست ها", + "Post page": "صفحه پست", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "نام صفحه مربوط به نمایش کامل پست ها جهت لینک ادامه مطلب", + "Except post": "Except post", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Enter ID/URL or variable with post ID/URL you want to except" +} diff --git a/lang/fa/lang.php b/lang/fa/lang.php deleted file mode 100644 index 04134519..00000000 --- a/lang/fa/lang.php +++ /dev/null @@ -1,109 +0,0 @@ - [ - 'name' => 'وبلاگ', - 'description' => 'پلتفرم قوی برای وبلاگ نویسی' - ], - 'blog' => [ - 'menu_label' => 'وبلاگ', - 'menu_description' => 'مدیریت پست های ارسالی', - 'posts' => 'پست ها', - 'create_post' => 'ایجاد پست جدید', - 'categories' => 'دسته بندی ها', - 'create_category' => 'ایجاد دسته بندی جدید', - 'tab' => 'وبلاگ', - 'access_posts' => 'مدیریت پست های ارسالی', - 'access_categories' => 'مدیریت دسته بندی های وبلاگ', - 'access_other_posts' => 'مدیریت پست های ارسالی سایر کاربران', - 'access_import_export' => 'توانایی واردکردن و خارج کردن پستها', - 'delete_confirm' => 'آیا اطمینان دارید؟', - 'chart_published' => 'منتشر شده', - 'chart_drafts' => 'پیش نویس', - 'chart_total' => 'مجموع' - ], - 'posts' => [ - 'list_title' => 'مدیریت پست های ارسالی', - 'filter_category' => 'دسته بندی', - 'filter_published' => 'مخفی کردن منتشر شده ها', - 'new_post' => 'پست جدید' - ], - 'post' => [ - 'title' => 'عنوان', - 'title_placeholder' => 'عنوان پست جدید', - 'content' => 'محتوی', - 'content_html' => 'محتوی HTML', - 'slug' => 'آدرس', - 'slug_placeholder' => 'آدرس-پست-جدید', - 'categories' => 'دسته بندی ها', - 'author_email' => 'پست الکترونیکی نویسنده', - 'created' => 'ایجاد شده در', - 'created_date' => 'تاریخ ایجاد', - 'updated' => 'به روزرسانی شده در', - 'updated_date' => 'تاریخ به روزرسانی', - 'published' => 'منتشر شده', - 'published_date' => 'تاریخ انتشار', - 'published_validation' => 'لطفا تاریخ انتشار را وارد نمایید', - 'tab_edit' => 'ویرایش', - 'tab_categories' => 'دسته بندی ها', - 'categories_comment' => 'دسته بندی هایی را که پست به آنها تعلق دارد را انتخاب نمایید', - 'categories_placeholder' => 'دسته بندی ای وجود ندارد. ابتدا یک دسته بندی ایجاد نمایید!', - 'tab_manage' => 'مدیریت', - 'published_on' => 'منتشر شده در', - 'excerpt' => 'خلاصه', - 'summary' => 'چکیده', - 'featured_images' => 'تصاویر شاخص', - 'delete_confirm' => 'آیا از حذف این پست اطمینان دارید؟', - 'close_confirm' => 'پست ذخیره نشده است', - 'return_to_posts' => 'بازگشت به لیست پست ها' - ], - 'categories' => [ - 'list_title' => 'مدیریت دسته بندی های وبلاگ', - 'new_category' => 'دسته بندی جدید', - 'uncategorized' => 'بدون دسته بندی' - ], - 'category' => [ - 'name' => 'نام', - 'name_placeholder' => 'نام دسته بندی جدید', - 'slug' => 'آدرس', - 'slug_placeholder' => 'آدرس-جدید-دسته-بندی', - 'posts' => 'پست ها', - 'delete_confirm' => 'آیا از حذف این دسته بندی اطمینان دارید؟', - 'return_to_categories' => 'بازگشت به لیست دسته بندی های وبلاگ', - 'reorder' => 'مرتب سازی دسته بندی ها' - ], - 'settings' => [ - 'category_title' => 'لیست دسته بندی', - 'category_description' => 'نمایش لیست دسته بندی های وبلاگ در صفحه', - 'category_slug' => 'آدرس دسته بندی', - 'category_slug_description' => "دسته بندی وبلاگ توسط آدرس وارد شده جستجو می شود. این عمل توسط ابزار دسته بندی برای برجسته ساختن دسته بندی در حال نمایش استفاده می شود.", - 'category_display_empty' => 'نمایش دسته بندی های خالی', - 'category_display_empty_description' => 'نمایش دسته بندی هایی که هیچ ارسالی در آنها وجود ندارد.', - 'category_page' => 'صفحه دسته بندی', - 'category_page_description' => 'نام صفحه ای که لیست دسته بندی ها در آن نمایش داده می شوند. این گزینه به طور پیشفرض توسط ابزار مورد استفاده قرار میگیرد.', - 'post_title' => 'پست', - 'post_description' => 'نمایش پست در صفحه', - 'post_slug' => 'آدرس پست', - 'post_slug_description' => "پست توسط آدرس وارد شده جستجو میشود.", - 'post_category' => 'صفحه دسته بندی', - 'post_category_description' => 'نام صفحه ای که لیست دسته بندی ها در آن نمایش داده می شوند. این گزینه به طور پیشفرض توسط ابزار مورد استفاده قرار میگیرد.', - 'posts_title' => 'لیست پست ها', - 'posts_description' => 'نمایش لیستی از پستهایی که اخیرا ارسال شده اند در صفحه.', - 'posts_pagination' => 'شماره صفحه', - 'posts_pagination_description' => 'این مقدار جهت تشخیص صفحه ای که کاربر در آن قرار دارد مورد استفاده قرار میگیرد.', - 'posts_filter' => 'فیلتر دسته بندی', - 'posts_filter_description' => 'آدرس دسته بندی ای را که میخواهید پست های آن نمایش داده شوند را وارد نمایید. اگر میخواهید همه پست ها نمایش داده شوند این مقدار را خالی رها کنید.', - 'posts_per_page' => 'تعداد پست ها در هر صفحه', - 'posts_per_page_validation' => 'مقدار ورودی تعداد پست ها در هر صفحه نامعتبر است.', - 'posts_no_posts' => 'پیغام پستی وجود ندارد', - 'posts_no_posts_description' => 'این پیغام در صورتی که پستی جهت نمایش وجود نداشته باشد، نمایش داده می شود.', - 'posts_order' => 'ترتیب پست ها', - 'posts_order_decription' => 'مشخصه ترتیب نمایش پست ها در صفحه', - 'posts_category' => 'صفحه دسته بندی', - 'posts_category_description' => 'نام صفحه دسته بندی برای نمایش پستهای مربوط به آن.', - 'posts_post' => 'صفحه پست', - 'posts_post_description' => 'نام صفحه مربوط به نمایش کامل پست ها جهت لینک ادامه مطلب', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - ] -]; diff --git a/lang/fi.json b/lang/fi.json new file mode 100644 index 00000000..f99f1127 --- /dev/null +++ b/lang/fi.json @@ -0,0 +1,129 @@ +{ + "Blog": "Blogi", + "A robust blogging platform.": "Vankka bloggausalusta.", + "Manage Blog Posts": "Hallitse blogipostauksia", + "Posts": "Postaukset", + "Blog post": "Blogipostaus", + "Blog category": "Blogikategoria", + "Manage the blog posts": "Hallitse postauksia", + "Manage the blog categories": "Hallitse kategorioita", + "Manage other users blog posts": "Hallitse muiden käyttäjien postauksia", + "Allowed to import and export posts": "Saa tuoda ja viedä postauksia", + "Allowed to publish posts": "Saa julkaista postauksia", + "Manage blog settings": "Manage blog settings", + "Are you sure?": "Olteko varma?", + "Published": "Julkaistu", + "Drafts": "Luonnokset", + "Total": "Yhteensä", + "Manage blog settings": "Hallinnoi blogin asetuksia", + "Show All Posts to Backend Users": "Näytä kaikki postaukset ylläpitäjille", + "Display both published and unpublished posts on the frontend to backend users": "Näytä molemmat sekä julkaistut että julkaisemattomat postaukset ylläpitäjille", + "General": "Yleiset", + "Category": "Kategoria", + "Date": "Päivämäärä", + "New Post": "Uusi postaus", + "Export Posts": "Vie postaukset", + "Import Posts": "Tuo postauksia", + "Title": "Otsikko", + "New post title": "Uuden postauksen otsikko", + "Content": "Sisältö", + "HTML Content": "HTML Sisältö", + "Slug": "Slugi", + "new-post-slug": "uuden-postaukse-slugi", + "Categories": "Kategoriat", + "Author Email": "Tekijän sähköposti", + "Created": "Luotu", + "Created date": "Luomispäivämäärä", + "Updated": "Muokattu", + "Updated date": "Muokkauspäivämäärä", + "Published by": "Published by", + "Current user": "Current user", + "Published date": "Julkaisupäivämäärä", + "Please specify the published date": "Määrittele julkaisupäivämäärä", + "Edit": "Muokkaa", + "Select categories the blog post belongs to": "Valitse kategoriat joihin postaus kuuluu", + "There are no categories, you should create one first!": "Kategorioita ei ole, sinun pitäisi luoda ensimmäinen ensin!", + "Manage": "Hallitse", + "Published on": "Julkaistu", + "Excerpt": "Poiminto", + "Summary": "Yhteenveto", + "Featured Images": "Esittelykuvat", + "Delete this post?": "Poista tämä postaus?", + "Successfully deleted those posts.": "Postaukset poistettu onnistuneesti.", + "The post is not saved.": "Tämä postaus ei ole tallennettu.", + "Return to posts list": "Palaa postauslistaan", + "Manage the blog categories": "Hallitse blogikategorioita", + "New Category": "Uusi kategoria", + "Uncategorized": "Luokittelematon", + "Name": "Nimi", + "New category name": "Uuden kategorian nimi", + "Description": "Kuvaus", + "new-category-slug": "uuden-kategorian-slugi", + "Delete this category?": "Poista tämä kategoria?", + "Successfully deleted those categories.": "Kategoriat poistettu onnistuneesti.", + "Return to the blog category list": "Palaa blogikategorialistaan", + "Reorder Categories": "Järjestä kategoriat uudelleen", + "Blog Category": "Blogikategoria", + "All Blog Categories": "Kaikki blogikategoriat", + "Blog Post": "Blogipostaukset", + "All Blog Posts": "Kaikki blogipostaukset", + "Blog Category Posts": "Blogin kategorian postaukset", + "Category List": "Kategorialista", + "Displays a list of blog categories on the page.": "Näyttää listan blogikategorioista sivulla.", + "Category slug": "Kategorian slugi", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Etsii blogikategorian käyttämällä annettua slugi-arvoa. Komponentti käyttää tätä merkitsemään aktiivisen kategorian.", + "Display empty categories": "Näytä tyhjät kategoriat", + "Show categories that do not have any posts.": "Näytä kategoriat joilla ei ole yhtään postauksia.", + "Category page": "Kategoriasivu", + "Name of the category page file for the category links. This property is used by the default component partial.": "Kategorialistaussivun tiedostonimi. Oletuskomponenttiosa käyttää tätä ominaisuutta.", + "Post": "Postaus", + "Displays a blog post on the page.": "Näyttää blogipostauksen sivulla.", + "Post slug": "Postauksen slugi", + "Look up the blog post using the supplied slug value.": "Etsii blogipostauksen käyttämällä annettua slugi-arvoa.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Kategorialistaussivun tiedostonimi. Oletuskomponenttiosa käyttää tätä ominaisuutta.", + "Post List": "Lista postauksista", + "Displays a list of latest blog posts on the page.": "Näyttää listan uusimmista blogipostauksista sivulla.", + "Page number": "Sivunumero", + "This value is used to determine what page the user is on.": "Tätä arvoa käytetään määrittämään millä sivulla käyttäjä on.", + "Category filter": "Kategoriasuodatin", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Lisää kategorian slugi tai URL parametri, jolla suodattaa postauksia. Jätä tyhjäksi näyttääksesi kaikki postaukset.", + "Posts per page": "Postauksia per sivu", + "Invalid format of the posts per page value": "Postauksia per sivu -kohta sisältää kelvottoman arvon", + "No posts message": "Ei julkaisuja -viesti", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Viesti, joka näytetään silloin kun postauksia ei ole. Oletuskomponenttiosa käyttää tätä ominaisuutta.", + "No posts found": "Ei postauksia", + "Post order": "Postauksien järjestys", + "Attribute on which the posts should be ordered": "Attribuutti, jonka mukaan postaukset tulisi järjestää", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Kategoriasivun tiedosto \"Julkaistu kohteeseen\" kategorialinkkejä varten. Oletuskomponenttiosa käyttää tätä ominaisuutta.", + "Post page": "Postaussivu", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Blogisivun tiedostonimi \"Lue lisää\" linkkejä varten. Oletuskomponenttiosa käyttää tätä ominaisuutta.", + "Except post": "Poissulje postauksia", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Lisää postauksen ID/URL tai muuttuja, jonka haluat poissulkea", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "Postaukset poikkeukset täytyy olla yksittäinen slugi tai ID, pilkulla erotettu slugi-lista ja ID:t", + "Except categories": "Poikkeavat kategoriat", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Lisää pilkulla erotettu listaus kategoria slugeista tai listaus kategorioista jotka haluat jättää ulkopuolelle", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Poikkeavat kategoriat ovat oltava yksittäinen kategoria slugi tai pilkulla erotettu listaus slugeista", + "Blog page": "Blogisivu", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Blogisivun tiedostonimi linkkien generointia varten. Oletuskomponenttiosa käyttää tätä ominaisuutta.", + "RSS Feed": "RSS syöte", + "Generates an RSS feed containing posts from the blog.": "Generoi RSS syötteen sisältäen postaukset blogista.", + "Links": "Linkit", + "Exceptions": "Poikkeukset", + "Title (ascending)": "Otsikko (ascending)", + "Title (descending)": "Otsikko (descending)", + "Created (ascending)": "Luotu (ascending)", + "Created (descending)": "Luotu (descending)", + "Updated (ascending)": "Päivitetty (ascending)", + "Updated (descending)": "Päivitetty (descending)", + "Published (ascending)": "Julkaistu (ascending)", + "Published (descending)": "Julkaistu (descending)", + "Random": "Satunnainen", + "Update existing posts": "Päivitä olemassa olevat postaukset", + "Check this box to update posts that have exactly the same ID, title or slug.": "Valitse tämä laatikko päivittääksesi postaukset, joissa on täsmälleen sama ID, otsikko tai slugi.", + "Create categories specified in the import file": "Luo tuotavassa tiedostossa määritellyt kategoriat.", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Sinun tulisi yhdistää Kategoriat-sarake käyttääksesi tätä toiminnallisuutta. Muussa tapauksessa valitse oletuskategoria alapuolelta.", + "Select the categories that imported posts will belong to (optional).": "Valitse kategoriat, joihin tuotavat postaukset liitetään (option).", + "Default post author (optional)": "Oletuskirjoittaja (optio)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Tuonti yrittää käyttää Kirjoittaja tiedon sähköpostia yhdistäessään kirjoittajaa. Muussa tapauksessa käytetään ylempänä määriteltyä.", + "-- select author --": "-- valitse kirjoittaja --" +} diff --git a/lang/fi/lang.php b/lang/fi/lang.php deleted file mode 100644 index 284c9211..00000000 --- a/lang/fi/lang.php +++ /dev/null @@ -1,163 +0,0 @@ - [ - 'name' => 'Blogi', - 'description' => 'Vankka bloggausalusta.' - ], - 'blog' => [ - 'menu_label' => 'Blogi', - 'menu_description' => 'Hallitse blogipostauksia', - 'posts' => 'Postaukset', - 'create_post' => 'Blogipostaus', - 'categories' => 'Categories', - 'create_category' => 'Blogikategoria', - 'tab' => 'Blogi', - 'access_posts' => 'Hallitse postauksia', - 'access_categories' => 'Hallitse kategorioita', - 'access_other_posts' => 'Hallitse muiden käyttäjien postauksia', - 'access_import_export' => 'Saa tuoda ja viedä postauksia', - 'access_publish' => 'Saa julkaista postauksia', - 'manage_settings' => 'Manage blog settings', - 'delete_confirm' => 'Olteko varma?', - 'chart_published' => 'Julkaistu', - 'chart_drafts' => 'Luonnokset', - 'chart_total' => 'Yhteensä', - 'settings_description' => 'Hallinnoi blogin asetuksia', - 'show_all_posts_label' => 'Näytä kaikki postaukset ylläpitäjille', - 'show_all_posts_comment' => 'Näytä molemmat sekä julkaistut että julkaisemattomat postaukset ylläpitäjille', - 'tab_general' => 'Yleiset' - ], - 'posts' => [ - 'list_title' => 'Hallitse blogipostauksia', - 'filter_category' => 'Kategoria', - 'filter_published' => 'Julkaistu', - 'filter_date' => 'Päivämäärä', - 'new_post' => 'Uusi postaus', - 'export_post' => 'Vie postaukset', - 'import_post' => 'Tuo postauksia' - ], - 'post' => [ - 'title' => 'Otsikko', - 'title_placeholder' => 'Uuden postauksen otsikko', - 'content' => 'Sisältö', - 'content_html' => 'HTML Sisältö', - 'slug' => 'Slugi', - 'slug_placeholder' => 'uuden-postaukse-slugi', - 'categories' => 'Kategoriat', - 'author_email' => 'Tekijän sähköposti', - 'created' => 'Luotu', - 'created_date' => 'Luomispäivämäärä', - 'updated' => 'Muokattu', - 'updated_date' => 'Muokkauspäivämäärä', - 'published' => 'Julkaistu', - 'published_by' => 'Published by', - 'current_user' => 'Current user', - 'published_date' => 'Julkaisupäivämäärä', - 'published_validation' => 'Määrittele julkaisupäivämäärä', - 'tab_edit' => 'Muokkaa', - 'tab_categories' => 'Kategoriat', - 'categories_comment' => 'Valitse kategoriat joihin postaus kuuluu', - 'categories_placeholder' => 'Kategorioita ei ole, sinun pitäisi luoda ensimmäinen ensin!', - 'tab_manage' => 'Hallitse', - 'published_on' => 'Julkaistu', - 'excerpt' => 'Poiminto', - 'summary' => 'Yhteenveto', - 'featured_images' => 'Esittelykuvat', - 'delete_confirm' => 'Poista tämä postaus?', - 'delete_success' => 'Postaukset poistettu onnistuneesti.', - 'close_confirm' => 'Tämä postaus ei ole tallennettu.', - 'return_to_posts' => 'Palaa postauslistaan' - ], - 'categories' => [ - 'list_title' => 'Hallitse blogikategorioita', - 'new_category' => 'Uusi kategoria', - 'uncategorized' => 'Luokittelematon' - ], - 'category' => [ - 'name' => 'Nimi', - 'name_placeholder' => 'Uuden kategorian nimi', - 'description' => 'Kuvaus', - 'slug' => 'Slugi', - 'slug_placeholder' => 'uuden-kategorian-slugi', - 'posts' => 'Julkaisuja', - 'delete_confirm' => 'Poista tämä kategoria?', - 'delete_success' => 'Kategoriat poistettu onnistuneesti.', - 'return_to_categories' => 'Palaa blogikategorialistaan', - 'reorder' => 'Järjestä kategoriat uudelleen' - ], - 'menuitem' => [ - 'blog_category' => 'Blogikategoria', - 'all_blog_categories' => 'Kaikki blogikategoriat', - 'blog_post' => 'Blogipostaukset', - 'all_blog_posts' => 'Kaikki blogipostaukset', - 'category_blog_posts' => 'Blogin kategorian postaukset' - ], - 'settings' => [ - 'category_title' => 'Kategorialista', - 'category_description' => 'Näyttää listan blogikategorioista sivulla.', - 'category_slug' => 'Kategorian slugi', - 'category_slug_description' => 'Etsii blogikategorian käyttämällä annettua slugi-arvoa. Komponentti käyttää tätä merkitsemään aktiivisen kategorian.', - 'category_display_empty' => 'Näytä tyhjät kategoriat', - 'category_display_empty_description' => 'Näytä kategoriat joilla ei ole yhtään postauksia.', - 'category_page' => 'Kategoriasivu', - 'category_page_description' => 'Kategorialistaussivun tiedostonimi. Oletuskomponenttiosa käyttää tätä ominaisuutta.', - 'post_title' => 'Postaus', - 'post_description' => 'Näyttää blogipostauksen sivulla.', - 'post_slug' => 'Postauksen slugi', - 'post_slug_description' => 'Etsii blogipostauksen käyttämällä annettua slugi-arvoa.', - 'post_category' => 'Kategoriasivu', - 'post_category_description' => 'Kategorialistaussivun tiedostonimi. Oletuskomponenttiosa käyttää tätä ominaisuutta.', - 'posts_title' => 'Lista postauksista', - 'posts_description' => 'Näyttää listan uusimmista blogipostauksista sivulla.', - 'posts_pagination' => 'Sivunumero', - 'posts_pagination_description' => 'Tätä arvoa käytetään määrittämään millä sivulla käyttäjä on.', - 'posts_filter' => 'Kategoriasuodatin', - 'posts_filter_description' => 'Lisää kategorian slugi tai URL parametri, jolla suodattaa postauksia. Jätä tyhjäksi näyttääksesi kaikki postaukset.', - 'posts_per_page' => 'Postauksia per sivu', - 'posts_per_page_validation' => 'Postauksia per sivu -kohta sisältää kelvottoman arvon', - 'posts_no_posts' => 'Ei julkaisuja -viesti', - 'posts_no_posts_description' => 'Viesti, joka näytetään silloin kun postauksia ei ole. Oletuskomponenttiosa käyttää tätä ominaisuutta.', - 'posts_no_posts_default' => 'Ei postauksia', - 'posts_order' => 'Postauksien järjestys', - 'posts_order_description' => 'Attribuutti, jonka mukaan postaukset tulisi järjestää', - 'posts_category' => 'Kategoriasivu', - 'posts_category_description' => 'Kategoriasivun tiedosto "Julkaistu kohteeseen" kategorialinkkejä varten. Oletuskomponenttiosa käyttää tätä ominaisuutta.', - 'posts_post' => 'Postaussivu', - 'posts_post_description' => 'Blogisivun tiedostonimi "Lue lisää" linkkejä varten. Oletuskomponenttiosa käyttää tätä ominaisuutta.', - 'posts_except_post' => 'Poissulje postauksia', - 'posts_except_post_description' => 'Lisää postauksen ID/URL tai muuttuja, jonka haluat poissulkea', - 'posts_except_post_validation' => 'Postaukset poikkeukset täytyy olla yksittäinen slugi tai ID, pilkulla erotettu slugi-lista ja ID:t', - 'posts_except_categories' => 'Poikkeavat kategoriat', - 'posts_except_categories_description' => 'Lisää pilkulla erotettu listaus kategoria slugeista tai listaus kategorioista jotka haluat jättää ulkopuolelle', - 'posts_except_categories_validation' => 'Poikkeavat kategoriat ovat oltava yksittäinen kategoria slugi tai pilkulla erotettu listaus slugeista', - 'rssfeed_blog' => 'Blogisivu', - 'rssfeed_blog_description' => 'Blogisivun tiedostonimi linkkien generointia varten. Oletuskomponenttiosa käyttää tätä ominaisuutta.', - 'rssfeed_title' => 'RSS syöte', - 'rssfeed_description' => 'Generoi RSS syötteen sisältäen postaukset blogista.', - 'group_links' => 'Linkit', - 'group_exceptions' => 'Poikkeukset' - ], - 'sorting' => [ - 'title_asc' => 'Otsikko (ascending)', - 'title_desc' => 'Otsikko (descending)', - 'created_asc' => 'Luotu (ascending)', - 'created_desc' => 'Luotu (descending)', - 'updated_asc' => 'Päivitetty (ascending)', - 'updated_desc' => 'Päivitetty (descending)', - 'published_asc' => 'Julkaistu (ascending)', - 'published_desc' => 'Julkaistu (descending)', - 'random' => 'Satunnainen' - ], - 'import' => [ - 'update_existing_label' => 'Päivitä olemassa olevat postaukset', - 'update_existing_comment' => 'Valitse tämä laatikko päivittääksesi postaukset, joissa on täsmälleen sama ID, otsikko tai slugi.', - 'auto_create_categories_label' => 'Luo tuotavassa tiedostossa määritellyt kategoriat.', - 'auto_create_categories_comment' => 'Sinun tulisi yhdistää Kategoriat-sarake käyttääksesi tätä toiminnallisuutta. Muussa tapauksessa valitse oletuskategoria alapuolelta.', - 'categories_label' => 'Kategoriat', - 'categories_comment' => 'Valitse kategoriat, joihin tuotavat postaukset liitetään (option).', - 'default_author_label' => 'Oletuskirjoittaja (optio)', - 'default_author_comment' => 'Tuonti yrittää käyttää Kirjoittaja tiedon sähköpostia yhdistäessään kirjoittajaa. Muussa tapauksessa käytetään ylempänä määriteltyä.', - 'default_author_placeholder' => '-- valitse kirjoittaja --' - ] -]; diff --git a/lang/fr.json b/lang/fr.json new file mode 100644 index 00000000..0e846db9 --- /dev/null +++ b/lang/fr.json @@ -0,0 +1,128 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Une plateforme de blog robuste.", + "Manage Blog Posts": "Gestion d\u2019articles de blog", + "Posts": "Articles", + "Blog post": "article de blog", + "Categories": "Catégories", + "Blog category": "catégorie d\u2019articles", + "Manage the blog posts": "Gérer les articles", + "Manage the blog categories": "Gérer les catégories", + "Manage other users blog posts": "Gérer les articles d\u2019autres utilisateurs", + "Allowed to import and export posts": "Autorisé à importer et exporter des articles", + "Allowed to publish posts": "Autorisé à publier des articles", + "Manage blog settings": "Gérer les paramètres du blog", + "Are you sure?": "Confirmez-vous la suppression des articles sélectionnés ?", + "Published": "Publié", + "Drafts": "Brouillons", + "Total": "Total", + "Manage blog settings": "Gérer les paramètres du blog", + "Show All Posts to Backend Users": "Afficher tous les messages aux utilisateurs du panneaux d\u2019administration", + "Display both published and unpublished posts on the frontend to backend users": "Afficher autant les publications publiées et non publiées sur le site web pour les utilisateurs principaux", + "General": "Général", + "Manage the blog posts": "Gérer les articles du blog", + "Category": "Catégorie", + "Date": "Date", + "New Post": "Nouvel article", + "Export Posts": "Exporter les articles", + "Import Posts": "Importer des articles", + "Title": "Titre", + "New post title": "Titre du nouvel article", + "Content": "Contenu", + "HTML Content": "Contenu HTML", + "Slug": "Adresse", + "new-post-slug": "adresse-du-nouvel-article", + "Author Email": "Email de l\u2019auteur", + "Created": "Créé", + "Created date": "Date de création", + "Updated": "Mis a jour", + "Updated date": "Date de mise à jour", + "Published by": "Publié par", + "Current user": "Utilisateur actuel", + "Published date": "Date de publication", + "Please specify the published date": "Veuillez préciser la date de publication", + "Edit": "Rédaction", + "Select categories the blog post belongs to": "Sélectionnez les catégories auxquelles l\u2019article est lié", + "There are no categories, you should create one first!": "Il n\u2019existe pas encore de catégorie, mais vous pouvez en créer une !", + "Manage": "Configuration", + "Published on": "Publié le", + "Excerpt": "Extrait", + "Summary": "Résumé", + "Featured Images": "Image de promotion", + "Delete this post?": "Confirmez-vous la suppression de cet article ?", + "Successfully deleted those posts.": "Ces articles ont été supprimés avec succès.", + "The post is not saved.": "L\u2019article n\u2019est pas enregistré.", + "Return to posts list": "Retour à la liste des articles", + "Posted in :categories on :date.": "Posté dans :categories le :date.", + "Posted on :date.": "Posté le :date.", + "M d, Y": "d M Y", + "Manage the blog categories": "Gérer les catégories", + "New Category": "Nouvelle catégorie", + "Uncategorized": "Non catégorisé", + "Name": "Nom", + "New category name": "Nom de la nouvelle catégorie", + "Description": "Description", + "new-category-slug": "adresse-de-la-nouvelle-catégorie", + "Delete this category?": "Confirmez-vous la suppression de cette catégorie ?", + "Successfully deleted those categories.": "Ces catégories ont été supprimés avec succès.", + "Return to the blog category list": "Retour à la liste des catégories", + "Reorder Categories": "Réorganiser les catégories", + "Blog Category": "Catégories du blog", + "All Blog Categories": "Toutes les catégories du blog", + "Blog Post": "Articles du blog", + "All Blog Posts": "Tous les articles du blog", + "Blog Category Posts": "Articles d\u2019une catégorie du blog", + "Category List": "Liste des catégories", + "Displays a list of blog categories on the page.": "Afficher une liste des catégories sur la page.", + "Category slug": "Adresse URL de la catégorie", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Adresse URL d\u2019accès à la catégorie. Cette propriété est utilisée par le partial par défaut du composant pour marquer la catégorie courante comme active.", + "Display empty categories": "Afficher les catégories vides.", + "Show categories that do not have any posts.": "Afficher les catégories qui ne sont liés à aucun article.", + "Category page": "Page des catégories", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nom de la page des catégories pour les liens de catégories. Cette propriété est utilisée par le partial par défaut du composant.", + "Post": "Article", + "Displays a blog post on the page.": "Affiche un article de blog sur la page.", + "Post slug": "Adresse URL de l\u2019article", + "Look up the blog post using the supplied slug value.": "Adresse URL d\u2019accès à l\u2019article.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nom de la page des catégories pour les liens de catégories. Cette propriété est utilisée par le partial par défaut du composant.", + "Post List": "Liste d\u2019articles", + "Displays a list of latest blog posts on the page.": "Affiche une liste des derniers articles de blog sur la page.", + "Page number": "Numéro de page", + "This value is used to determine what page the user is on.": "Cette valeur est utilisée pour déterminer à quelle page l\u2019utilisateur se trouve.", + "Category filter": "Filtre des catégories", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Entrez une adresse de catégorie ou un paramètre d\u2019URL pour filter les articles. Laissez vide pour afficher tous les articles.", + "Posts per page": "Articles par page", + "Invalid format of the posts per page value": "Format du nombre d\u2019articles par page incorrect", + "No posts message": "Message en l\u2019absence d\u2019articles", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Message à afficher dans la liste d\u2019articles lorsqu\u2019il n\u2019y a aucun article. Cette propriété est utilisée par le partial par défaut du composant.", + "No posts found": "Aucun article trouvé", + "Post order": "Ordre des articles", + "Attribute on which the posts should be ordered": "Attribut selon lequel les articles seront ordonnés", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Nom de la page des catégories pour les liens de catégories \u201CPublié dans\u201D. Cette propriété est utilisée par le partial par défaut du composant.", + "Post page": "Page d\u2019article", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Nom de la page d\u2019articles pour les liens \u201CEn savoir plus\u201D. Cette propriété est utilisée par le partial par défaut du composant.", + "Except post": "Article exempté", + "Blog page": "Page du blog", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Nom de la page principale du blog pour générer les liens. Cette propriété est utilisé par le composant dans le partial.", + "RSS Feed": "Flux RSS", + "Generates an RSS feed containing posts from the blog.": "Génère un Flux RSS contenant les articles du blog.", + "Links": "Liens", + "Exceptions": "Exceptions", + "Title (ascending)": "Titre (ascendant)", + "Title (descending)": "Titre (descendant)", + "Created (ascending)": "Création le (ascendant)", + "Created (descending)": "Création (descendant)", + "Updated (ascending)": "Mise à jour (ascendant)", + "Updated (descending)": "Mise à jour (descendant)", + "Published (ascending)": "Publication (ascendant)", + "Published (descending)": "Publication (descendant)", + "Random": "Aléatoire", + "Update existing posts": "Mettre à jour les articles existants", + "Check this box to update posts that have exactly the same ID, title or slug.": "Cochez cette case pour mettre à jour les articles qui ont exactement le même identifiant, titre ou slug.", + "Create categories specified in the import file": "Créer les catégories spécifiées dans le fichier d\u2019importation", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Vous devez faire correspondre la colonne Catégories pour utiliser cette fonctionnalité. Sinon, sélectionnez les catégories par défaut à utiliser parmi les éléments ci-dessous.", + "Select the categories that imported posts will belong to (optional).": "Sélectionnez les catégories auxquelles appartiendront les articles importées (facultatif).", + "Default post author (optional)": "Auteur par défaut (facultatif)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "L\u2019importation tentera d\u2019utiliser un auteur existant si vous correspondez la colonne Email à l\u2019auteur, sinon l\u2019auteur spécifié ci-dessus sera utilisé.", + "-- select author --": "-- sélectionnez l\u2019auteur --" +} diff --git a/lang/fr/lang.php b/lang/fr/lang.php deleted file mode 100644 index c2b86009..00000000 --- a/lang/fr/lang.php +++ /dev/null @@ -1,166 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Une plateforme de blog robuste.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Gestion d’articles de blog', - 'posts' => 'Articles', - 'create_post' => 'article de blog', - 'categories' => 'Catégories', - 'create_category' => 'catégorie d’articles', - 'tab' => 'Blog', - 'access_posts' => 'Gérer les articles', - 'access_categories' => 'Gérer les catégories', - 'access_other_posts' => 'Gérer les articles d’autres utilisateurs', - 'access_import_export' => 'Autorisé à importer et exporter des articles', - 'access_publish' => 'Autorisé à publier des articles', - 'manage_settings' => 'Gérer les paramètres du blog', - 'delete_confirm' => 'Confirmez-vous la suppression des articles sélectionnés ?', - 'chart_published' => 'Publié', - 'chart_drafts' => 'Brouillons', - 'chart_total' => 'Total', - 'settings_description' => 'Gérer les paramètres du blog', - 'show_all_posts_label' => "Afficher tous les messages aux utilisateurs du panneaux d'administration", - 'show_all_posts_comment' => 'Afficher autant les publications publiées et non publiées sur le site web pour les utilisateurs principaux', - 'tab_general' => 'Général' - ], - 'posts' => [ - 'list_title' => 'Gérer les articles du blog', - 'filter_category' => 'Catégorie', - 'filter_published' => 'Masquer la publication', - 'filter_date' => 'Date', - 'new_post' => 'Nouvel article', - 'export_post' => 'Exporter les articles', - 'import_post' => 'Importer des articles' - ], - 'post' => [ - 'title' => 'Titre', - 'title_placeholder' => 'Titre du nouvel article', - 'content' => 'Contenu', - 'content_html' => 'Contenu HTML', - 'slug' => 'Adresse', - 'slug_placeholder' => 'adresse-du-nouvel-article', - 'categories' => 'Catégories', - 'author_email' => 'Email de l’auteur', - 'created' => 'Créé', - 'created_date' => 'Date de création', - 'updated' => 'Mis a jour', - 'updated_date' => 'Date de mise à jour', - 'published' => 'Publié', - 'published_by' => 'Publié par', - 'current_user' => 'Utilisateur actuel', - 'published_date' => 'Date de publication', - 'published_validation' => 'Veuillez préciser la date de publication', - 'tab_edit' => 'Rédaction', - 'tab_categories' => 'Catégories', - 'categories_comment' => 'Sélectionnez les catégories auxquelles l’article est lié', - 'categories_placeholder' => 'Il n’existe pas encore de catégorie, mais vous pouvez en créer une !', - 'tab_manage' => 'Configuration', - 'published_on' => 'Publié le', - 'excerpt' => 'Extrait', - 'summary' => 'Résumé', - 'featured_images' => 'Image de promotion', - 'delete_confirm' => 'Confirmez-vous la suppression de cet article ?', - 'delete_success' => 'Ces articles ont été supprimés avec succès.', - 'close_confirm' => 'L’article n’est pas enregistré.', - 'return_to_posts' => 'Retour à la liste des articles', - 'posted_byline' => 'Posté dans :categories le :date.', - 'posted_byline_no_categories' => 'Posté le :date.', - 'date_format' => 'd M Y' - ], - 'categories' => [ - 'list_title' => 'Gérer les catégories', - 'new_category' => 'Nouvelle catégorie', - 'uncategorized' => 'Non catégorisé' - ], - 'category' => [ - 'name' => 'Nom', - 'name_placeholder' => 'Nom de la nouvelle catégorie', - 'description' => 'Description', - 'slug' => 'Adresse URL', - 'slug_placeholder' => 'adresse-de-la-nouvelle-catégorie', - 'posts' => 'Articles', - 'delete_confirm' => 'Confirmez-vous la suppression de cette catégorie ?', - 'delete_success' => 'Ces catégories ont été supprimés avec succès.', - 'return_to_categories' => 'Retour à la liste des catégories', - 'reorder' => 'Réorganiser les catégories' - ], - 'menuitem' => [ - 'blog_category' => 'Catégories du blog', - 'all_blog_categories' => 'Toutes les catégories du blog', - 'blog_post' => 'Articles du blog', - 'all_blog_posts' => 'Tous les articles du blog', - 'category_blog_posts' => "Articles d'une catégorie du blog" - ], - 'settings' => [ - 'category_title' => 'Liste des catégories', - 'category_description' => 'Afficher une liste des catégories sur la page.', - 'category_slug' => 'Adresse URL de la catégorie', - 'category_slug_description' => 'Adresse URL d’accès à la catégorie. Cette propriété est utilisée par le partial par défaut du composant pour marquer la catégorie courante comme active.', - 'category_display_empty' => 'Afficher les catégories vides.', - 'category_display_empty_description' => 'Afficher les catégories qui ne sont liés à aucun article.', - 'category_page' => 'Page des catégories', - 'category_page_description' => 'Nom de la page des catégories pour les liens de catégories. Cette propriété est utilisée par le partial par défaut du composant.', - 'post_title' => 'Article', - 'post_description' => 'Affiche un article de blog sur la page.', - 'post_slug' => 'Adresse URL de l’article', - 'post_slug_description' => 'Adresse URL d’accès à l’article.', - 'post_category' => 'Page des catégories', - 'post_category_description' => 'Nom de la page des catégories pour les liens de catégories. Cette propriété est utilisée par le partial par défaut du composant.', - 'posts_title' => 'Liste d’articles', - 'posts_description' => 'Affiche une liste des derniers articles de blog sur la page.', - 'posts_pagination' => 'Numéro de page', - 'posts_pagination_description' => 'Cette valeur est utilisée pour déterminer à quelle page l’utilisateur se trouve.', - 'posts_filter' => 'Filtre des catégories', - 'posts_filter_description' => 'Entrez une adresse de catégorie ou un paramètre d’URL pour filter les articles. Laissez vide pour afficher tous les articles.', - 'posts_per_page' => 'Articles par page', - 'posts_per_page_validation' => 'Format du nombre d’articles par page incorrect', - 'posts_no_posts' => 'Message en l’absence d’articles', - 'posts_no_posts_description' => 'Message à afficher dans la liste d’articles lorsqu’il n’y a aucun article. Cette propriété est utilisée par le partial par défaut du composant.', - 'posts_no_posts_default' => 'Aucun article trouvé', - 'posts_order' => 'Ordre des articles', - 'posts_order_description' => 'Attribut selon lequel les articles seront ordonnés', - 'posts_category' => 'Page de catégorie', - 'posts_category_description' => 'Nom du fichier de la page de catégorie pour les liens de catégorie "Publié dans". Cette propriété est utilisée par le composant par défaut du modèle partiel.', - 'posts_post' => "Page de l'article", - 'posts_post_description' => 'Nom du fichier de la page de l\'article du blog pour les liens "En savoir plus". Cette propriété est utilisée par le composant par défaut du modèle partiel.', - 'posts_except_post' => 'Article exempté', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - 'posts_category' => 'Page des catégories', - 'posts_category_description' => 'Nom de la page des catégories pour les liens de catégories "Publié dans". Cette propriété est utilisée par le partial par défaut du composant.', - 'posts_post' => 'Page d’article', - 'posts_post_description' => 'Nom de la page d’articles pour les liens "En savoir plus". Cette propriété est utilisée par le partial par défaut du composant.', - 'rssfeed_blog' => 'Page du blog', - 'rssfeed_blog_description' => 'Nom de la page principale du blog pour générer les liens. Cette propriété est utilisé par le composant dans le partial.', - 'rssfeed_title' => 'Flux RSS', - 'rssfeed_description' => 'Génère un Flux RSS contenant les articles du blog.', - 'group_links' => 'Liens', - 'group_exceptions' => 'Exceptions' - ], - 'sorting' => [ - 'title_asc' => 'Titre (ascendant)', - 'title_desc' => 'Titre (descendant)', - 'created_asc' => 'Création le (ascendant)', - 'created_desc' => 'Création (descendant)', - 'updated_asc' => 'Mise à jour (ascendant)', - 'updated_desc' => 'Mise à jour (descendant)', - 'published_asc' => 'Publication (ascendant)', - 'published_desc' => 'Publication (descendant)', - 'random' => 'Aléatoire' - ], - 'import' => [ - 'update_existing_label' => 'Mettre à jour les articles existants', - 'update_existing_comment' => 'Cochez cette case pour mettre à jour les articles qui ont exactement le même identifiant, titre ou slug.', - 'auto_create_categories_label' => "Créer les catégories spécifiées dans le fichier d'importation", - 'auto_create_categories_comment' => 'Vous devez faire correspondre la colonne Catégories pour utiliser cette fonctionnalité. Sinon, sélectionnez les catégories par défaut à utiliser parmi les éléments ci-dessous.', - 'categories_label' => 'Catégories', - 'categories_comment' => 'Sélectionnez les catégories auxquelles appartiendront les articles importées (facultatif).', - 'default_author_label' => 'Auteur par défaut (facultatif)', - 'default_author_comment' => "L'importation tentera d'utiliser un auteur existant si vous correspondez la colonne Email à l'auteur, sinon l'auteur spécifié ci-dessus sera utilisé.", - 'default_author_placeholder' => "-- sélectionnez l'auteur --" - ] -]; diff --git a/lang/hu.json b/lang/hu.json new file mode 100644 index 00000000..49838f52 --- /dev/null +++ b/lang/hu.json @@ -0,0 +1,132 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Teljeskörű blog alkalmazás.", + "Manage Blog Posts": "Blog bejegyzések kezelése", + "Posts": "Bejegyzések", + "Blog post": "blog bejegyzés", + "Categories": "Kategóriák", + "Blog category": "blog kategória", + "Manage the blog posts": "Blog bejegyzések kezelése", + "Manage the blog categories": "Blog kategóriák kezelése", + "Manage other users blog posts": "Más felhasználók bejegyzéseinek kezelése", + "Allowed to import and export posts": "Bejegyzések importálása és exportálása", + "Allowed to publish posts": "Blog bejegyzések közzététele", + "Manage blog settings": "Blog beállítások kezelése", + "Are you sure?": "Törölni akarja a kijelölt bejegyzéseket?", + "Published": "Közzétéve", + "Drafts": "Piszkozatok", + "Total": "Összesen", + "Manage blog settings": "Beállítási lehetőségek.", + "Show All Posts to Backend Users": "Az összes bejegyzés mutatása az adminisztrátorok számára", + "Display both published and unpublished posts on the frontend to backend users": "A közzétett és a még nem publikált bejegyzések is egyaránt meg fognak jelenni az oldal szerkesztőinek.", + "General": "Általános", + "Manage the blog posts": "Blog bejegyzések", + "Category": "Kategória", + "Date": "Létrehozva", + "New Post": "Új bejegyzés", + "Export Posts": "Exportálás", + "Import Posts": "Importálás", + "Title": "Cím", + "New post title": "Új bejegyzés címe", + "Content": "Szöveges tartalom", + "HTML Content": "HTML tartalom", + "Slug": "Keresőbarát cím", + "new-post-slug": "uj-bejegyzes-cime", + "Author Email": "Szerző e-mail címe", + "Created": "Létrehozva", + "Created date": "Létrehozás dátuma", + "Updated": "Módosítva", + "Updated date": "Módosítás dátuma", + "Published by": "Szerző:", + "Current user": "Felhasználó", + "Published date": "Közzététel dátuma", + "Please specify the published date": "Adja meg a közzététel dátumát", + "Edit": "Szerkesztés", + "Select categories the blog post belongs to": "Jelölje be azokat a kategóriákat, melyekbe be akarja sorolni a bejegyzést", + "There are no categories, you should create one first!": "Nincsenek kategóriák, előbb létre kell hoznia egyet!", + "Manage": "Kezelés", + "Published on": "Közzététel dátuma", + "Excerpt": "Kivonat", + "Summary": "Összegzés", + "Featured Images": "Kiemelt képek", + "Delete this post?": "Valóban törölni akarja ezt a bejegyzést?", + "Successfully deleted those posts.": "Sikeresen törölve lettek a bejegyzések.", + "The post is not saved.": "A bejegyzés nem került mentésre.", + "Return to posts list": "Vissza a bejegyzésekhez", + "Posted in :categories on :date.": "Publikálva: :date, itt: :categories", + "Posted on :date.": "Publikálva: :date.", + "M d, Y": "Y.M.d.", + "Manage the blog categories": "Blog kategóriák", + "New Category": "Új kategória", + "Uncategorized": "Nincs kategorizálva", + "Name": "Név", + "New category name": "Új kategória neve", + "Description": "Leírás", + "new-category-slug": "uj-kategoria-neve", + "Delete this category?": "Valóban törölni akarja ezt a kategóriát?", + "Successfully deleted those categories.": "Sikeresen törölve lettek a kategóriák.", + "Return to the blog category list": "Vissza a kategóriákhoz", + "Reorder Categories": "Kategóriák sorrendje", + "Blog Category": "Blog kategória", + "All Blog Categories": "Összes blog kategória", + "Blog Post": "Blog bejegyzés", + "All Blog Posts": "Összes blog bejegyzés", + "Blog Category Posts": "Blog kategória bejegyzések", + "Category List": "Blog kategória lista", + "Displays a list of blog categories on the page.": "A blog kategóriákat listázza ki a lapon.", + "Category slug": "Cím paraméter neve", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "A webcím útvonal paramétere a jelenlegi kategória keresőbarát címe alapján való kereséséhez. Az alapértelmezett komponensrész ezt a tulajdonságot használja a jelenleg aktív kategória megjelöléséhez.", + "Display empty categories": "Üres kategóriák kijelzése", + "Show categories that do not have any posts.": "Azon kategóriák megjelenítése, melyekben nincs egy bejegyzés sem.", + "Category page": "Kategória lap", + "Name of the category page file for the category links. This property is used by the default component partial.": "A kategória hivatkozások kategória lap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.", + "Post": "Blog bejegyzés", + "Displays a blog post on the page.": "Egy blog bejegyzést jelez ki a lapon.", + "Post slug": "Cím paraméter neve", + "Look up the blog post using the supplied slug value.": "A webcím útvonal paramétere a bejegyzés keresőbarát címe alapján való kereséséhez.", + "Name of the category page file for the category links. This property is used by the default component partial.": "A kategória hivatkozások kategória lap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.", + "Post List": "Blog bejegyzések", + "Displays a list of latest blog posts on the page.": "A közzétett blog bejegyzések listázása a honlapon.", + "Page number": "Lapozósáv paraméter neve", + "This value is used to determine what page the user is on.": "A lapozósáv lapjai által használt, várt paraméter neve.", + "Category filter": "Kategória szűrő", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Adja meg egy kategória keresőbarát címét vagy webcím paraméterét a bejegyzések szűréséhez. Hagyja üresen az összes bejegyzés megjelenítéséhez.", + "Posts per page": "Bejegyzések laponként", + "Invalid format of the posts per page value": "A laponkénti bejegyzések értéke érvénytelen formátumú", + "No posts message": "Üzenet ha nincs bejegyzés", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "A blog bejegyzés listában kijelezendő üzenet abban az esetben, ha nincsenek bejegyzések. Az alapértelmezett komponensrész használja ezt a tulajdonságot.", + "No posts found": "Nem található bejegyzés", + "Post order": "Bejegyzések sorrendje", + "Attribute on which the posts should be ordered": "Jellemző, ami alapján rendezni kell a bejegyzéseket", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "A \u201CKategória\u201D kategória hivatkozások kategória lap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.", + "Post page": "Bejegyzéslap", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "A \u201CTovább olvasom\u201D hivatkozások blog bejegyzéslap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.", + "Except post": "Bejegyzés kizárása", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "A kivételnek webcímnek, illetve azonosítónak, vagy pedig ezeknek a vesszővel elválasztott felsorolásának kell lennie.", + "Except categories": "Kategória kizárása", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Adja meg azoknak a kategóriáknak a webcímét vesszővel elválasztva, amiket nem akar megjeleníteni a listázáskor.", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "A kivételnek webcímnek, vagy pedig ezeknek a vesszővel elválasztott felsorolásának kell lennie.", + "Blog page": "Blog oldal", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Annak a lapnak a neve, ahol listázódnak a blog bejegyzések. Ezt a beállítást használja alapértelmezetten a blog komponens is.", + "RSS Feed": "RSS hírfolyam", + "Generates an RSS feed containing posts from the blog.": "A bloghoz tartozó RSS hírfolyam generálása.", + "Links": "Hivatkozások", + "Exceptions": "Kivételek", + "Title (ascending)": "Név (növekvő)", + "Title (descending)": "Név (csökkenő)", + "Created (ascending)": "Létrehozva (növekvő)", + "Created (descending)": "Létrehozva (csökkenő)", + "Updated (ascending)": "Frissítve (növekvő)", + "Updated (descending)": "Frissítve (csökkenő)", + "Published (ascending)": "Publikálva (növekvő)", + "Published (descending)": "Publikálva (csökkenő)", + "Random": "Véletlenszerű", + "Update existing posts": "Meglévő bejegyzések frissítése", + "Check this box to update posts that have exactly the same ID, title or slug.": "Két bejegyzés akkor számít ugyanannak, ha megegyezik az azonosító számuk, a címük vagy a webcímük.", + "Create categories specified in the import file": "Az import fájlban megadott kategóriák létrehozása", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "A funkció használatához meg kell felelnie a Kategóriák oszlopnak, különben az alábbi elemekből válassza ki az alapértelmezett kategóriákat.", + "Select the categories that imported posts will belong to (optional).": "Válassza ki azokat a kategóriákat, amelyekhez az importált bejegyzések tartoznak (nem kötelező).", + "Default post author (optional)": "Alapértelmezett szerző (nem kötelező)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "A rendszer megpróbál egy meglévő felhasználót társítani a bejegyzéshez az Email oszlop alapján. Amennyiben ez nem sikerül, az itt megadott szerzőt fogja alapul venni.", + "-- select author --": "-- válasszon felhasználót --" +} diff --git a/lang/hu/lang.php b/lang/hu/lang.php deleted file mode 100644 index e996f609..00000000 --- a/lang/hu/lang.php +++ /dev/null @@ -1,166 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Teljeskörű blog alkalmazás.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Blog bejegyzések kezelése', - 'posts' => 'Bejegyzések', - 'create_post' => 'blog bejegyzés', - 'categories' => 'Kategóriák', - 'create_category' => 'blog kategória', - 'tab' => 'Blog', - 'access_posts' => 'Blog bejegyzések kezelése', - 'access_categories' => 'Blog kategóriák kezelése', - 'access_other_posts' => 'Más felhasználók bejegyzéseinek kezelése', - 'access_import_export' => 'Bejegyzések importálása és exportálása', - 'access_publish' => 'Blog bejegyzések közzététele', - 'manage_settings' => 'Blog beállítások kezelése', - 'delete_confirm' => 'Törölni akarja a kijelölt bejegyzéseket?', - 'chart_published' => 'Közzétéve', - 'chart_drafts' => 'Piszkozatok', - 'chart_total' => 'Összesen', - 'settings_description' => 'Beállítási lehetőségek.', - 'show_all_posts_label' => 'Az összes bejegyzés mutatása az adminisztrátorok számára', - 'show_all_posts_comment' => 'A közzétett és a még nem publikált bejegyzések is egyaránt meg fognak jelenni az oldal szerkesztőinek.', - 'tab_general' => 'Általános' - ], - 'posts' => [ - 'list_title' => 'Blog bejegyzések', - 'filter_category' => 'Kategória', - 'filter_published' => 'Közzétéve', - 'filter_date' => 'Létrehozva', - 'new_post' => 'Új bejegyzés', - 'export_post' => 'Exportálás', - 'import_post' => 'Importálás' - ], - 'post' => [ - 'title' => 'Cím', - 'title_placeholder' => 'Új bejegyzés címe', - 'content' => 'Szöveges tartalom', - 'content_html' => 'HTML tartalom', - 'slug' => 'Keresőbarát cím', - 'slug_placeholder' => 'uj-bejegyzes-cime', - 'categories' => 'Kategóriák', - 'author_email' => 'Szerző e-mail címe', - 'created' => 'Létrehozva', - 'created_date' => 'Létrehozás dátuma', - 'updated' => 'Módosítva', - 'updated_date' => 'Módosítás dátuma', - 'published' => 'Közzétéve', - 'published_by' => 'Szerző:', - 'current_user' => 'Felhasználó', - 'published_date' => 'Közzététel dátuma', - 'published_validation' => 'Adja meg a közzététel dátumát', - 'tab_edit' => 'Szerkesztés', - 'tab_categories' => 'Kategóriák', - 'categories_comment' => 'Jelölje be azokat a kategóriákat, melyekbe be akarja sorolni a bejegyzést', - 'categories_placeholder' => 'Nincsenek kategóriák, előbb létre kell hoznia egyet!', - 'tab_manage' => 'Kezelés', - 'published_on' => 'Közzététel dátuma', - 'excerpt' => 'Kivonat', - 'summary' => 'Összegzés', - 'featured_images' => 'Kiemelt képek', - 'delete_confirm' => 'Valóban törölni akarja ezt a bejegyzést?', - 'delete_success' => 'Sikeresen törölve lettek a bejegyzések.', - 'close_confirm' => 'A bejegyzés nem került mentésre.', - 'return_to_posts' => 'Vissza a bejegyzésekhez', - 'posted_byline' => 'Publikálva: :date, itt: :categories', - 'posted_byline_no_categories' => 'Publikálva: :date.', - 'date_format' => 'Y.M.d.', - ], - 'categories' => [ - 'list_title' => 'Blog kategóriák', - 'new_category' => 'Új kategória', - 'uncategorized' => 'Nincs kategorizálva' - ], - 'category' => [ - 'name' => 'Név', - 'name_placeholder' => 'Új kategória neve', - 'description' => 'Leírás', - 'slug' => 'Keresőbarát cím', - 'slug_placeholder' => 'uj-kategoria-neve', - 'posts' => 'Bejegyzések', - 'delete_confirm' => 'Valóban törölni akarja ezt a kategóriát?', - 'delete_success' => 'Sikeresen törölve lettek a kategóriák.', - 'return_to_categories' => 'Vissza a kategóriákhoz', - 'reorder' => 'Kategóriák sorrendje' - ], - 'menuitem' => [ - 'blog_category' => 'Blog kategória', - 'all_blog_categories' => 'Összes blog kategória', - 'blog_post' => 'Blog bejegyzés', - 'all_blog_posts' => 'Összes blog bejegyzés', - 'category_blog_posts' => 'Blog kategória bejegyzések' - ], - 'settings' => [ - 'category_title' => 'Blog kategória lista', - 'category_description' => 'A blog kategóriákat listázza ki a lapon.', - 'category_slug' => 'Cím paraméter neve', - 'category_slug_description' => 'A webcím útvonal paramétere a jelenlegi kategória keresőbarát címe alapján való kereséséhez. Az alapértelmezett komponensrész ezt a tulajdonságot használja a jelenleg aktív kategória megjelöléséhez.', - 'category_display_empty' => 'Üres kategóriák kijelzése', - 'category_display_empty_description' => 'Azon kategóriák megjelenítése, melyekben nincs egy bejegyzés sem.', - 'category_page' => 'Kategória lap', - 'category_page_description' => 'A kategória hivatkozások kategória lap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.', - 'post_title' => 'Blog bejegyzés', - 'post_description' => 'Egy blog bejegyzést jelez ki a lapon.', - 'post_slug' => 'Cím paraméter neve', - 'post_slug_description' => 'A webcím útvonal paramétere a bejegyzés keresőbarát címe alapján való kereséséhez.', - 'post_category' => 'Kategória lap', - 'post_category_description' => 'A kategória hivatkozások kategória lap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.', - 'posts_title' => 'Blog bejegyzések', - 'posts_description' => 'A közzétett blog bejegyzések listázása a honlapon.', - 'posts_pagination' => 'Lapozósáv paraméter neve', - 'posts_pagination_description' => 'A lapozósáv lapjai által használt, várt paraméter neve.', - 'posts_filter' => 'Kategória szűrő', - 'posts_filter_description' => 'Adja meg egy kategória keresőbarát címét vagy webcím paraméterét a bejegyzések szűréséhez. Hagyja üresen az összes bejegyzés megjelenítéséhez.', - 'posts_per_page' => 'Bejegyzések laponként', - 'posts_per_page_validation' => 'A laponkénti bejegyzések értéke érvénytelen formátumú', - 'posts_no_posts' => 'Üzenet ha nincs bejegyzés', - 'posts_no_posts_description' => 'A blog bejegyzés listában kijelezendő üzenet abban az esetben, ha nincsenek bejegyzések. Az alapértelmezett komponensrész használja ezt a tulajdonságot.', - 'posts_no_posts_default' => 'Nem található bejegyzés', - 'posts_order' => 'Bejegyzések sorrendje', - 'posts_order_description' => 'Jellemző, ami alapján rendezni kell a bejegyzéseket', - 'posts_category' => 'Kategória lap', - 'posts_category_description' => 'A "Kategória" kategória hivatkozások kategória lap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.', - 'posts_post' => 'Bejegyzéslap', - 'posts_post_description' => 'A "Tovább olvasom" hivatkozások blog bejegyzéslap fájljának neve. Az alapértelmezett komponensrész használja ezt a tulajdonságot.', - 'posts_except_post' => 'Bejegyzés kizárása', - 'posts_except_post_description' => 'Adja meg annak a bejegyzésnek az azonosítóját vagy webcímét, amit nem akar megjeleníteni a listázáskor.', - 'posts_except_post_validation' => 'A kivételnek webcímnek, illetve azonosítónak, vagy pedig ezeknek a vesszővel elválasztott felsorolásának kell lennie.', - 'posts_except_categories' => 'Kategória kizárása', - 'posts_except_categories_description' => 'Adja meg azoknak a kategóriáknak a webcímét vesszővel elválasztva, amiket nem akar megjeleníteni a listázáskor.', - 'posts_except_categories_validation' => 'A kivételnek webcímnek, vagy pedig ezeknek a vesszővel elválasztott felsorolásának kell lennie.', - 'rssfeed_blog' => 'Blog oldal', - 'rssfeed_blog_description' => 'Annak a lapnak a neve, ahol listázódnak a blog bejegyzések. Ezt a beállítást használja alapértelmezetten a blog komponens is.', - 'rssfeed_title' => 'RSS hírfolyam', - 'rssfeed_description' => 'A bloghoz tartozó RSS hírfolyam generálása.', - 'group_links' => 'Hivatkozások', - 'group_exceptions' => 'Kivételek' - ], - 'sorting' => [ - 'title_asc' => 'Név (növekvő)', - 'title_desc' => 'Név (csökkenő)', - 'created_asc' => 'Létrehozva (növekvő)', - 'created_desc' => 'Létrehozva (csökkenő)', - 'updated_asc' => 'Frissítve (növekvő)', - 'updated_desc' => 'Frissítve (csökkenő)', - 'published_asc' => 'Publikálva (növekvő)', - 'published_desc' => 'Publikálva (csökkenő)', - 'random' => 'Véletlenszerű' - ], - 'import' => [ - 'update_existing_label' => 'Meglévő bejegyzések frissítése', - 'update_existing_comment' => 'Két bejegyzés akkor számít ugyanannak, ha megegyezik az azonosító számuk, a címük vagy a webcímük.', - 'auto_create_categories_label' => 'Az import fájlban megadott kategóriák létrehozása', - 'auto_create_categories_comment' => 'A funkció használatához meg kell felelnie a Kategóriák oszlopnak, különben az alábbi elemekből válassza ki az alapértelmezett kategóriákat.', - 'categories_label' => 'Kategóriák', - 'categories_comment' => 'Válassza ki azokat a kategóriákat, amelyekhez az importált bejegyzések tartoznak (nem kötelező).', - 'default_author_label' => 'Alapértelmezett szerző (nem kötelező)', - 'default_author_comment' => 'A rendszer megpróbál egy meglévő felhasználót társítani a bejegyzéshez az Email oszlop alapján. Amennyiben ez nem sikerül, az itt megadott szerzőt fogja alapul venni.', - 'default_author_placeholder' => '-- válasszon felhasználót --' - ] -]; diff --git a/lang/it.json b/lang/it.json new file mode 100644 index 00000000..386badc2 --- /dev/null +++ b/lang/it.json @@ -0,0 +1,80 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Una solida piattaforma di blogging.", + "Manage Blog Posts": "Gestisci i post", + "Posts": "Post", + "Blog post": "post del blog", + "Categories": "Categorie", + "Blog category": "categorie del blog", + "Manage the blog posts": "Gestisci i post", + "Manage the blog categories": "Gestisci le categorie", + "Manage other users blog posts": "Gestisci i post di altri utenti", + "Allowed to import and export posts": "Permesso ad importare ed esportare i post", + "Are you sure?": "Sei sicuro?", + "Published": "Pubblicato", + "Drafts": "Bozze", + "Total": "Totale", + "Manage the blog posts": "Gestisci i post", + "New Post": "Nuovo post", + "Title": "Titolo", + "New post title": "Titolo del nuovo post", + "Content": "Contenuto", + "HTML Content": "Contenuto HTML", + "Slug": "Slug", + "new-post-slug": "slug-del-nuovo-post", + "Author Email": "Email dell'autore", + "Created": "Creato", + "Created date": "Data di creazione", + "Updated": "Aggiornato", + "Updated date": "Data di aggiornamento", + "Published date": "Data di pubblicazione", + "Please specify the published date": "Per favore fornisci la data di pubblicazione", + "Edit": "Modifica", + "Select categories the blog post belongs to": "Seleziona le categorie a cui appartiene il post", + "There are no categories, you should create one first!": "Non ci sono categorie, per iniziare dovresti crearne una!", + "Manage": "Gestisci", + "Published on": "Pubblicato il", + "Excerpt": "Estratto", + "Summary": "Riassunto", + "Featured Images": "Immagini in evidenza", + "Delete this post?": "Vuoi veramente cancellare questo post?", + "The post is not saved.": "Questo post non è salvato.", + "Return to posts list": "Ritorna all'elenco dei post", + "Manage the blog categories": "Gestisci le categorie del blog", + "New Category": "Nuova categoria", + "Uncategorized": "Non categorizzato", + "Name": "Nome", + "New category name": "Nome della nuova categoria", + "new-category-slug": "slug-nuova-categoria", + "Delete this category?": "Vuoi veramente cancellare questa categoria?", + "Return to the blog category list": "Ritorna all'elenco delle categorie del blog", + "Reorder Categories": "Riordino Categorie", + "Category List": "Elenco Categorie", + "Displays a list of blog categories on the page.": "Mostra un'elenco delle categorie del blog sulla pagina.", + "Category slug": "Slug categoria", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Cerca la categoria del blog usando lo slug fornito. Questa proprietà è usata dal componente parziale di default per segnare la categoria attualmente usata.", + "Display empty categories": "Mostra categorie vuote", + "Show categories that do not have any posts.": "Mostra categorie che non hanno alcun post.", + "Category page": "Pagina delle categorie", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nome del file della pagina delle categorie contenente i link delle categorie. Questa proprietà è usata dal componente parziale di default.", + "Post": "Post", + "Displays a blog post on the page.": "Mostra un post sulla pagina.", + "Post slug": "Slug del post", + "Look up the blog post using the supplied slug value.": "Cerca il post con lo slug fornito.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nome del file della pagina delle categorie contenente i link delle categorie. Questa proprietà è usata dal componente parziale di default.", + "Post List": "Elenco dei post", + "Displays a list of latest blog posts on the page.": "Mostra un'elenco degli ultimi post sulla pagina.", + "Page number": "Numero di pagina", + "This value is used to determine what page the user is on.": "Questo valore è usato per determinare su quale pagina è l'utente.", + "Category filter": "Filtro delle categorie", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Inserisci lo slug di una categoria o un parametro dell'URL con il quale filtrare i post. Lascia vuoto per mostrare tutti i post.", + "Posts per page": "Post per pagina", + "Invalid format of the posts per page value": "Il valore di post per pagina ha un formato non valido ", + "No posts message": "Messaggio per l'assenza di post", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Messaggio da mostrare nell'elenco dei post in caso non ce ne siano. Questa proprietà è usata dal componente parziale di default.", + "Post order": "Ordine dei post", + "Attribute on which the posts should be ordered": "Attributo sul quale i post dovrebbero esser ordinati", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Nome del file per la pagina delle categorie per i link \"Postato in\" alle categorie. Questa proprietà è usata dal componente parziale di default.", + "Post page": "Pagina del post", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Nome del file per la pagina del post per i link \"Scopri di più\". Questa proprietà è usata dal componente parziale di default." +} diff --git a/lang/it/lang.php b/lang/it/lang.php deleted file mode 100644 index 0eade81a..00000000 --- a/lang/it/lang.php +++ /dev/null @@ -1,107 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Una solida piattaforma di blogging.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Gestisci i post', - 'posts' => 'Post', - 'create_post' => 'post del blog', - 'categories' => 'Categorie', - 'create_category' => 'categorie del blog', - 'tab' => 'Blog', - 'access_posts' => 'Gestisci i post', - 'access_categories' => 'Gestisci le categorie', - 'access_other_posts' => 'Gestisci i post di altri utenti', - 'access_import_export' => 'Permesso ad importare ed esportare i post', - 'delete_confirm' => 'Sei sicuro?', - 'chart_published' => 'Pubblicato', - 'chart_drafts' => 'Bozze', - 'chart_total' => 'Totale' - ], - 'posts' => [ - 'list_title' => 'Gestisci i post', - 'category' => 'Categoria', - 'hide_published' => 'Nascondi pubblicati', - 'new_post' => 'Nuovo post' - ], - 'post' => [ - 'title' => 'Titolo', - 'title_placeholder' => 'Titolo del nuovo post', - 'content' => 'Contenuto', - 'content_html' => 'Contenuto HTML', - 'slug' => 'Slug', - 'slug_placeholder' => 'slug-del-nuovo-post', - 'categories' => 'Categorie', - 'author_email' => 'Email dell\'autore', - 'created' => 'Creato', - 'created_date' => 'Data di creazione', - 'updated' => 'Aggiornato', - 'updated_date' => 'Data di aggiornamento', - 'published' => 'Pubblicato', - 'published_date' => 'Data di pubblicazione', - 'published_validation' => 'Per favore fornisci la data di pubblicazione', - 'tab_edit' => 'Modifica', - 'tab_categories' => 'Categorie', - 'categories_comment' => 'Seleziona le categorie a cui appartiene il post', - 'categories_placeholder' => 'Non ci sono categorie, per iniziare dovresti crearne una!', - 'tab_manage' => 'Gestisci', - 'published_on' => 'Pubblicato il', - 'excerpt' => 'Estratto', - 'summary' => 'Riassunto', - 'featured_images' => 'Immagini in evidenza', - 'delete_confirm' => 'Vuoi veramente cancellare questo post?', - 'close_confirm' => 'Questo post non è salvato.', - 'return_to_posts' => 'Ritorna all\'elenco dei post' - ], - 'categories' => [ - 'list_title' => 'Gestisci le categorie del blog', - 'new_category' => 'Nuova categoria', - 'uncategorized' => 'Non categorizzato' - ], - 'category' => [ - 'name' => 'Nome', - 'name_placeholder' => 'Nome della nuova categoria', - 'slug' => 'Slug', - 'slug_placeholder' => 'slug-nuova-categoria', - 'posts' => 'Post', - 'delete_confirm' => 'Vuoi veramente cancellare questa categoria?', - 'return_to_categories' => 'Ritorna all\'elenco delle categorie del blog', - 'reorder' => 'Riordino Categorie' - ], - 'settings' => [ - 'category_title' => 'Elenco Categorie', - 'category_description' => 'Mostra un\'elenco delle categorie del blog sulla pagina.', - 'category_slug' => 'Slug categoria', - 'category_slug_description' => "Cerca la categoria del blog usando lo slug fornito. Questa proprietà è usata dal componente parziale di default per segnare la categoria attualmente usata.", - 'category_display_empty' => 'Mostra categorie vuote', - 'category_display_empty_description' => 'Mostra categorie che non hanno alcun post.', - 'category_page' => 'Pagina delle categorie', - 'category_page_description' => 'Nome del file della pagina delle categorie contenente i link delle categorie. Questa proprietà è usata dal componente parziale di default.', - 'post_title' => 'Post', - 'post_description' => 'Mostra un post sulla pagina.', - 'post_slug' => 'Slug del post', - 'post_slug_description' => "Cerca il post con lo slug fornito.", - 'post_category' => 'Pagina delle categorie', - 'post_category_description' => 'Nome del file della pagina delle categorie contenente i link delle categorie. Questa proprietà è usata dal componente parziale di default.', - 'posts_title' => 'Elenco dei post', - 'posts_description' => 'Mostra un\'elenco degli ultimi post sulla pagina.', - 'posts_pagination' => 'Numero di pagina', - 'posts_pagination_description' => 'Questo valore è usato per determinare su quale pagina è l\'utente.', - 'posts_filter' => 'Filtro delle categorie', - 'posts_filter_description' => 'Inserisci lo slug di una categoria o un parametro dell\'URL con il quale filtrare i post. Lascia vuoto per mostrare tutti i post.', - 'posts_per_page' => 'Post per pagina', - 'posts_per_page_validation' => 'Il valore di post per pagina ha un formato non valido ', - 'posts_no_posts' => 'Messaggio per l\'assenza di post', - 'posts_no_posts_description' => 'Messaggio da mostrare nell\'elenco dei post in caso non ce ne siano. Questa proprietà è usata dal componente parziale di default.', - 'posts_order' => 'Ordine dei post', - 'posts_order_description' => 'Attributo sul quale i post dovrebbero esser ordinati', - 'posts_category' => 'Pagina delle categorie', - 'posts_category_description' => 'Nome del file per la pagina delle categorie per i link "Postato in" alle categorie. Questa proprietà è usata dal componente parziale di default.', - 'posts_post' => 'Pagina del post', - 'posts_post_description' => 'Nome del file per la pagina del post per i link "Scopri di più". Questa proprietà è usata dal componente parziale di default.' - ] -]; diff --git a/lang/ja.json b/lang/ja.json new file mode 100644 index 00000000..5b372f3c --- /dev/null +++ b/lang/ja.json @@ -0,0 +1,73 @@ +{ + "Blog": "ブログ", + "A robust blogging platform.": "ロバストなブログプラットフォームです。", + "Manage Blog Posts": "ブログの投稿管理", + "Posts": "投稿", + "Blog post": "投稿の追加", + "Categories": "カテゴリ", + "Blog category": "カテゴリの追加", + "Manage the blog posts": "投稿の管理", + "Manage the blog categories": "カテゴリの管理", + "Manage other users blog posts": "他ユーザーの投稿の管理", + "Are you sure?": "削除していいですか?", + "Published": "公開済み", + "Drafts": "下書き", + "Total": "合計", + "Manage the blog posts": "投稿の管理", + "Category": "カテゴリ", + "New Post": "投稿を追加", + "Title": "タイトル", + "New post title": "タイトルを入力してください", + "Slug": "スラッグ", + "new-post-slug": "new-post-slug−123", + "Created": "作成日", + "Updated": "更新日", + "Please specify the published date": "投稿の公開日を指定してください。", + "Edit": "編集", + "Select categories the blog post belongs to": "投稿を関連付けるカテゴリを選択してください。(複数選択可)", + "There are no categories, you should create one first!": "まだカテゴリがありません。先に作成してください。", + "Manage": "管理", + "Published on": "公開日", + "Excerpt": "投稿の抜粋", + "Featured Images": "アイキャッチ画像", + "Delete this post?": "削除していいですか?", + "The post is not saved.": "投稿は保存されていません。", + "Return to posts list": "投稿一覧に戻る", + "Manage the blog categories": "カテゴリ管理", + "New Category": "カテゴリの追加", + "Uncategorized": "未分類", + "Name": "名前", + "New category name": "カテゴリ名をつけてください", + "new-category-slug": "new-category-slug-123", + "Delete this category?": "削除していいですか?", + "Return to the blog category list": "カテゴリ一覧に戻る", + "Category List": "カテゴリリスト", + "Displays a list of blog categories on the page.": "ページ内にカテゴリリストを表示します。", + "Category slug": "カテゴリスラッグ", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "表示するカテゴリのスラッグを指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。", + "Display empty categories": "空のカテゴリの表示", + "Show categories that do not have any posts.": "この項目がチェックされている場合、投稿が0件のカテゴリもリストに表示します。", + "Category page": "カテゴリページ", + "Name of the category page file for the category links. This property is used by the default component partial.": "カテゴリページへのリンクを生成するために、カテゴリページのファイル名を指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。", + "Post": "投稿", + "Displays a blog post on the page.": "ページ内に投稿を表示します。", + "Post slug": "投稿スラッグ", + "Look up the blog post using the supplied slug value.": "表示する投稿のスラッグを指定します。特定の投稿のスラッグか、URLパラメータ(:slug)を指定できます。", + "Name of the category page file for the category links. This property is used by the default component partial.": "カテゴリリンクを生成するために、カテゴリページのファイル名を指定します。拡張子(.htm)は省いてください。この項目はコンポーネントのデフォルトパーシャルで使用されます。", + "Post List": "投稿リスト", + "Displays a list of latest blog posts on the page.": "ページ内に新しい投稿のリストを表示します。", + "Page number": "ページ番号", + "This value is used to determine what page the user is on.": "ページ番号を指定します。URLパラメータ(:page)を指定できます。", + "Category filter": "カテゴリフィルタ", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "投稿リストのフィルタを指定します。カテゴリのスラッグかURLパラメータ(:slug)を指定できます。空の場合、すべての投稿が表示されます。", + "Posts per page": "1ページに表示する投稿数を指定します。", + "Invalid format of the posts per page value": "1ページに表示する投稿数の形式が正しくありません。", + "No posts message": "0件時メッセージ", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "この投稿リストが0件の場合に表示するメッセージを指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。", + "Post order": "並び順", + "Attribute on which the posts should be ordered": "投稿リスト内の並び順を指定します。", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "カテゴリリンクを生成するために、カテゴリページのファイル名を指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。", + "Post page": "投稿ページ", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "\"Learn more\"リンクを生成するため、投稿ページのファイル名を指定します。拡張子(.htm)は省いてください。この項目はコンポーネントのデフォルトパーシャルで使用されます.", + "Except post": "Except post" +} diff --git a/lang/ja/lang.php b/lang/ja/lang.php deleted file mode 100644 index be6d0b48..00000000 --- a/lang/ja/lang.php +++ /dev/null @@ -1,100 +0,0 @@ - [ - 'name' => 'ブログ', - 'description' => 'ロバストなブログプラットフォームです。' - ], - 'blog' => [ - 'menu_label' => 'ブログ', - 'menu_description' => 'ブログの投稿管理', - 'posts' => '投稿', - 'create_post' => '投稿の追加', - 'categories' => 'カテゴリ', - 'create_category' => 'カテゴリの追加', - 'tab' => 'ブログ', - 'access_posts' => '投稿の管理', - 'access_categories' => 'カテゴリの管理', - 'access_other_posts' => '他ユーザーの投稿の管理', - 'delete_confirm' => '削除していいですか?', - 'chart_published' => '公開済み', - 'chart_drafts' => '下書き', - 'chart_total' => '合計' - ], - 'posts' => [ - 'list_title' => '投稿の管理', - 'filter_category' => 'カテゴリ', - 'filter_published' => '下書きのみ', - 'new_post' => '投稿を追加' - ], - 'post' => [ - 'title' => 'タイトル', - 'title_placeholder' => 'タイトルを入力してください', - 'slug' => 'スラッグ', - 'slug_placeholder' => 'new-post-slug−123', - 'categories' => 'カテゴリ', - 'created' => '作成日', - 'updated' => '更新日', - 'published' => '公開する', - 'published_validation' => '投稿の公開日を指定してください。', - 'tab_edit' => '編集', - 'tab_categories' => 'カテゴリ', - 'categories_comment' => '投稿を関連付けるカテゴリを選択してください。(複数選択可)', - 'categories_placeholder' => 'まだカテゴリがありません。先に作成してください。', - 'tab_manage' => '管理', - 'published_on' => '公開日', - 'excerpt' => '投稿の抜粋', - 'featured_images' => 'アイキャッチ画像', - 'delete_confirm' => '削除していいですか?', - 'close_confirm' => '投稿は保存されていません。', - 'return_to_posts' => '投稿一覧に戻る' - ], - 'categories' => [ - 'list_title' => 'カテゴリ管理', - 'new_category' => 'カテゴリの追加', - 'uncategorized' => '未分類' - ], - 'category' => [ - 'name' => '名前', - 'name_placeholder' => 'カテゴリ名をつけてください', - 'slug' => 'スラッグ', - 'slug_placeholder' => 'new-category-slug-123', - 'posts' => '投稿数', - 'delete_confirm' => '削除していいですか?', - 'return_to_categories' => 'カテゴリ一覧に戻る' - ], - 'settings' => [ - 'category_title' => 'カテゴリリスト', - 'category_description' => 'ページ内にカテゴリリストを表示します。', - 'category_slug' => 'カテゴリスラッグ', - 'category_slug_description' => "表示するカテゴリのスラッグを指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。", - 'category_display_empty' => '空のカテゴリの表示', - 'category_display_empty_description' => 'この項目がチェックされている場合、投稿が0件のカテゴリもリストに表示します。', - 'category_page' => 'カテゴリページ', - 'category_page_description' => 'カテゴリページへのリンクを生成するために、カテゴリページのファイル名を指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。', - 'post_title' => '投稿', - 'post_description' => 'ページ内に投稿を表示します。', - 'post_slug' => '投稿スラッグ', - 'post_slug_description' => "表示する投稿のスラッグを指定します。特定の投稿のスラッグか、URLパラメータ(:slug)を指定できます。", - 'post_category' => 'カテゴリページ', - 'post_category_description' => 'カテゴリリンクを生成するために、カテゴリページのファイル名を指定します。拡張子(.htm)は省いてください。この項目はコンポーネントのデフォルトパーシャルで使用されます。', - 'posts_title' => '投稿リスト', - 'posts_description' => 'ページ内に新しい投稿のリストを表示します。', - 'posts_pagination' => 'ページ番号', - 'posts_pagination_description' => 'ページ番号を指定します。URLパラメータ(:page)を指定できます。', - 'posts_filter' => 'カテゴリフィルタ', - 'posts_filter_description' => '投稿リストのフィルタを指定します。カテゴリのスラッグかURLパラメータ(:slug)を指定できます。空の場合、すべての投稿が表示されます。', - 'posts_per_page' => '1ページに表示する投稿数を指定します。', - 'posts_per_page_validation' => '1ページに表示する投稿数の形式が正しくありません。', - 'posts_no_posts' => '0件時メッセージ', - 'posts_no_posts_description' => 'この投稿リストが0件の場合に表示するメッセージを指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。', - 'posts_order' => '並び順', - 'posts_order_description' => '投稿リスト内の並び順を指定します。', - 'posts_category' => 'カテゴリページ', - 'posts_category_description' => 'カテゴリリンクを生成するために、カテゴリページのファイル名を指定します。この項目はコンポーネントのデフォルトパーシャルで使用されます。', - 'posts_post' => '投稿ページ', - 'posts_post_description' => '"Learn more"リンクを生成するため、投稿ページのファイル名を指定します。拡張子(.htm)は省いてください。この項目はコンポーネントのデフォルトパーシャルで使用されます。', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - ] -]; diff --git a/lang/nb-no.json b/lang/nb-no.json new file mode 100644 index 00000000..39771921 --- /dev/null +++ b/lang/nb-no.json @@ -0,0 +1,44 @@ +{ + "Blog": "Blogg", + "A robust blogging platform.": "En robust bloggeplattform.", + "Manage Blog Posts": "Administrer blogginnlegg", + "Posts": "Innlegg", + "Blog post": "innlegg", + "Categories": "Kategorier", + "Blog category": "kategori", + "Manage the blog posts": "Administrer blogginnleggene", + "Manage the blog categories": "Administrer bloggkategorier", + "Manage other users blog posts": "Administrere andre brukere sine blogginnlegg", + "Are you sure?": "Er du sikker?", + "Published": "Publisert", + "Drafts": "Utkast", + "Total": "Totalt", + "Manage the blog posts": "Administrer blogginnlegg", + "Category": "Kategori", + "New Post": "Nytt innlegg", + "Title": "Tittel", + "New post title": "Innleggets tittel", + "Slug": "Slug", + "new-post-slug": "innleggets-tittel", + "Created": "Opprettet", + "Updated": "Oppdatert", + "Please specify the published date": "Velg en dato når innlegget skal publiseres", + "Edit": "Endre", + "Select categories the blog post belongs to": "Velg hvilke kategorier innlegget tilhører", + "There are no categories, you should create one first!": "Det finnes ingen kategorier! Vennligst opprett en først.", + "Manage": "Egenskaper", + "Published on": "Publiseringsdato", + "Excerpt": "Utdrag", + "Featured Images": "Utvalgte bilder", + "Delete this post?": "Vil du virkelig slette dette innlegget?", + "The post is not saved.": "Innlegget er ikke lagret.", + "Return to posts list": "Tilbake til innleggsliste", + "Manage the blog categories": "Administrer bloggkategorier", + "New Category": "Ny kategori", + "Uncategorized": "Uten kategori", + "Name": "Navn", + "New category name": "Kategoriens navn", + "new-category-slug": "kategoriens-navn", + "Delete this category?": "Vil du virkelig slette denne kategorien?", + "Return to the blog category list": "Tilbake til kategorilisten" +} diff --git a/lang/nb-no/lang.php b/lang/nb-no/lang.php deleted file mode 100644 index d0336326..00000000 --- a/lang/nb-no/lang.php +++ /dev/null @@ -1,99 +0,0 @@ - [ - 'name' => 'Blogg', - 'description' => 'En robust bloggeplattform.', - ], - 'blog' => [ - 'menu_label' => 'Blogg', - 'menu_description' => 'Administrer blogginnlegg', - 'posts' => 'Innlegg', - 'create_post' => 'innlegg', - 'categories' => 'Kategorier', - 'create_category' => 'kategori', - 'access_posts' => 'Administrer blogginnleggene', - 'access_categories' => 'Administrer bloggkategorier', - 'access_other_posts' => 'Administrere andre brukere sine blogginnlegg', - 'delete_confirm' => 'Er du sikker?', - 'chart_published' => 'Publisert', - 'chart_drafts' => 'Utkast', - 'chart_total' => 'Totalt', - ], - 'posts' => [ - 'list_title' => 'Administrer blogginnlegg', - 'filter_category' => 'Kategori', - 'filter_published' => 'Skjul publiserte', - 'new_post' => 'Nytt innlegg', - ], - 'post' => [ - 'title' => 'Tittel', - 'title_placeholder' => 'Innleggets tittel', - 'slug' => 'Slug', - 'slug_placeholder' => 'innleggets-tittel', - 'categories' => 'Kategorier', - 'created' => 'Opprettet', - 'updated' => 'Oppdatert', - 'published' => 'Publisert', - 'published_validation' => 'Velg en dato når innlegget skal publiseres', - 'tab_edit' => 'Endre', - 'tab_categories' => 'Kategorier', - 'categories_comment' => 'Velg hvilke kategorier innlegget tilhører', - 'categories_placeholder' => 'Det finnes ingen kategorier! Vennligst opprett en først.', - 'tab_manage' => 'Egenskaper', - 'published_on' => 'Publiseringsdato', - 'excerpt' => 'Utdrag', - 'featured_images' => 'Utvalgte bilder', - 'delete_confirm' => 'Vil du virkelig slette dette innlegget?', - 'close_confirm' => 'Innlegget er ikke lagret.', - 'return_to_posts' => 'Tilbake til innleggsliste', - ], - 'categories' => [ - 'list_title' => 'Administrer bloggkategorier', - 'new_category' => 'Ny kategori', - 'uncategorized' => 'Uten kategori', - ], - 'category' => [ - 'name' => 'Navn', - 'name_placeholder' => 'Kategoriens navn', - 'slug' => 'Slug', - 'slug_placeholder' => 'kategoriens-navn', - 'posts' => 'Innlegg', - 'delete_confirm' => 'Vil du virkelig slette denne kategorien?', - 'return_to_categories' => 'Tilbake til kategorilisten', - ], - 'settings' => [ - 'category_title' => 'Category List', - 'category_description' => 'Displays a list of blog categories on the page.', - 'category_slug' => 'Category slug', - 'category_slug_description' => "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", - 'category_display_empty' => 'Display empty categories', - 'category_display_empty_description' => 'Show categories that do not have any posts.', - 'category_page' => 'Category page', - 'category_page_description' => 'Name of the category page file for the category links. This property is used by the default component partial.', - 'post_title' => 'Post', - 'post_description' => 'Displays a blog post on the page.', - 'post_slug' => 'Post slug', - 'post_slug_description' => "Look up the blog post using the supplied slug value.", - 'post_category' => 'Category page', - 'post_category_description' => 'Name of the category page file for the category links. This property is used by the default component partial.', - 'posts_title' => 'Post List', - 'posts_description' => 'Displays a list of latest blog posts on the page.', - 'posts_pagination' => 'Page number', - 'posts_pagination_description' => 'This value is used to determine what page the user is on.', - 'posts_filter' => 'Category filter', - 'posts_filter_description' => 'Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.', - 'posts_per_page' => 'Posts per page', - 'posts_per_page_validation' => 'Invalid format of the posts per page value', - 'posts_no_posts' => 'No posts message', - 'posts_no_posts_description' => 'Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.', - 'posts_order' => 'Post order', - 'posts_order_description' => 'Attribute on which the posts should be ordered', - 'posts_category' => 'Category page', - 'posts_category_description' => 'Name of the category page file for the "Posted into" category links. This property is used by the default component partial.', - 'posts_post' => 'Post page', - 'posts_post_description' => 'Name of the blog post page file for the "Learn more" links. This property is used by the default component partial.', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - ], -]; diff --git a/lang/nl.json b/lang/nl.json new file mode 100644 index 00000000..4e129a2b --- /dev/null +++ b/lang/nl.json @@ -0,0 +1,85 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "A robust blogging platform.", + "Manage Blog Posts": "Beheer blog artikelen", + "Posts": "Artikelen", + "Blog post": "Artikel", + "Categories": "Categorieën", + "Blog category": "blog categorie", + "Manage the blog posts": "Blog artikelen beheren", + "Manage the blog categories": "Blog categorieën beheren", + "Manage other users blog posts": "Beheren van blog artikelen van gebruikers", + "Allowed to import and export posts": "Toegang tot importeren en exporteren van artikelen", + "Are you sure?": "Weet je het zeker?", + "Published": "Gepubliceerd", + "Drafts": "Concepten", + "Total": "Totaal", + "Manage the blog posts": "Beheren van blog artikelen", + "Category": "Categorie", + "New Post": "Nieuw artikel", + "Title": "Titel", + "New post title": "Titel van artikel", + "Content": "Inhoud", + "HTML Content": "HTML Inhoud", + "Slug": "Slug", + "new-post-slug": "nieuw-artikel-slug", + "Author Email": "E-mail auteur", + "Created": "Aangemaakt", + "Created date": "Aangemaakt op", + "Updated": "Bijgewerkt", + "Updated date": "Bijgewerkt op", + "Published by": "Gepubliceerd door", + "Current user": "Huidige gebruiker", + "Published date": "Gepubliceerd op", + "Please specify the published date": "Graag een publicatie datum opgeven", + "Edit": "Bewerken", + "Select categories the blog post belongs to": "Selecteer een categorie waarbij het artikel hoort", + "There are no categories, you should create one first!": "Er zijn geen categorieën, maak eerst een categorie aan!", + "Manage": "Beheer", + "Published on": "Gepubliceerd op", + "Excerpt": "Samenvatting", + "Summary": "Samenvatting", + "Featured Images": "Uitgelichte afbeelding", + "Delete this post?": "Weet je zeker dat je dit artikel wilt verwijderen?", + "The post is not saved.": "Artikel is nog niet opgeslagen.", + "Return to posts list": "Terug naar artikel overzicht", + "Posted in :categories on :date.": "Gepubliceerd in :categories op :date.", + "Posted on :date.": "Gepubliceerd op :date.", + "M d, Y": "d, M, Y", + "Manage the blog categories": "Beheer blog categorieën", + "New Category": "Nieuwe categorie", + "Uncategorized": "Ongecategoriseerd", + "Name": "Naam", + "New category name": "Naam categorie", + "new-category-slug": "nieuw-categorie-slug", + "Delete this category?": "Weet je zeker dat je deze categorie wilt verwijderen?", + "Return to the blog category list": "Terug naar categorie overzicht", + "Category List": "Categorie overzicht", + "Displays a list of blog categories on the page.": "Geeft een lijst weer van alle categorieën op de pagina.", + "Category slug": "Categorie slug", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Haal blog categorie op a.h.v. de opgegeven slug. Deze waarde wordt standaard gebruikt voor de partial om de actieve categorie te markeren.", + "Display empty categories": "Geef lege categorieën weer", + "Show categories that do not have any posts.": "Geef categorieën weer die geen artikelen hebben.", + "Category page": "Categorie pagina", + "Name of the category page file for the category links. This property is used by the default component partial.": "Naam van categorie pagina bestand voor de categorie links. Deze waarde wordt standaard gebruikt door de partial.", + "Post": "Artikel", + "Displays a blog post on the page.": "Geef een artikel weer op de pagina.", + "Post slug": "Artikel slug", + "Look up the blog post using the supplied slug value.": "Haal een artikel op a.h.v. de opgegeven slug.", + "Name of the category page file for the category links. This property is used by the default component partial.": "Naam van categorie pagina bestand voor de categorie links. Deze waarde wordt standaard gebruikt door de partial.", + "Post List": "Artikel overzicht", + "Displays a list of latest blog posts on the page.": "Geeft een lijst van de nieuwste artikelen weer op de pagina.", + "Page number": "Pagina nummer", + "This value is used to determine what page the user is on.": "Deze waarde wordt gebruikt om te kijken op welke pagina de gebruiker is.", + "Category filter": "Categorie filter", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Geef een categorie slug of URL param om de artikelen hier op te kunnen filteren. Leeg laten als alle artikelen getoond moeten worden.", + "Posts per page": "Artikelen per pagina", + "Invalid format of the posts per page value": "Ongeldig formaat voor het aantal artikelen per pagina", + "No posts message": "Geen artikelen melding", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Deze tekst wordt getoond als er geen artikelen zijn. Deze waarde wordt standaard gebruikt door de partial.", + "Post order": "Volgorde artikelen", + "Attribute on which the posts should be ordered": "Kolom waar de artikelen op gesorteerd moeten worden", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Naam van categorie pagina bestand voor gekoppeld artikel overzichts pagina. Deze waarde wordt standaard gebruikt door de partial.", + "Post page": "Artikel pagina", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Naam van blog pagina bestand voor de \"Lees meer\" links. Deze waarde wordt standaard gebruikt door de partial." +} diff --git a/lang/nl/lang.php b/lang/nl/lang.php deleted file mode 100644 index 1d5b7828..00000000 --- a/lang/nl/lang.php +++ /dev/null @@ -1,113 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'A robust blogging platform.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Beheer blog artikelen', - 'posts' => 'Artikelen', - 'create_post' => 'Artikel', - 'categories' => 'Categorieën', - 'create_category' => 'blog categorie', - 'tab' => 'Blog', - 'access_posts' => 'Blog artikelen beheren', - 'access_categories' => 'Blog categorieën beheren', - 'access_other_posts' => 'Beheren van blog artikelen van gebruikers', - 'access_import_export' => 'Toegang tot importeren en exporteren van artikelen', - 'delete_confirm' => 'Weet je het zeker?', - 'chart_published' => 'Gepubliceerd', - 'chart_drafts' => 'Concepten', - 'chart_total' => 'Totaal' - ], - 'posts' => [ - 'list_title' => 'Beheren van blog artikelen', - 'filter_category' => 'Categorie', - 'filter_published' => 'Verberg gepubliceerd', - 'new_post' => 'Nieuw artikel' - ], - 'post' => [ - 'title' => 'Titel', - 'title_placeholder' => 'Titel van artikel', - 'content' => 'Inhoud', - 'content_html' => 'HTML Inhoud', - 'slug' => 'Slug', - 'slug_placeholder' => 'nieuw-artikel-slug', - 'categories' => 'Categorieën', - 'author_email' => 'E-mail auteur', - 'created' => 'Aangemaakt', - 'created_date' => 'Aangemaakt op', - 'updated' => 'Bijgewerkt', - 'updated_date' => 'Bijgewerkt op', - 'published' => 'Gepubliceerd', - 'published_by' => 'Gepubliceerd door', - 'current_user' => 'Huidige gebruiker', - 'published_date' => 'Gepubliceerd op', - 'published_validation' => 'Graag een publicatie datum opgeven', - 'tab_edit' => 'Bewerken', - 'tab_categories' => 'Categorieën', - 'categories_comment' => 'Selecteer een categorie waarbij het artikel hoort', - 'categories_placeholder' => 'Er zijn geen categorieën, maak eerst een categorie aan!', - 'tab_manage' => 'Beheer', - 'published_on' => 'Gepubliceerd op', - 'excerpt' => 'Samenvatting', - 'summary' => 'Samenvatting', - 'featured_images' => 'Uitgelichte afbeelding', - 'delete_confirm' => 'Weet je zeker dat je dit artikel wilt verwijderen?', - 'close_confirm' => 'Artikel is nog niet opgeslagen.', - 'return_to_posts' => 'Terug naar artikel overzicht', - 'posted_byline' => 'Gepubliceerd in :categories op :date.', - 'posted_byline_no_categories' => 'Gepubliceerd op :date.', - 'date_format' => 'd, M, Y', - ], - 'categories' => [ - 'list_title' => 'Beheer blog categorieën', - 'new_category' => 'Nieuwe categorie', - 'uncategorized' => 'Ongecategoriseerd' - ], - 'category' => [ - 'name' => 'Naam', - 'name_placeholder' => 'Naam categorie', - 'slug' => 'Slug', - 'slug_placeholder' => 'nieuw-categorie-slug', - 'posts' => 'Artikelen', - 'delete_confirm' => 'Weet je zeker dat je deze categorie wilt verwijderen?', - 'return_to_categories' => 'Terug naar categorie overzicht' - ], - 'settings' => [ - 'category_title' => 'Categorie overzicht', - 'category_description' => 'Geeft een lijst weer van alle categorieën op de pagina.', - 'category_slug' => 'Categorie slug', - 'category_slug_description' => 'Haal blog categorie op a.h.v. de opgegeven slug. Deze waarde wordt standaard gebruikt voor de partial om de actieve categorie te markeren.', - 'category_display_empty' => 'Geef lege categorieën weer', - 'category_display_empty_description' => 'Geef categorieën weer die geen artikelen hebben.', - 'category_page' => 'Categorie pagina', - 'category_page_description' => 'Naam van categorie pagina bestand voor de categorie links. Deze waarde wordt standaard gebruikt door de partial.', - 'post_title' => 'Artikel', - 'post_description' => 'Geef een artikel weer op de pagina.', - 'post_slug' => 'Artikel slug', - 'post_slug_description' => 'Haal een artikel op a.h.v. de opgegeven slug.', - 'post_category' => 'Categorie pagina', - 'post_category_description' => 'Naam van categorie pagina bestand voor de categorie links. Deze waarde wordt standaard gebruikt door de partial.', - 'posts_title' => 'Artikel overzicht', - 'posts_description' => 'Geeft een lijst van de nieuwste artikelen weer op de pagina.', - 'posts_pagination' => 'Pagina nummer', - 'posts_pagination_description' => 'Deze waarde wordt gebruikt om te kijken op welke pagina de gebruiker is.', - 'posts_filter' => 'Categorie filter', - 'posts_filter_description' => 'Geef een categorie slug of URL param om de artikelen hier op te kunnen filteren. Leeg laten als alle artikelen getoond moeten worden.', - 'posts_per_page' => 'Artikelen per pagina', - 'posts_per_page_validation' => 'Ongeldig formaat voor het aantal artikelen per pagina', - 'posts_no_posts' => 'Geen artikelen melding', - 'posts_no_posts_description' => 'Deze tekst wordt getoond als er geen artikelen zijn. Deze waarde wordt standaard gebruikt door de partial.', - 'posts_order' => 'Volgorde artikelen', - 'posts_order_description' => 'Kolom waar de artikelen op gesorteerd moeten worden', - 'posts_category' => 'Categorie pagina', - 'posts_category_description' => 'Naam van categorie pagina bestand voor gekoppeld artikel overzichts pagina. Deze waarde wordt standaard gebruikt door de partial.', - 'posts_post' => 'Artikel pagina', - 'posts_post_description' => 'Naam van blog pagina bestand voor de "Lees meer" links. Deze waarde wordt standaard gebruikt door de partial.', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - ] -]; diff --git a/lang/pl.json b/lang/pl.json new file mode 100644 index 00000000..6446eebd --- /dev/null +++ b/lang/pl.json @@ -0,0 +1,124 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Solidna platforma blogera", + "Manage Blog Posts": "Zarządzaj postami na blogu", + "Posts": "Posty", + "Blog post": "Utwórz post", + "Categories": "Kategorie", + "Blog category": "Utwórz kategorię", + "Manage the blog posts": "Zarządzaj postami", + "Manage the blog categories": "Zarządzaj kategoriami na blogu", + "Manage other users blog posts": "Zarządzaj postami innych użytkowników", + "Allowed to import and export posts": "Zarządzaj importowaniem i eksportowaniem postów", + "Allowed to publish posts": "Publikuj posty", + "Manage blog settings": "Zarządzaj ustawieniami bloga", + "Are you sure?": "Czy jesteś pewien?", + "Published": "Opublikowane", + "Drafts": "Szkice", + "Total": "Łącznie", + "Show All Posts to Backend Users": "Pokaż wszystkie posty użytkownikom backendu", + "Display both published and unpublished posts on the frontend to backend users": "Wyświetl opublikowane i nieopublikowany posty na stronie dla użytkowników backendu", + "General": "Ogólne", + "Category": "Kategoria", + "Date": "Date", + "New Post": "Nowy post", + "Export Posts": "Eksportuj posty", + "Import Posts": "Importuj posty", + "Title": "Tytuł", + "New post title": "Tytuł nowego posta", + "Content": "Zawartość", + "HTML Content": "Zawartość HTML", + "Slug": "Alias", + "new-post-slug": "alias-nowego-postu", + "Author Email": "Email autora", + "Created": "Utworzony", + "Created date": "Data utworzenia", + "Updated": "Zaktualizowany", + "Updated date": "Data aktualizacji", + "Published date": "Data publikacji", + "Please specify the published date": "Proszę określić datę publikacji", + "Edit": "Edytuj", + "Select categories the blog post belongs to": "Wybierz kategorie do których post należy", + "There are no categories, you should create one first!": "Nie ma żadnej kategorii, powinieneś utworzyć przynajmniej jedną.", + "Manage": "Zarządzaj", + "Published on": "Opublikowane", + "Excerpt": "Zalążek", + "Summary": "Summary", + "Featured Images": "Załączone grafiki", + "Delete this post?": "Czy naprawdę chcesz usunąć ten post?", + "Successfully deleted those posts.": "Posty zostały pomyślnie usunięte.", + "The post is not saved.": "Ten post nie jest zapisany.", + "Return to posts list": "Wróć do listy postów", + "New Category": "Nowa kategoria", + "Uncategorized": "Bez kategorii", + "Name": "Nazwa", + "New category name": "Nazwa nowej kategorii", + "Description": "Opis", + "new-category-slug": "alias-nowej-kategorii", + "Delete this category?": "Czy naprawdę chcesz usunąć tę kategorię?", + "Successfully deleted those categories.": "Kategorie zostały pomyślnie usunięte.", + "Return to the blog category list": "Wróć do listy kategorii", + "Reorder Categories": "Zmień kolejnośc kategorii", + "Blog Category": "Kategorie", + "All Blog Categories": "Wszystkie kategorie", + "Blog Post": "Post na bloga", + "All Blog Posts": "Wszystkie posty", + "Blog Category Posts": "Posty w kategorii", + "Category List": "Lista kategorii", + "Displays a list of blog categories on the page.": "Wyświetla listę blogowych kategorii na stronie.", + "Category slug": "Alias kategorii", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.", + "Display empty categories": "Pokaż puste kategorie", + "Show categories that do not have any posts.": "Pokazuje kategorie, które nie posiadają postów", + "Category page": "Strona kategorii", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nazwa strony kategorii gdzie są pokazywane linki. Ten parametr jest domyślnie używany przez komponent.", + "Post": "Post", + "Displays a blog post on the page.": "Wyświetla pojedynczy post na stronie.", + "Post slug": "Alias postu", + "Look up the blog post using the supplied slug value.": "Szuka post po nazwie aliasu.", + "Post List": "Lista postów", + "Displays a list of latest blog posts on the page.": "Wyświetla kilka ostatnich postów.", + "Page number": "Numer strony", + "This value is used to determine what page the user is on.": "Ta wartość odpowiada za odczytanie numeru strony.", + "Category filter": "Filtr kategorii", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Wprowadź alias kategorii lub adres URL aby filtrować posty. Pozostaw puste aby pokazać wszystkie.", + "Posts per page": "Ilość postów na strone", + "Invalid format of the posts per page value": "Nieprawidłowa wartość ilości postów na strone", + "No posts message": "Komunikat o braku postów", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Wiadomość, która ukaże się kiedy komponent nie odnajdzie postów. Ten parametr jest domyślnie używany przez komponent.", + "No posts found": "Nie znaleziono postów", + "Post order": "Kolejność postów", + "Attribute on which the posts should be ordered": "Parametr przez który mają być sortowane posty", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Nazwa strony kategorii w wyświetlaniu linków \"Posted into\" [Opublikowano w]. Ten parametr jest domyślnie używany przez komponent.", + "Post page": "Strona postu", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Nazwa strony postu dla linków \"Learn more\" [Czytaj więcej]. Ten parametr jest domyślnie używany przez komponent.", + "Except post": "Wyklucz posty", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Wprowadź ID/URL lub zmienną z ID/URL postu, który chcesz wykluczyć", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "Wartość pola wykluczenia postów musi być pojedynczym ID/aliasem lub listą ID/aliasów rozdzieloną przecinkami", + "Except categories": "Wyklucz kategorie", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Wprowadź listę aliasów kategorii rozdzieloną przecinkami lub zmienną zawierającą taką listę", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Wartośc pola wykluczenia kategorii musi być pojedynczym aliasem lub listą aliasów rozdzielonych przecinkami", + "Blog page": "Strona bloga", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Nazwa strony głównej bloga do generowania linków. Używane przez domyślny fragment komponentu.", + "RSS Feed": "Kanał RSS", + "Generates an RSS feed containing posts from the blog.": "Generuje kanał RSS zawierający posty z bloga.", + "Links": "Linki", + "Exceptions": "Wyjątki", + "Title (ascending)": "Tytuł (rosnąco)", + "Title (descending)": "Tytuł (malejąco)", + "Created (ascending)": "Data utworzenia (rosnąco)", + "Created (descending)": "Data utworzenia (malejąco)", + "Updated (ascending)": "Data aktualizacji (rosnąco)", + "Updated (descending)": "Data aktualizacji (malejąco)", + "Published (ascending)": "Data publikacji (rosnąco)", + "Published (descending)": "Data publikacji (malejąco)", + "Random": "Losowo", + "Update existing posts": "Aktualizuj istniejące wpisy", + "Check this box to update posts that have exactly the same ID, title or slug.": "Zaznacz to pole, aby zaktualizować posty, które mają taki sam identyfikator (ID), tytuł lub alias.", + "Create categories specified in the import file": "Utwórz kategorie podane w pliku", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Aby skorzystać z tej funkcji powinieneś dopasować kolumnę Kategorii. W przeciwnym wypadku wybierz domyślną kategorię do użycia poniżej.", + "Select the categories that imported posts will belong to (optional).": "Wybierz kategorię, do której będą należeć zaimportowane posty (opcjonalne).", + "Default post author (optional)": "Domyślny autor postów (opcjonalne)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Import spróbuje dopasować istniejącego autora na podstawie kolumny email. W przypadku niepowodzenia zostanie użyty autor wybrany powyżej.", + "-- select author --": "-- wybierz autora --" +} diff --git a/lang/pl/lang.php b/lang/pl/lang.php deleted file mode 100644 index 69548989..00000000 --- a/lang/pl/lang.php +++ /dev/null @@ -1,159 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Solidna platforma blogera', - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Zarządzaj postami na blogu', - 'posts' => 'Posty', - 'create_post' => 'Utwórz post', - 'categories' => 'Kategorie', - 'create_category' => 'Utwórz kategorię', - 'tab' => 'Blog', - 'access_posts' => 'Zarządzaj postami', - 'access_categories' => 'Zarządzaj kategoriami na blogu', - 'access_other_posts' => 'Zarządzaj postami innych użytkowników', - 'access_import_export' => 'Zarządzaj importowaniem i eksportowaniem postów', - 'access_publish' => 'Publikuj posty', - 'manage_settings' => 'Zarządzaj ustawieniami bloga', - 'delete_confirm' => 'Czy jesteś pewien?', - 'chart_published' => 'Opublikowane', - 'chart_drafts' => 'Szkice', - 'chart_total' => 'Łącznie', - 'settings_description' => 'Zarządzaj ustawieniami bloga', - 'show_all_posts_label' => 'Pokaż wszystkie posty użytkownikom backendu', - 'show_all_posts_comment' => 'Wyświetl opublikowane i nieopublikowany posty na stronie dla użytkowników backendu', - 'tab_general' => 'Ogólne', - ], - 'posts' => [ - 'list_title' => 'Zarządzaj postami', - 'filter_category' => 'Kategoria', - 'filter_published' => 'Ukryj opublikowane', - 'filter_date' => 'Date', - 'new_post' => 'Nowy post', - 'export_post' => 'Eksportuj posty', - 'import_post' => 'Importuj posty', - ], - 'post' => [ - 'title' => 'Tytuł', - 'title_placeholder' => 'Tytuł nowego posta', - 'content' => 'Zawartość', - 'content_html' => 'Zawartość HTML', - 'slug' => 'Alias', - 'slug_placeholder' => 'alias-nowego-postu', - 'categories' => 'Kategorie', - 'author_email' => 'Email autora', - 'created' => 'Utworzony', - 'created_date' => 'Data utworzenia', - 'updated' => 'Zaktualizowany', - 'updated_date' => 'Data aktualizacji', - 'published' => 'Opublikowany', - 'published_date' => 'Data publikacji', - 'published_validation' => 'Proszę określić datę publikacji', - 'tab_edit' => 'Edytuj', - 'tab_categories' => 'Kategorie', - 'categories_comment' => 'Wybierz kategorie do których post należy', - 'categories_placeholder' => 'Nie ma żadnej kategorii, powinieneś utworzyć przynajmniej jedną.', - 'tab_manage' => 'Zarządzaj', - 'published_on' => 'Opublikowane', - 'excerpt' => 'Zalążek', - 'summary' => 'Summary', - 'featured_images' => 'Załączone grafiki', - 'delete_confirm' => 'Czy naprawdę chcesz usunąć ten post?', - 'delete_success' => 'Posty zostały pomyślnie usunięte.', - 'close_confirm' => 'Ten post nie jest zapisany.', - 'return_to_posts' => 'Wróć do listy postów', - ], - 'categories' => [ - 'list_title' => 'Zarządzaj kategoriami postów', - 'new_category' => 'Nowa kategoria', - 'uncategorized' => 'Bez kategorii', - ], - 'category' => [ - 'name' => 'Nazwa', - 'name_placeholder' => 'Nazwa nowej kategorii', - 'description' => 'Opis', - 'slug' => 'Alias', - 'slug_placeholder' => 'alias-nowej-kategorii', - 'posts' => 'Posty', - 'delete_confirm' => 'Czy naprawdę chcesz usunąć tę kategorię?', - 'delete_success' => 'Kategorie zostały pomyślnie usunięte.', - 'return_to_categories' => 'Wróć do listy kategorii', - 'reorder' => 'Zmień kolejnośc kategorii', - ], - 'menuitem' => [ - 'blog_category' => 'Kategorie', - 'all_blog_categories' => 'Wszystkie kategorie', - 'blog_post' => 'Post na bloga', - 'all_blog_posts' => 'Wszystkie posty', - 'category_blog_posts' => 'Posty w kategorii', - ], - 'settings' => [ - 'category_title' => 'Lista kategorii', - 'category_description' => 'Wyświetla listę blogowych kategorii na stronie.', - 'category_slug' => 'Alias kategorii', - 'category_slug_description' => 'Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.', - 'category_display_empty' => 'Pokaż puste kategorie', - 'category_display_empty_description' => 'Pokazuje kategorie, które nie posiadają postów', - 'category_page' => 'Strona kategorii', - 'category_page_description' => 'Nazwa strony kategorii gdzie są pokazywane linki. Ten parametr jest domyślnie używany przez komponent.', - 'post_title' => 'Post', - 'post_description' => 'Wyświetla pojedynczy post na stronie.', - 'post_slug' => 'Alias postu', - 'post_slug_description' => 'Szuka post po nazwie aliasu.', - 'post_category' => 'Strona kategorii', - 'post_category_description' => 'Nazwa strony kategorii gdzie są pokazywane linki. Ten parametr jest domyślnie używany przez komponent.', - 'posts_title' => 'Lista postów', - 'posts_description' => 'Wyświetla kilka ostatnich postów.', - 'posts_pagination' => 'Numer strony', - 'posts_pagination_description' => 'Ta wartość odpowiada za odczytanie numeru strony.', - 'posts_filter' => 'Filtr kategorii', - 'posts_filter_description' => 'Wprowadź alias kategorii lub adres URL aby filtrować posty. Pozostaw puste aby pokazać wszystkie.', - 'posts_per_page' => 'Ilość postów na strone', - 'posts_per_page_validation' => 'Nieprawidłowa wartość ilości postów na strone', - 'posts_no_posts' => 'Komunikat o braku postów', - 'posts_no_posts_description' => 'Wiadomość, która ukaże się kiedy komponent nie odnajdzie postów. Ten parametr jest domyślnie używany przez komponent.', - 'posts_no_posts_default' => 'Nie znaleziono postów', - 'posts_order' => 'Kolejność postów', - 'posts_order_description' => 'Parametr przez który mają być sortowane posty', - 'posts_category' => 'Strona kategorii', - 'posts_category_description' => 'Nazwa strony kategorii w wyświetlaniu linków "Posted into" [Opublikowano w]. Ten parametr jest domyślnie używany przez komponent.', - 'posts_post' => 'Strona postu', - 'posts_post_description' => 'Nazwa strony postu dla linków "Learn more" [Czytaj więcej]. Ten parametr jest domyślnie używany przez komponent.', - 'posts_except_post' => 'Wyklucz posty', - 'posts_except_post_description' => 'Wprowadź ID/URL lub zmienną z ID/URL postu, który chcesz wykluczyć', - 'posts_except_post_validation' => 'Wartość pola wykluczenia postów musi być pojedynczym ID/aliasem lub listą ID/aliasów rozdzieloną przecinkami', - 'posts_except_categories' => 'Wyklucz kategorie', - 'posts_except_categories_description' => 'Wprowadź listę aliasów kategorii rozdzieloną przecinkami lub zmienną zawierającą taką listę', - 'posts_except_categories_validation' => 'Wartośc pola wykluczenia kategorii musi być pojedynczym aliasem lub listą aliasów rozdzielonych przecinkami', - 'rssfeed_blog' => 'Strona bloga', - 'rssfeed_blog_description' => 'Nazwa strony głównej bloga do generowania linków. Używane przez domyślny fragment komponentu.', - 'rssfeed_title' => 'Kanał RSS', - 'rssfeed_description' => 'Generuje kanał RSS zawierający posty z bloga.', - 'group_links' => 'Linki', - 'group_exceptions' => 'Wyjątki', - ], - 'sorting' => [ - 'title_asc' => 'Tytuł (rosnąco)', - 'title_desc' => 'Tytuł (malejąco)', - 'created_asc' => 'Data utworzenia (rosnąco)', - 'created_desc' => 'Data utworzenia (malejąco)', - 'updated_asc' => 'Data aktualizacji (rosnąco)', - 'updated_desc' => 'Data aktualizacji (malejąco)', - 'published_asc' => 'Data publikacji (rosnąco)', - 'published_desc' => 'Data publikacji (malejąco)', - 'random' => 'Losowo', - ], - 'import' => [ - 'update_existing_label' => 'Aktualizuj istniejące wpisy', - 'update_existing_comment' => 'Zaznacz to pole, aby zaktualizować posty, które mają taki sam identyfikator (ID), tytuł lub alias.', - 'auto_create_categories_label' => 'Utwórz kategorie podane w pliku', - 'auto_create_categories_comment' => 'Aby skorzystać z tej funkcji powinieneś dopasować kolumnę Kategorii. W przeciwnym wypadku wybierz domyślną kategorię do użycia poniżej.', - 'categories_label' => 'Kategorie', - 'categories_comment' => 'Wybierz kategorię, do której będą należeć zaimportowane posty (opcjonalne).', - 'default_author_label' => 'Domyślny autor postów (opcjonalne)', - 'default_author_comment' => 'Import spróbuje dopasować istniejącego autora na podstawie kolumny email. W przypadku niepowodzenia zostanie użyty autor wybrany powyżej.', - 'default_author_placeholder' => '-- wybierz autora --', - ], -]; diff --git a/lang/pt-br.json b/lang/pt-br.json new file mode 100644 index 00000000..015eca44 --- /dev/null +++ b/lang/pt-br.json @@ -0,0 +1,92 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "A plataforma de blogs robusta.", + "Manage Blog Posts": "Gerencie os posts do blog", + "Posts": "Posts", + "Blog post": "Blog post", + "Categories": "Categorias", + "Blog category": "Blog categoria", + "Manage the blog posts": "Gerencie os posts do blog", + "Manage the blog categories": "Gerenciar as categorias de blog", + "Manage other users blog posts": "Gerencie outros posts de usuários do blog", + "Allowed to import and export posts": "Permissão para importação e exportação de mensagens", + "Allowed to publish posts": "Permitido publicar posts", + "Are you sure?": "Você tem certeza?", + "Published": "Publicados", + "Drafts": "Rascunhos", + "Total": "Total", + "Category": "Categoria", + "Date": "Data", + "New Post": "Novo post", + "Export Posts": "Exportar posts", + "Import Posts": "Importar posts", + "Title": "Título", + "New post title": "Novo título do post", + "Content": "Conteúdo", + "HTML Content": "HTML Conteúdo", + "Slug": "Slug", + "new-post-slug": "slug-do-post", + "Author Email": "Autor Email", + "Created": "Criado", + "Created date": "Data de criação", + "Updated": "Atualizado", + "Updated date": "Data de atualização", + "Published date": "Data de publicação", + "Please specify the published date": "Por favor, especifique a data de publicação", + "Edit": "Editar", + "Select categories the blog post belongs to": "Selecione as categorias do blog que o post pertence.", + "There are no categories, you should create one first!": "Não há categorias, você deve criar um primeiro!", + "Manage": "Gerenciar", + "Published on": "Publicado em", + "Excerpt": "Resumo", + "Summary": "Resumo", + "Featured Images": "Imagens destacadas", + "Delete this post?": "Você realmente deseja excluir este post?", + "The post is not saved.": "O post não foi salvo.", + "Return to posts list": "Voltar à lista de posts", + "New Category": "Nova categoria", + "Uncategorized": "Sem categoria", + "Name": "Nome", + "New category name": "Novo nome para a categoria", + "Description": "Descrição", + "new-category-slug": "novo-slug-da-categoria", + "Delete this category?": "Você realmente quer apagar esta categoria?", + "Return to the blog category list": "Voltar para a lista de categorias do blog", + "Reorder Categories": "Reordenar Categorias", + "Blog Category": "Blog categoria", + "All Blog Categories": "Todas as categorias de blog", + "Blog Post": "Blog post", + "All Blog Posts": "Todas as postagens do blog", + "Category List": "Lista de categoria", + "Displays a list of blog categories on the page.": "Exibe uma lista de categorias de blog na página.", + "Category slug": "Slug da categoria", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Olhe para cima, a categoria do blog já está usando o valor fornecido! Esta propriedade é usada pelo componente default parcial para a marcação da categoria atualmente ativa.", + "Display empty categories": "xibir categorias vazias", + "Show categories that do not have any posts.": "Mostrar categorias que não tem nenhum post.", + "Category page": "Página da categoria", + "Name of the category page file for the category links. This property is used by the default component partial.": "Nome do arquivo de página da categoria para os links de categoria. Esta propriedade é usada pelo componente default parcial.", + "Post": "Post", + "Displays a blog post on the page.": "Exibe um post na página.", + "Post slug": "Post slug", + "Look up the blog post using the supplied slug value.": "Procure o post do blog usando o valor do slug fornecido.", + "Post List": "Lista de posts", + "Displays a list of latest blog posts on the page.": "Exibe uma lista de últimas postagens na página.", + "Page number": "Número da pagina", + "This value is used to determine what page the user is on.": "Esse valor é usado para determinar qual página o usuário está.", + "Category filter": "Filtro de categoria", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Digite um slug de categoria ou parâmetro de URL para filtrar as mensagens. Deixe em branco para mostrar todas as mensagens.", + "Posts per page": "Posts por página", + "Invalid format of the posts per page value": "Formato inválido das mensagens por valor de página", + "No posts message": "Nenhuma mensagem de posts", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Mensagem para exibir na lista post no caso, se não há mensagens. Esta propriedade é usada pelo componente default parcial.", + "Post order": "Orde posts", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Nome do arquivo de página da categoria para os links de categoria. Esta propriedade é usada pelo componente default parcial.", + "Post page": "Página de posts", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Nome do arquivo post página para os \"Saiba mais\" links. Esta propriedade é usada pelo componente default parcial.", + "Except post": "Except post", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Enter ID/URL or variable with post ID/URL you want to except", + "Blog page": "Página do Blog", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Nome do arquivo principal da página do blog para geração de links. Essa propriedade é usada pelo componente padrão parcial.", + "RSS Feed": "RSS Feed", + "Generates an RSS feed containing posts from the blog.": "Gera um feed RSS que contém posts do blog." +} diff --git a/lang/pt-br/lang.php b/lang/pt-br/lang.php deleted file mode 100644 index 98037ce2..00000000 --- a/lang/pt-br/lang.php +++ /dev/null @@ -1,124 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'A plataforma de blogs robusta.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Gerencie os posts do blog', - 'posts' => 'Posts', - 'create_post' => 'Blog post', - 'categories' => 'Categorias', - 'create_category' => 'Blog categoria', - 'tab' => 'Blog', - 'access_posts' => 'Gerencie os posts do blog', - 'access_categories' => 'Gerenciar as categorias de blog', - 'access_other_posts' => 'Gerencie outros posts de usuários do blog', - 'access_import_export' => 'Permissão para importação e exportação de mensagens', - 'access_publish' => 'Permitido publicar posts', - 'delete_confirm' => 'Você tem certeza?', - 'chart_published' => 'Publicados', - 'chart_drafts' => 'Rascunhos', - 'chart_total' => 'Total' - ], - 'posts' => [ - 'list_title' => 'Gerencie os posts do blog', - 'filter_category' => 'Categoria', - 'filter_published' => 'Esconder publicados', - 'filter_date' => 'Data', - 'new_post' => 'Novo post', - 'export_post' => 'Exportar posts', - 'import_post' => 'Importar posts' - ], - 'post' => [ - 'title' => 'Título', - 'title_placeholder' => 'Novo título do post', - 'content' => 'Conteúdo', - 'content_html' => 'HTML Conteúdo', - 'slug' => 'Slug', - 'slug_placeholder' => 'slug-do-post', - 'categories' => 'Categorias', - 'author_email' => 'Autor Email', - 'created' => 'Criado', - 'created_date' => 'Data de criação', - 'updated' => 'Atualizado', - 'updated_date' => 'Data de atualização', - 'published' => 'Publicado', - 'published_date' => 'Data de publicação', - 'published_validation' => 'Por favor, especifique a data de publicação', - 'tab_edit' => 'Editar', - 'tab_categories' => 'Categorias', - 'categories_comment' => 'Selecione as categorias do blog que o post pertence.', - 'categories_placeholder' => 'Não há categorias, você deve criar um primeiro!', - 'tab_manage' => 'Gerenciar', - 'published_on' => 'Publicado em', - 'excerpt' => 'Resumo', - 'summary' => 'Resumo', - 'featured_images' => 'Imagens destacadas', - 'delete_confirm' => 'Você realmente deseja excluir este post?', - 'close_confirm' => 'O post não foi salvo.', - 'return_to_posts' => 'Voltar à lista de posts' - ], - 'categories' => [ - 'list_title' => 'Gerenciar as categorias do blog', - 'new_category' => 'Nova categoria', - 'uncategorized' => 'Sem categoria' - ], - 'category' => [ - 'name' => 'Nome', - 'name_placeholder' => 'Novo nome para a categoria', - 'description' => 'Descrição', - 'slug' => 'Slug', - 'slug_placeholder' => 'novo-slug-da-categoria', - 'posts' => 'Posts', - 'delete_confirm' => 'Você realmente quer apagar esta categoria?', - 'return_to_categories' => 'Voltar para a lista de categorias do blog', - 'reorder' => 'Reordenar Categorias' - ], - 'menuitem' => [ - 'blog_category' => 'Blog categoria', - 'all_blog_categories' => 'Todas as categorias de blog', - 'blog_post' => 'Blog post', - 'all_blog_posts' => 'Todas as postagens do blog' - ], - 'settings' => [ - 'category_title' => 'Lista de categoria', - 'category_description' => 'Exibe uma lista de categorias de blog na página.', - 'category_slug' => 'Slug da categoria', - 'category_slug_description' => "Olhe para cima, a categoria do blog já está usando o valor fornecido! Esta propriedade é usada pelo componente default parcial para a marcação da categoria atualmente ativa.", - 'category_display_empty' => 'xibir categorias vazias', - 'category_display_empty_description' => 'Mostrar categorias que não tem nenhum post.', - 'category_page' => 'Página da categoria', - 'category_page_description' => 'Nome do arquivo de página da categoria para os links de categoria. Esta propriedade é usada pelo componente default parcial.', - 'post_title' => 'Post', - 'post_description' => 'Exibe um post na página.', - 'post_slug' => 'Post slug', - 'post_slug_description' => "Procure o post do blog usando o valor do slug fornecido.", - 'post_category' => 'Página da categoria', - 'post_category_description' => 'Nome do arquivo de página da categoria para os links de categoria. Esta propriedade é usada pelo componente default parcial.', - 'posts_title' => 'Lista de posts', - 'posts_description' => 'Exibe uma lista de últimas postagens na página.', - 'posts_pagination' => 'Número da pagina', - 'posts_pagination_description' => 'Esse valor é usado para determinar qual página o usuário está.', - 'posts_filter' => 'Filtro de categoria', - 'posts_filter_description' => 'Digite um slug de categoria ou parâmetro de URL para filtrar as mensagens. Deixe em branco para mostrar todas as mensagens.', - 'posts_per_page' => 'Posts por página', - 'posts_per_page_validation' => 'Formato inválido das mensagens por valor de página', - 'posts_no_posts' => 'Nenhuma mensagem de posts', - 'posts_no_posts_description' => 'Mensagem para exibir na lista post no caso, se não há mensagens. Esta propriedade é usada pelo componente default parcial.', - 'posts_order' => 'Orde posts', - 'posts_order_decription' => 'Atributo em que as mensagens devem ser ordenados', - 'posts_category' => 'Página de Categoria', - 'posts_category_description' => 'Nome do arquivo de página da categoria para os links de categoria. Esta propriedade é usada pelo componente default parcial.', - 'posts_post' => 'Página de posts', - 'posts_post_description' => 'Nome do arquivo post página para os "Saiba mais" links. Esta propriedade é usada pelo componente default parcial.', - 'posts_except_post' => 'Except post', - 'posts_except_post_description' => 'Enter ID/URL or variable with post ID/URL you want to except', - 'rssfeed_blog' => 'Página do Blog', - 'rssfeed_blog_description' => 'Nome do arquivo principal da página do blog para geração de links. Essa propriedade é usada pelo componente padrão parcial.', - 'rssfeed_title' => 'RSS Feed', - 'rssfeed_description' => 'Gera um feed RSS que contém posts do blog.' - ] -]; diff --git a/lang/ru.json b/lang/ru.json new file mode 100644 index 00000000..92711e36 --- /dev/null +++ b/lang/ru.json @@ -0,0 +1,122 @@ +{ + "Blog": "Блог", + "A robust blogging platform.": "Надежная блоговая-платформа.", + "Manage Blog Posts": "Управление Блогом", + "Posts": "Записи", + "Blog post": "записи", + "Categories": "Категории", + "Blog category": "категории", + "Manage the blog posts": "Управление записями блога", + "Manage the blog categories": "Управление категориями блога", + "Manage other users blog posts": "Управление записями других пользователей", + "Allowed to import and export posts": "Разрешено импортировать и экспортировать записи", + "Allowed to publish posts": "Разрешено публиковать записи", + "Manage blog settings": "Управление настройками блога", + "Are you sure?": "Вы уверены, что хотите сделать это?", + "Published": "Опубликовано", + "Drafts": "Черновики", + "Total": "Всего", + "Show All Posts to Backend Users": "Показывать все записи для внутренних (бэкенд) пользователей", + "Display both published and unpublished posts on the frontend to backend users": "Показывать опубликованные и неопубликованные записи на фронтенде для внутренних (бэкенд) пользователей", + "General": "Основные", + "Category": "Категория", + "Date": "Дата", + "New Post": "Новая запись", + "Export Posts": "Экспорт записей", + "Import Posts": "Импорт записей", + "Title": "Заголовок", + "New post title": "Новый заголовок записи", + "Content": "Контент", + "HTML Content": "HTML Контент", + "Slug": "URL записи", + "new-post-slug": "new-post-slug", + "Author Email": "Email автора", + "Created": "Создано", + "Created date": "Дата создания", + "Updated": "Обновлено", + "Updated date": "Дата обновления", + "Published date": "Дата публикации", + "Please specify the published date": "Пожалуйста, укажите дату публикации.", + "Edit": "Редактор", + "Select categories the blog post belongs to": "Выберите категории, к которым относится эта запись", + "There are no categories, you should create one first!": "Не найдено ни одной категории, создайте хотя бы одну!", + "Manage": "Управление", + "Published on": "Опубликовано", + "Excerpt": "Отрывок", + "Summary": "Резюме", + "Featured Images": "Тематические изображения", + "Delete this post?": "Вы действительно хотите удалить эту запись?", + "Successfully deleted those posts.": "Эти записи успешно удалены.", + "The post is not saved.": "Запись не была сохранена.", + "Return to posts list": "Вернуться к списку записей", + "New Category": "Новая категория", + "Uncategorized": "Без категории", + "Name": "Название", + "New category name": "Новое имя категории", + "Description": "Описание", + "new-category-slug": "new-category-slug", + "Delete this category?": "Вы действительно хотите удалить эту категорию?", + "Successfully deleted those categories.": "Эти категории успешно удалены.", + "Return to the blog category list": "Вернуться к списку категорий", + "Reorder Categories": "Порядок категорий", + "Blog Category": "Категория блога", + "All Blog Categories": "Все категории блога", + "Blog Post": "Запись блога", + "All Blog Posts": "Все записи блога", + "Blog Category Posts": "Записи категории блога", + "Category List": "Список категорий блога", + "Displays a list of blog categories on the page.": "Отображает список категорий на странице.", + "Category slug": "Параметр URL", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Параметр маршрута, используемый для поиска в текущей категории по URL. Это свойство используется по умолчанию компонентом Фрагменты для маркировки активной категории.", + "Display empty categories": "Пустые категории", + "Show categories that do not have any posts.": "Отображать категории, которые не имеют записей.", + "Category page": "Страница категорий", + "Name of the category page file for the category links. This property is used by the default component partial.": "Название страницы категорий. Это свойство используется по умолчанию компонентом Фрагменты.", + "Post": "Запись блога", + "Displays a blog post on the page.": "Отображение записи блога", + "Post slug": "Параметр URL", + "Look up the blog post using the supplied slug value.": "Параметр маршрута, необходимый для выбора конкретной записи.", + "Post List": "Список записей блога", + "Displays a list of latest blog posts on the page.": "Отображает список последних записей блога на странице.", + "Page number": "Параметр постраничной навигации", + "This value is used to determine what page the user is on.": "Параметр, необходимый для постраничной навигации.", + "Category filter": "Фильтр категорий", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Введите URL категории или параметр URL-адреса для фильтрации записей. Оставьте пустым, чтобы посмотреть все записи.", + "Posts per page": "Записей на странице", + "Invalid format of the posts per page value": "Недопустимый Формат. Ожидаемый тип данных - действительное число.", + "No posts message": "Отсутствие записей", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Сообщение, отображаемое в блоге, если отсутствуют записи. Это свойство используется по умолчанию компонентом Фрагменты.", + "No posts found": "Записей не найдено", + "Post order": "Сортировка", + "Attribute on which the posts should be ordered": "Атрибут, по которому будут сортироваться записи.", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Название категории на странице записи \"размещена в категории\". Это свойство используется по умолчанию компонентом Фрагменты.", + "Post page": "Страница записи", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Название страницы для ссылки \"подробнее\". Это свойство используется по умолчанию компонентом Фрагменты.", + "Except post": "Кроме записи", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Введите ID/URL или переменную с ID/URL записи, которую вы хотите исключить", + "Except categories": "Кроме категорий", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Введите разделенный запятыми список URL категорий или переменную со списком категорий, которые вы хотите исключить", + "Blog page": "Страница блога", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Имя основного файла страницы блога для генерации ссылок. Это свойство используется по умолчанию компонентом Фрагменты.", + "RSS Feed": "RSS Feed", + "Generates an RSS feed containing posts from the blog.": "Создает RSS-канал, содержащий записи из блога.", + "Links": "Ссылки", + "Exceptions": "Исключения", + "Title (ascending)": "Заголовок (по возрастанию)", + "Title (descending)": "Заголовок (по убыванию)", + "Created (ascending)": "Создано (по возрастанию)", + "Created (descending)": "Создано (по убыванию)", + "Updated (ascending)": "Обновлено (по возрастанию)", + "Updated (descending)": "Обновлено (по убыванию)", + "Published (ascending)": "Опубликовано (по возрастанию)", + "Published (descending)": "Опубликовано (по убыванию)", + "Random": "Случайно", + "Update existing posts": "Обновить существующие записи", + "Check this box to update posts that have exactly the same ID, title or slug.": "Установите этот флажок, чтобы обновлять записи имеющие одинаковый ID, title или URL.", + "Create categories specified in the import file": "Создать категории указанные в импортируемом файле", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Вы должны сопоставить столбец Категории, чтобы использовать эту функцию. В противном случае выберите для назначения категорию по умолчанию из пунктов ниже.", + "Select the categories that imported posts will belong to (optional).": "Выберите категории, к которым будут принадлежать импортированные записи (необязательно).", + "Default post author (optional)": "Автор записи по умолчанию (необязательно)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Импорт попытается использовать существующего автора, если он соответствуете столбцу Email автора, в противном случае используется указанный выше автор.", + "-- select author --": "-- выберите автора --" +} diff --git a/lang/ru/lang.php b/lang/ru/lang.php deleted file mode 100644 index 4a8be1b7..00000000 --- a/lang/ru/lang.php +++ /dev/null @@ -1,159 +0,0 @@ - [ - 'name' => 'Блог', - 'description' => 'Надежная блоговая-платформа.' - ], - 'blog' => [ - 'menu_label' => 'Блог', - 'menu_description' => 'Управление Блогом', - 'posts' => 'Записи', - 'create_post' => 'записи', - 'categories' => 'Категории', - 'create_category' => 'категории', - 'tab' => 'Блог', - 'access_posts' => 'Управление записями блога', - 'access_categories' => 'Управление категориями блога', - 'access_other_posts' => 'Управление записями других пользователей', - 'access_import_export' => 'Разрешено импортировать и экспортировать записи', - 'access_publish' => 'Разрешено публиковать записи', - 'manage_settings' => 'Управление настройками блога', - 'delete_confirm' => 'Вы уверены, что хотите сделать это?', - 'chart_published' => 'Опубликовано', - 'chart_drafts' => 'Черновики', - 'chart_total' => 'Всего', - 'settings_description' => 'Управление настройками блога', - 'show_all_posts_label' => 'Показывать все записи для внутренних (бэкенд) пользователей', - 'show_all_posts_comment' => 'Показывать опубликованные и неопубликованные записи на фронтенде для внутренних (бэкенд) пользователей', - 'tab_general' => 'Основные' - ], - 'posts' => [ - 'list_title' => 'Управление записями блога', - 'filter_category' => 'Категория', - 'filter_published' => 'Скрыть опубликованные', - 'filter_date' => 'Дата', - 'new_post' => 'Новая запись', - 'export_post' => 'Экспорт записей', - 'import_post' => 'Импорт записей' - ], - 'post' => [ - 'title' => 'Заголовок', - 'title_placeholder' => 'Новый заголовок записи', - 'content' => 'Контент', - 'content_html' => 'HTML Контент', - 'slug' => 'URL записи', - 'slug_placeholder' => 'new-post-slug', - 'categories' => 'Категории', - 'author_email' => 'Email автора', - 'created' => 'Создано', - 'created_date' => 'Дата создания', - 'updated' => 'Обновлено', - 'updated_date' => 'Дата обновления', - 'published' => 'Опубликовано', - 'published_date' => 'Дата публикации', - 'published_validation' => 'Пожалуйста, укажите дату публикации.', - 'tab_edit' => 'Редактор', - 'tab_categories' => 'Категории', - 'categories_comment' => 'Выберите категории, к которым относится эта запись', - 'categories_placeholder' => 'Не найдено ни одной категории, создайте хотя бы одну!', - 'tab_manage' => 'Управление', - 'published_on' => 'Опубликовано', - 'excerpt' => 'Отрывок', - 'summary' => 'Резюме', - 'featured_images' => 'Тематические изображения', - 'delete_confirm' => 'Вы действительно хотите удалить эту запись?', - 'delete_success' => 'Эти записи успешно удалены.', - 'close_confirm' => 'Запись не была сохранена.', - 'return_to_posts' => 'Вернуться к списку записей' - ], - 'categories' => [ - 'list_title' => 'Управление категориями блога', - 'new_category' => 'Новая категория', - 'uncategorized' => 'Без категории' - ], - 'category' => [ - 'name' => 'Название', - 'name_placeholder' => 'Новое имя категории', - 'description' => 'Описание', - 'slug' => 'URL адрес', - 'slug_placeholder' => 'new-category-slug', - 'posts' => 'Записи', - 'delete_confirm' => 'Вы действительно хотите удалить эту категорию?', - 'delete_success' => 'Эти категории успешно удалены.', - 'return_to_categories' => 'Вернуться к списку категорий', - 'reorder' => 'Порядок категорий' - ], - 'menuitem' => [ - 'blog_category' => 'Категория блога', - 'all_blog_categories' => 'Все категории блога', - 'blog_post' => 'Запись блога', - 'all_blog_posts' => 'Все записи блога', - 'category_blog_posts' => 'Записи категории блога' - ], - 'settings' => [ - 'category_title' => 'Список категорий блога', - 'category_description' => 'Отображает список категорий на странице.', - 'category_slug' => 'Параметр URL', - 'category_slug_description' => 'Параметр маршрута, используемый для поиска в текущей категории по URL. Это свойство используется по умолчанию компонентом Фрагменты для маркировки активной категории.', - 'category_display_empty' => 'Пустые категории', - 'category_display_empty_description' => 'Отображать категории, которые не имеют записей.', - 'category_page' => 'Страница категорий', - 'category_page_description' => 'Название страницы категорий. Это свойство используется по умолчанию компонентом Фрагменты.', - 'post_title' => 'Запись блога', - 'post_description' => 'Отображение записи блога', - 'post_slug' => 'Параметр URL', - 'post_slug_description' => 'Параметр маршрута, необходимый для выбора конкретной записи.', - 'post_category' => 'Страница категорий', - 'post_category_description' => 'Название страницы категорий. Это свойство используется по умолчанию компонентом Фрагменты.', - 'posts_title' => 'Список записей блога', - 'posts_description' => 'Отображает список последних записей блога на странице.', - 'posts_pagination' => 'Параметр постраничной навигации', - 'posts_pagination_description' => 'Параметр, необходимый для постраничной навигации.', - 'posts_filter' => 'Фильтр категорий', - 'posts_filter_description' => 'Введите URL категории или параметр URL-адреса для фильтрации записей. Оставьте пустым, чтобы посмотреть все записи.', - 'posts_per_page' => 'Записей на странице', - 'posts_per_page_validation' => 'Недопустимый Формат. Ожидаемый тип данных - действительное число.', - 'posts_no_posts' => 'Отсутствие записей', - 'posts_no_posts_description' => 'Сообщение, отображаемое в блоге, если отсутствуют записи. Это свойство используется по умолчанию компонентом Фрагменты.', - 'posts_no_posts_default' => 'Записей не найдено', - 'posts_order' => 'Сортировка', - 'posts_order_description' => 'Атрибут, по которому будут сортироваться записи.', - 'posts_category' => 'Страница категорий', - 'posts_category_description' => 'Название категории на странице записи "размещена в категории". Это свойство используется по умолчанию компонентом Фрагменты.', - 'posts_post' => 'Страница записи', - 'posts_post_description' => 'Название страницы для ссылки "подробнее". Это свойство используется по умолчанию компонентом Фрагменты.', - 'posts_except_post' => 'Кроме записи', - 'posts_except_post_description' => 'Введите ID/URL или переменную с ID/URL записи, которую вы хотите исключить', - 'posts_except_categories' => 'Кроме категорий', - 'posts_except_categories_description' => 'Введите разделенный запятыми список URL категорий или переменную со списком категорий, которые вы хотите исключить', - 'rssfeed_blog' => 'Страница блога', - 'rssfeed_blog_description' => 'Имя основного файла страницы блога для генерации ссылок. Это свойство используется по умолчанию компонентом Фрагменты.', - 'rssfeed_title' => 'RSS Feed', - 'rssfeed_description' => 'Создает RSS-канал, содержащий записи из блога.', - 'group_links' => 'Ссылки', - 'group_exceptions' => 'Исключения' - ], - 'sorting' => [ - 'title_asc' => 'Заголовок (по возрастанию)', - 'title_desc' => 'Заголовок (по убыванию)', - 'created_asc' => 'Создано (по возрастанию)', - 'created_desc' => 'Создано (по убыванию)', - 'updated_asc' => 'Обновлено (по возрастанию)', - 'updated_desc' => 'Обновлено (по убыванию)', - 'published_asc' => 'Опубликовано (по возрастанию)', - 'published_desc' => 'Опубликовано (по убыванию)', - 'random' => 'Случайно' - ], - 'import' => [ - 'update_existing_label' => 'Обновить существующие записи', - 'update_existing_comment' => 'Установите этот флажок, чтобы обновлять записи имеющие одинаковый ID, title или URL.', - 'auto_create_categories_label' => 'Создать категории указанные в импортируемом файле', - 'auto_create_categories_comment' => 'Вы должны сопоставить столбец Категории, чтобы использовать эту функцию. В противном случае выберите для назначения категорию по умолчанию из пунктов ниже.', - 'categories_label' => 'Категории', - 'categories_comment' => 'Выберите категории, к которым будут принадлежать импортированные записи (необязательно).', - 'default_author_label' => 'Автор записи по умолчанию (необязательно)', - 'default_author_comment' => 'Импорт попытается использовать существующего автора, если он соответствуете столбцу Email автора, в противном случае используется указанный выше автор.', - 'default_author_placeholder' => '-- выберите автора --' - ] -]; diff --git a/lang/sk.json b/lang/sk.json new file mode 100644 index 00000000..8d67d6a9 --- /dev/null +++ b/lang/sk.json @@ -0,0 +1,118 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Robustná blogová platforma.", + "Manage Blog Posts": "Správa blogových príspevkov", + "Posts": "Príspevky", + "Blog post": "Príspevok", + "Categories": "Kategórie", + "Blog category": "Kategórie príspevkov", + "Manage the blog posts": "Správa blogových príspevkov", + "Manage the blog categories": "Správa blogových kategórií", + "Manage other users blog posts": "Správa blogových príspevkov ostatných užívateľov", + "Allowed to import and export posts": "Možnosť importu a exportu príspevkov", + "Allowed to publish posts": "Možnosť publikovať príspevky", + "Are you sure?": "Ste si istý?", + "Published": "PublikovanéPublished", + "Drafts": "Koncepty", + "Total": "Celkom", + "Category": "Kategória", + "Date": "Dátum", + "New Post": "Nový príspevok", + "Export Posts": "Exportovať príspevky", + "Import Posts": "Importovať príspevky", + "Title": "Názov", + "New post title": "Názov nového príspevku", + "Content": "Obsah", + "HTML Content": "HTML Obsah", + "Slug": "URL príspevku", + "new-post-slug": "url-nového-príspevku", + "Author Email": "Email autora", + "Created": "Vytvorené", + "Created date": "Dátum vytvorenia", + "Updated": "Upravené", + "Updated date": "Dátum upravenia", + "Published date": "Dátum publikovania", + "Please specify the published date": "Prosím zvoľte dátum publikovania príspevku", + "Edit": "Upraviť", + "Select categories the blog post belongs to": "Vyberte kategórie do ktorých tento príspevok patrí", + "There are no categories, you should create one first!": "Neexistujú žiadne kategórie, najprv nejakú vytvorte!", + "Manage": "Nastavenia", + "Published on": "Dátum publikovania", + "Excerpt": "Výňatok príspevku", + "Summary": "Zhrnutie", + "Featured Images": "Obrázky", + "Delete this post?": "Zmazať tento príspevok?", + "Successfully deleted those posts.": "Vybrané príspevky boli úspešne odstránené.", + "The post is not saved.": "Príspevok nie je uložený.", + "Return to posts list": "Späť na zoznam príspevkov", + "New Category": "Nová kategória", + "Uncategorized": "Nezaradené", + "Name": "Názov", + "New category name": "Názov novej kategórie", + "Description": "Popis", + "new-category-slug": "url-novej-kategórie", + "Delete this category?": "Zmazať túto kategóriu?", + "Successfully deleted those categories.": "Vybrané kategórie boli úspešne odstránené.", + "Return to the blog category list": "Späť na zoznam kategórií", + "Reorder Categories": "Zmeniť poradie kategórií", + "Blog Category": "Blogová kategória", + "All Blog Categories": "Všetky blogové kategórie", + "Blog Post": "Blogové príspevky", + "All Blog Posts": "Všetky blogové príspevky", + "Blog Category Posts": "Blogové príspevky v kategórií", + "Category List": "Zoznam kategórií", + "Displays a list of blog categories on the page.": "Zobrazí zoznam blogových kategórií na stránke.", + "Category slug": "URL kategórie", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Nájde blogovú kategóriu s týmto URL. Používa sa pre zobrazenie aktívnej kategórie.", + "Display empty categories": "Zobraziť prázdne kategórie", + "Show categories that do not have any posts.": "Zobrazí kategórie, ktoré nemajú žiadne príspevky.", + "Category page": "Stránka kategórie", + "Name of the category page file for the category links. This property is used by the default component partial.": "Názov stránky kategórie kam budú smerovať odkazy na kategóriu. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.", + "Post": "Príspevok", + "Displays a blog post on the page.": "Zobrazí blogový príspevok na stránke.", + "Post slug": "URL príspevku", + "Look up the blog post using the supplied slug value.": "Nájde blogový príspevok s týmto URL.", + "Post List": "Zoznam príspevkov", + "Displays a list of latest blog posts on the page.": "Zobrazí zoznam blogových príspevkov na stránke.", + "Page number": "číslo stránky", + "This value is used to determine what page the user is on.": "Táto hodnota je použitá na určenie na akej stránke sa užívateľ nachádza.", + "Category filter": "Filter kategórií", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Zadajte URL kategórie alebo URL parameter na filtrovanie príspevkov. Nechajte prázdne pre zobrazenie všetkých príspevkov.", + "Posts per page": "Príspevkov na stránku", + "Invalid format of the posts per page value": "Neplatný formát hodnoty počtu príspevkov na stránku", + "No posts message": "Správa prázdnej stránky", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Správa, ktorá bude zobrazená v zozname príspevkov v prípade, že nie sú žiadne na zobrazenie. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.", + "No posts found": "Nenašli sa žiadne príspevky", + "Post order": "Zoradenie príspevkov", + "Attribute on which the posts should be ordered": "Atribút podľa ktorého budú príspevky zoradené", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Názov stránky kategórie kam budú smerovať odkazy \"Vložené do\". Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.", + "Post page": "Stránka príspevku", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Názov stránky príspevku kam budú smerovať odkazy \"Zistiť viac\". Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.", + "Except post": "Okrem príspevku", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Zadajte ID/URL alebo premennú s ID/URL príspevku, ktorý chcete vylúčiť", + "Except categories": "Okrem kategórií", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Zadajte zoznam kategórií oddelený čiarkami alebo premennú s týmto zoznamom, ktoré chcete vylúčiť", + "Blog page": "Stránka blogu", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Názov hlavnej stránky blogu na generovanie odkazov. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.", + "RSS Feed": "RSS Kanál", + "Generates an RSS feed containing posts from the blog.": "Vygeneruje RSS kanál, ktorý obsahuje blogové príspevky.", + "Links": "Odkazy", + "Exceptions": "Výnimky", + "Title (ascending)": "Názov (vzostupne)", + "Title (descending)": "Názov (zostupne)", + "Created (ascending)": "Vytvorené (vzostupne)", + "Created (descending)": "Vytvorené (zostupne)", + "Updated (ascending)": "Upravené (vzostupne)", + "Updated (descending)": "Upravené (zostupne)", + "Published (ascending)": "Publikované (vzostupne)", + "Published (descending)": "Publikované (zostupne)", + "Random": "Náhodne", + "Update existing posts": "Aktualizovať existujúce príspevky", + "Check this box to update posts that have exactly the same ID, title or slug.": "Začiarknutím tohto políčka aktualizujte príspevky, ktoré majú presne to isté ID, titul alebo URL príspevku.", + "Create categories specified in the import file": "Vytvoriť kategórie zadané v importovanom súbore", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Ak chcete túto funkciu použiť, mali by sa zhodovať so stĺpcom Kategórie, inak vyberte predvolené kategórie, ktoré chcete použiť z nižšie uvedených položiek.", + "Select the categories that imported posts will belong to (optional).": "Vyberte kategórie, do ktorých budú patriť importované príspevky (voliteľné).", + "Default post author (optional)": "Predvolený autor príspevku (voliteľné)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Import sa pokúsi použiť existujúceho autora, ak sa zhoduje so stĺpcom e-mail, inak sa použije vyššie uvedený autor.", + "-- select author --": "-- vyberte autora --" +} diff --git a/lang/sk/lang.php b/lang/sk/lang.php deleted file mode 100644 index 57567787..00000000 --- a/lang/sk/lang.php +++ /dev/null @@ -1,154 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Robustná blogová platforma.' - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Správa blogových príspevkov', - 'posts' => 'Príspevky', - 'create_post' => 'Príspevok', - 'categories' => 'Kategórie', - 'create_category' => 'Kategórie príspevkov', - 'tab' => 'Blog', - 'access_posts' => 'Správa blogových príspevkov', - 'access_categories' => 'Správa blogových kategórií', - 'access_other_posts' => 'Správa blogových príspevkov ostatných užívateľov', - 'access_import_export' => 'Možnosť importu a exportu príspevkov', - 'access_publish' => 'Možnosť publikovať príspevky', - 'delete_confirm' => 'Ste si istý?', - 'chart_published' => 'PublikovanéPublished', - 'chart_drafts' => 'Koncepty', - 'chart_total' => 'Celkom' - ], - 'posts' => [ - 'list_title' => 'Správa blogových príspevkov', - 'filter_category' => 'Kategória', - 'filter_published' => 'Publikované', - 'filter_date' => 'Dátum', - 'new_post' => 'Nový príspevok', - 'export_post' => 'Exportovať príspevky', - 'import_post' => 'Importovať príspevky' - ], - 'post' => [ - 'title' => 'Názov', - 'title_placeholder' => 'Názov nového príspevku', - 'content' => 'Obsah', - 'content_html' => 'HTML Obsah', - 'slug' => 'URL príspevku', - 'slug_placeholder' => 'url-nového-príspevku', - 'categories' => 'Kategórie', - 'author_email' => 'Email autora', - 'created' => 'Vytvorené', - 'created_date' => 'Dátum vytvorenia', - 'updated' => 'Upravené', - 'updated_date' => 'Dátum upravenia', - 'published' => 'Publikované', - 'published_date' => 'Dátum publikovania', - 'published_validation' => 'Prosím zvoľte dátum publikovania príspevku', - 'tab_edit' => 'Upraviť', - 'tab_categories' => 'Kategórie', - 'categories_comment' => 'Vyberte kategórie do ktorých tento príspevok patrí', - 'categories_placeholder' => 'Neexistujú žiadne kategórie, najprv nejakú vytvorte!', - 'tab_manage' => 'Nastavenia', - 'published_on' => 'Dátum publikovania', - 'excerpt' => 'Výňatok príspevku', - 'summary' => 'Zhrnutie', - 'featured_images' => 'Obrázky', - 'delete_confirm' => 'Zmazať tento príspevok?', - 'delete_success' => 'Vybrané príspevky boli úspešne odstránené.', - 'close_confirm' => 'Príspevok nie je uložený.', - 'return_to_posts' => 'Späť na zoznam príspevkov' - ], - 'categories' => [ - 'list_title' => 'Správa blogových kategórií', - 'new_category' => 'Nová kategória', - 'uncategorized' => 'Nezaradené' - ], - 'category' => [ - 'name' => 'Názov', - 'name_placeholder' => 'Názov novej kategórie', - 'description' => 'Popis', - 'slug' => 'URL kategórie', - 'slug_placeholder' => 'url-novej-kategórie', - 'posts' => 'Počet príspevkov', - 'delete_confirm' => 'Zmazať túto kategóriu?', - 'delete_success' => 'Vybrané kategórie boli úspešne odstránené.', - 'return_to_categories' => 'Späť na zoznam kategórií', - 'reorder' => 'Zmeniť poradie kategórií' - ], - 'menuitem' => [ - 'blog_category' => 'Blogová kategória', - 'all_blog_categories' => 'Všetky blogové kategórie', - 'blog_post' => 'Blogové príspevky', - 'all_blog_posts' => 'Všetky blogové príspevky', - 'category_blog_posts' => 'Blogové príspevky v kategórií' - ], - 'settings' => [ - 'category_title' => 'Zoznam kategórií', - 'category_description' => 'Zobrazí zoznam blogových kategórií na stránke.', - 'category_slug' => 'URL kategórie', - 'category_slug_description' => "Nájde blogovú kategóriu s týmto URL. Používa sa pre zobrazenie aktívnej kategórie.", - 'category_display_empty' => 'Zobraziť prázdne kategórie', - 'category_display_empty_description' => 'Zobrazí kategórie, ktoré nemajú žiadne príspevky.', - 'category_page' => 'Stránka kategórie', - 'category_page_description' => 'Názov stránky kategórie kam budú smerovať odkazy na kategóriu. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.', - 'post_title' => 'Príspevok', - 'post_description' => 'Zobrazí blogový príspevok na stránke.', - 'post_slug' => 'URL príspevku', - 'post_slug_description' => "Nájde blogový príspevok s týmto URL.", - 'post_category' => 'Stránka kategórie', - 'post_category_description' => 'Názov stránky kategórie kam budú smerovať odkazy na kategóriu. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.', - 'posts_title' => 'Zoznam príspevkov', - 'posts_description' => 'Zobrazí zoznam blogových príspevkov na stránke.', - 'posts_pagination' => 'číslo stránky', - 'posts_pagination_description' => 'Táto hodnota je použitá na určenie na akej stránke sa užívateľ nachádza.', - 'posts_filter' => 'Filter kategórií', - 'posts_filter_description' => 'Zadajte URL kategórie alebo URL parameter na filtrovanie príspevkov. Nechajte prázdne pre zobrazenie všetkých príspevkov.', - 'posts_per_page' => 'Príspevkov na stránku', - 'posts_per_page_validation' => 'Neplatný formát hodnoty počtu príspevkov na stránku', - 'posts_no_posts' => 'Správa prázdnej stránky', - 'posts_no_posts_description' => 'Správa, ktorá bude zobrazená v zozname príspevkov v prípade, že nie sú žiadne na zobrazenie. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.', - 'posts_no_posts_default' => 'Nenašli sa žiadne príspevky', - 'posts_order' => 'Zoradenie príspevkov', - 'posts_order_description' => 'Atribút podľa ktorého budú príspevky zoradené', - 'posts_category' => 'Stránka kategórie', - 'posts_category_description' => 'Názov stránky kategórie kam budú smerovať odkazy "Vložené do". Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.', - 'posts_post' => 'Stránka príspevku', - 'posts_post_description' => 'Názov stránky príspevku kam budú smerovať odkazy "Zistiť viac". Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.', - 'posts_except_post' => 'Okrem príspevku', - 'posts_except_post_description' => 'Zadajte ID/URL alebo premennú s ID/URL príspevku, ktorý chcete vylúčiť', - 'posts_except_categories' => 'Okrem kategórií', - 'posts_except_categories_description' => 'Zadajte zoznam kategórií oddelený čiarkami alebo premennú s týmto zoznamom, ktoré chcete vylúčiť', - 'rssfeed_blog' => 'Stránka blogu', - 'rssfeed_blog_description' => 'Názov hlavnej stránky blogu na generovanie odkazov. Táto hodnota je použitá v predvolenej čiastočnej stránke komponentu.', - 'rssfeed_title' => 'RSS Kanál', - 'rssfeed_description' => 'Vygeneruje RSS kanál, ktorý obsahuje blogové príspevky.', - 'group_links' => 'Odkazy', - 'group_exceptions' => 'Výnimky' - ], - 'sorting' => [ - 'title_asc' => 'Názov (vzostupne)', - 'title_desc' => 'Názov (zostupne)', - 'created_asc' => 'Vytvorené (vzostupne)', - 'created_desc' => 'Vytvorené (zostupne)', - 'updated_asc' => 'Upravené (vzostupne)', - 'updated_desc' => 'Upravené (zostupne)', - 'published_asc' => 'Publikované (vzostupne)', - 'published_desc' => 'Publikované (zostupne)', - 'random' => 'Náhodne' - ], - 'import' => [ - 'update_existing_label' => 'Aktualizovať existujúce príspevky', - 'update_existing_comment' => 'Začiarknutím tohto políčka aktualizujte príspevky, ktoré majú presne to isté ID, titul alebo URL príspevku.', - 'auto_create_categories_label' => 'Vytvoriť kategórie zadané v importovanom súbore', - 'auto_create_categories_comment' => 'Ak chcete túto funkciu použiť, mali by sa zhodovať so stĺpcom Kategórie, inak vyberte predvolené kategórie, ktoré chcete použiť z nižšie uvedených položiek.', - 'categories_label' => 'Kategórie', - 'categories_comment' => 'Vyberte kategórie, do ktorých budú patriť importované príspevky (voliteľné).', - 'default_author_label' => 'Predvolený autor príspevku (voliteľné)', - 'default_author_comment' => 'Import sa pokúsi použiť existujúceho autora, ak sa zhoduje so stĺpcom e-mail, inak sa použije vyššie uvedený autor.', - 'default_author_placeholder' => '-- vyberte autora --' - ] -]; diff --git a/lang/sl.json b/lang/sl.json new file mode 100644 index 00000000..6cb565eb --- /dev/null +++ b/lang/sl.json @@ -0,0 +1,126 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Robustna platforma za bloganje.", + "Manage Blog Posts": "Upravljanje bloga", + "Posts": "Objave", + "Blog post": "Blog objava", + "Categories": "Kategorije", + "Blog category": "Blog kategorija", + "Manage the blog posts": "Upravljanje blog objav", + "Manage the blog categories": "Upravljanje blog kategorij", + "Manage other users blog posts": "Upravljanje objav drugih uporabnikov", + "Allowed to import and export posts": "Dovoljenje za uvoz in izvoz objav", + "Allowed to publish posts": "Dovoljenje za objavljanje objav", + "Manage blog settings": "Urejanje nastavitev bloga", + "Are you sure?": "Ali ste prepričani?", + "Published": "Objavljeno", + "Drafts": "Osnutki", + "Total": "Skupaj", + "Show All Posts to Backend Users": "Administratorjem prikaži vse objave", + "Display both published and unpublished posts on the frontend to backend users": "Na spletni strani prikaži administratorjem vse objavljene in neobjavljene objave.", + "General": "Splošno", + "Category": "Kategorija", + "Date": "Datum", + "New Post": "Nova objava", + "Export Posts": "Izvoz objav", + "Import Posts": "Uvoz objav", + "Title": "Naslov", + "New post title": "Naslov nove objave", + "Content": "Vsebina", + "HTML Content": "HTML vsebina", + "Slug": "Povezava", + "new-post-slug": "povezava-nove-objave", + "Author Email": "E-pošta avtorja", + "Created": "Ustvarjeno", + "Created date": "Ustvarjeno dne", + "Updated": "Posodobljeno", + "Updated date": "Posodobljeno dne", + "Published by": "Objavil", + "Current user": "Trenutni uporabnik", + "Published date": "Datum objave", + "Please specify the published date": "Prosimo, podajte datum objave", + "Edit": "Upravljanje", + "Select categories the blog post belongs to": "Izberite kategorije, v katere spada objava", + "There are no categories, you should create one first!": "Ni najdenih kategorij, ustvarite vsaj eno kategorijo!", + "Manage": "Urejanje", + "Published on": "Datum objave", + "Excerpt": "Izvleček", + "Summary": "Povzetek", + "Featured Images": "Uporabljene slike", + "Delete this post?": "Želite izbrisati to objavo?", + "Successfully deleted those posts.": "Te objave so bile uspešno izbrisane.", + "The post is not saved.": "Ta objava ni shranjena.", + "Return to posts list": "Vrnite se na seznam objav", + "New Category": "Nova kategorija", + "Uncategorized": "Nekategorizirano", + "Name": "Naslov", + "New category name": "Naslov nove kategorije", + "Description": "Opis", + "new-category-slug": "povezava-nove-kategorije", + "Delete this category?": "Želite izbrisati to kategorijo?", + "Successfully deleted those categories.": "Te kategorije so bile uspešno izbrisane.", + "Return to the blog category list": "Vrnite se na seznam blog kategorij", + "Reorder Categories": "Spremenite vrstni red kategorij", + "Blog Category": "Blog kategorija", + "All Blog Categories": "Vse blog kategorije", + "Blog Post": "Blog objava", + "All Blog Posts": "Vse blog objave", + "Blog Category Posts": "Objave v kategoriji", + "Category List": "Seznam kategorij", + "Displays a list of blog categories on the page.": "Prikaži seznam blog kategorij na strani.", + "Category slug": "Povezava kategorije", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Omogoča pregled blog kategorije na podani povezavi. Ta lastnost je uporabljena v privzeti predlogi komponente za označevanje trenutno aktivne kategorije.", + "Display empty categories": "Prikaži prazne kategorije", + "Show categories that do not have any posts.": "Prikaže kategorije brez objav.", + "Category page": "Stran s kategorijo", + "Name of the category page file for the category links. This property is used by the default component partial.": "Naslov strani blog kategorij za ustvarjanje povezav. Ta lastnost je uporabljena v privzeti predlogi komponente.", + "Post": "Objava", + "Displays a blog post on the page.": "Prikaži blog objavo na strani.", + "Post slug": "Povezava objave", + "Look up the blog post using the supplied slug value.": "Omogoča pregled blog objave na podani povezavi.", + "Post List": "Seznam objav", + "Displays a list of latest blog posts on the page.": "Prikaži seznam najnovejših blog objav na strani.", + "Page number": "Številka strani", + "This value is used to determine what page the user is on.": "Ta vrednost se uporablja za določitev, na kateri strani se nahaja uporabnik.", + "Category filter": "Filter kategorij", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Vnesite povezavo kategorije ali URL parameter za filtriranje objav. Pustite prazno za prikaz vseh objav.", + "Posts per page": "Število objav na strani", + "Invalid format of the posts per page value": "Neveljaven format števila objav na strani", + "No posts message": "Sporočilo brez objav", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Sporočilo, ki se prikaže na seznamu blog objav, če ni nobenih objav. Ta lastnost je uporabljena v privzeti predlogi komponente.", + "No posts found": "Ni najdenih objav", + "Post order": "Vrstni red objav", + "Attribute on which the posts should be ordered": "Lastnost, glede na katero naj bodo razvrščene objave", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "Naslov strani blog kategorije za povezave \"Objavljeno v\". Ta lastnost je uporabljena v privzeti predlogi komponente.", + "Post page": "Stran z objavo", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "Naslov strani blog objave za povezave \"Preberi več\". Ta lastnost je uporabljena v privzeti predlogi komponente.", + "Except post": "Izvzete objave", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Vnesite ID/URL objave ali spremenljivko z ID-jem/URL-jem objave, ki jo želite izvzeti. Za določitev večjega števila objav lahko uporabite seznam, ločen z vejicami.", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "Izvzete objave morajo biti posamezna povezava ali ID objave ali pa seznam povezav oz. ID-jev objav, ločen z vejicami.", + "Except categories": "Izvzete kategorije", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Vnesite seznam povezav kategorij, ločen z vejicami ali pa spremenljivko, ki vključuje takšen seznam kategorij, ki jih želite izvzeti.", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Izvzete kategorije morajo biti posamezna povezava kategorije ali pa seznam povezav kategorij, ločen z vejicami.", + "Blog page": "Stran z blogom", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Naslov glavne strani bloga za ustvarjanje povezav. Ta lastnost je uporabljena v privzeti predlogi komponente.", + "RSS Feed": "RSS vir", + "Generates an RSS feed containing posts from the blog.": "Ustvari vir RSS, ki vsebuje objave iz bloga.", + "Links": "Povezave", + "Exceptions": "Izjeme", + "Title (ascending)": "Naslov (naraščajoče)", + "Title (descending)": "Naslov (padajoče)", + "Created (ascending)": "Ustvarjeno (naraščajoče)", + "Created (descending)": "Ustvarjeno (padajoče)", + "Updated (ascending)": "Posodobljeno (naraščajoče)", + "Updated (descending)": "Posodobljeno (padajoče)", + "Published (ascending)": "Objavljeno (naraščajoče)", + "Published (descending)": "Objavljeno (padajoče)", + "Random": "Naključno", + "Update existing posts": "Posodobi obstoječe objave", + "Check this box to update posts that have exactly the same ID, title or slug.": "Označite kvadratek, če želite posodobiti objave, ki imajo popolnoma enak ID, naslov ali povezavo.", + "Create categories specified in the import file": "Ustvari kategorije, določene v uvozni datoteki", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Za uporabo te možnosti morate ali povezati stolpec 'Kategorije' ali pa označiti privzete kategorije za uporabo iz spodnjega seznama.", + "Select the categories that imported posts will belong to (optional).": "Izberite kategorije, na katere bodo povezavne uvožene objave (neobvezno).", + "Default post author (optional)": "Privzeti avtor objave (neobvezno)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "Uvoz bo poskusil uporabiti obstoječega avtorja, če povežete stolpec 'E-pošta avtorja', sicer se bo uporabil zgoraj navedeni avtor.", + "-- select author --": "-- izberite avtorja --" +} diff --git a/lang/sl/lang.php b/lang/sl/lang.php deleted file mode 100644 index d0c3c12d..00000000 --- a/lang/sl/lang.php +++ /dev/null @@ -1,163 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Robustna platforma za bloganje.', - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Upravljanje bloga', - 'posts' => 'Objave', - 'create_post' => 'Blog objava', - 'categories' => 'Kategorije', - 'create_category' => 'Blog kategorija', - 'tab' => 'Blog', - 'access_posts' => 'Upravljanje blog objav', - 'access_categories' => 'Upravljanje blog kategorij', - 'access_other_posts' => 'Upravljanje objav drugih uporabnikov', - 'access_import_export' => 'Dovoljenje za uvoz in izvoz objav', - 'access_publish' => 'Dovoljenje za objavljanje objav', - 'manage_settings' => 'Urejanje nastavitev bloga', - 'delete_confirm' => 'Ali ste prepričani?', - 'chart_published' => 'Objavljeno', - 'chart_drafts' => 'Osnutki', - 'chart_total' => 'Skupaj', - 'settings_description' => 'Urejanje nastavitev bloga', - 'show_all_posts_label' => 'Administratorjem prikaži vse objave', - 'show_all_posts_comment' => 'Na spletni strani prikaži administratorjem vse objavljene in neobjavljene objave.', - 'tab_general' => 'Splošno', - ], - 'posts' => [ - 'list_title' => 'Urejanje blog objav', - 'filter_category' => 'Kategorija', - 'filter_published' => 'Objavljeno', - 'filter_date' => 'Datum', - 'new_post' => 'Nova objava', - 'export_post' => 'Izvoz objav', - 'import_post' => 'Uvoz objav', - ], - 'post' => [ - 'title' => 'Naslov', - 'title_placeholder' => 'Naslov nove objave', - 'content' => 'Vsebina', - 'content_html' => 'HTML vsebina', - 'slug' => 'Povezava', - 'slug_placeholder' => 'povezava-nove-objave', - 'categories' => 'Kategorije', - 'author_email' => 'E-pošta avtorja', - 'created' => 'Ustvarjeno', - 'created_date' => 'Ustvarjeno dne', - 'updated' => 'Posodobljeno', - 'updated_date' => 'Posodobljeno dne', - 'published' => 'Objavljeno', - 'published_by' => 'Objavil', - 'current_user' => 'Trenutni uporabnik', - 'published_date' => 'Datum objave', - 'published_validation' => 'Prosimo, podajte datum objave', - 'tab_edit' => 'Upravljanje', - 'tab_categories' => 'Kategorije', - 'categories_comment' => 'Izberite kategorije, v katere spada objava', - 'categories_placeholder' => 'Ni najdenih kategorij, ustvarite vsaj eno kategorijo!', - 'tab_manage' => 'Urejanje', - 'published_on' => 'Datum objave', - 'excerpt' => 'Izvleček', - 'summary' => 'Povzetek', - 'featured_images' => 'Uporabljene slike', - 'delete_confirm' => 'Želite izbrisati to objavo?', - 'delete_success' => 'Te objave so bile uspešno izbrisane.', - 'close_confirm' => 'Ta objava ni shranjena.', - 'return_to_posts' => 'Vrnite se na seznam objav', - ], - 'categories' => [ - 'list_title' => 'Upravljanje blog kategorij', - 'new_category' => 'Nova kategorija', - 'uncategorized' => 'Nekategorizirano', - ], - 'category' => [ - 'name' => 'Naslov', - 'name_placeholder' => 'Naslov nove kategorije', - 'description' => 'Opis', - 'slug' => 'Povezava', - 'slug_placeholder' => 'povezava-nove-kategorije', - 'posts' => 'Objave', - 'delete_confirm' => 'Želite izbrisati to kategorijo?', - 'delete_success' => 'Te kategorije so bile uspešno izbrisane.', - 'return_to_categories' => 'Vrnite se na seznam blog kategorij', - 'reorder' => 'Spremenite vrstni red kategorij', - ], - 'menuitem' => [ - 'blog_category' => 'Blog kategorija', - 'all_blog_categories' => 'Vse blog kategorije', - 'blog_post' => 'Blog objava', - 'all_blog_posts' => 'Vse blog objave', - 'category_blog_posts' => 'Objave v kategoriji', - ], - 'settings' => [ - 'category_title' => 'Seznam kategorij', - 'category_description' => 'Prikaži seznam blog kategorij na strani.', - 'category_slug' => 'Povezava kategorije', - 'category_slug_description' => 'Omogoča pregled blog kategorije na podani povezavi. Ta lastnost je uporabljena v privzeti predlogi komponente za označevanje trenutno aktivne kategorije.', - 'category_display_empty' => 'Prikaži prazne kategorije', - 'category_display_empty_description' => 'Prikaže kategorije brez objav.', - 'category_page' => 'Stran s kategorijo', - 'category_page_description' => 'Naslov strani blog kategorij za ustvarjanje povezav. Ta lastnost je uporabljena v privzeti predlogi komponente.', - 'post_title' => 'Objava', - 'post_description' => 'Prikaži blog objavo na strani.', - 'post_slug' => 'Povezava objave', - 'post_slug_description' => "Omogoča pregled blog objave na podani povezavi.", - 'post_category' => 'Stran s kategorijo', - 'post_category_description' => 'Naslov strani blog kategorije za ustvarjanje povezav. Ta lastnost je uporabljena v privzeti predlogi komponente.', - 'posts_title' => 'Seznam objav', - 'posts_description' => 'Prikaži seznam najnovejših blog objav na strani.', - 'posts_pagination' => 'Številka strani', - 'posts_pagination_description' => 'Ta vrednost se uporablja za določitev, na kateri strani se nahaja uporabnik.', - 'posts_filter' => 'Filter kategorij', - 'posts_filter_description' => 'Vnesite povezavo kategorije ali URL parameter za filtriranje objav. Pustite prazno za prikaz vseh objav.', - 'posts_per_page' => 'Število objav na strani', - 'posts_per_page_validation' => 'Neveljaven format števila objav na strani', - 'posts_no_posts' => 'Sporočilo brez objav', - 'posts_no_posts_description' => 'Sporočilo, ki se prikaže na seznamu blog objav, če ni nobenih objav. Ta lastnost je uporabljena v privzeti predlogi komponente.', - 'posts_no_posts_default' => 'Ni najdenih objav', - 'posts_order' => 'Vrstni red objav', - 'posts_order_description' => 'Lastnost, glede na katero naj bodo razvrščene objave', - 'posts_category' => 'Stran s kategorijo', - 'posts_category_description' => 'Naslov strani blog kategorije za povezave "Objavljeno v". Ta lastnost je uporabljena v privzeti predlogi komponente.', - 'posts_post' => 'Stran z objavo', - 'posts_post_description' => 'Naslov strani blog objave za povezave "Preberi več". Ta lastnost je uporabljena v privzeti predlogi komponente.', - 'posts_except_post' => 'Izvzete objave', - 'posts_except_post_description' => 'Vnesite ID/URL objave ali spremenljivko z ID-jem/URL-jem objave, ki jo želite izvzeti. Za določitev večjega števila objav lahko uporabite seznam, ločen z vejicami.', - 'posts_except_post_validation' => 'Izvzete objave morajo biti posamezna povezava ali ID objave ali pa seznam povezav oz. ID-jev objav, ločen z vejicami.', - 'posts_except_categories' => 'Izvzete kategorije', - 'posts_except_categories_description' => 'Vnesite seznam povezav kategorij, ločen z vejicami ali pa spremenljivko, ki vključuje takšen seznam kategorij, ki jih želite izvzeti.', - 'posts_except_categories_validation' => 'Izvzete kategorije morajo biti posamezna povezava kategorije ali pa seznam povezav kategorij, ločen z vejicami.', - 'rssfeed_blog' => 'Stran z blogom', - 'rssfeed_blog_description' => 'Naslov glavne strani bloga za ustvarjanje povezav. Ta lastnost je uporabljena v privzeti predlogi komponente.', - 'rssfeed_title' => 'RSS vir', - 'rssfeed_description' => 'Ustvari vir RSS, ki vsebuje objave iz bloga.', - 'group_links' => 'Povezave', - 'group_exceptions' => 'Izjeme', - ], - 'sorting' => [ - 'title_asc' => 'Naslov (naraščajoče)', - 'title_desc' => 'Naslov (padajoče)', - 'created_asc' => 'Ustvarjeno (naraščajoče)', - 'created_desc' => 'Ustvarjeno (padajoče)', - 'updated_asc' => 'Posodobljeno (naraščajoče)', - 'updated_desc' => 'Posodobljeno (padajoče)', - 'published_asc' => 'Objavljeno (naraščajoče)', - 'published_desc' => 'Objavljeno (padajoče)', - 'random' => 'Naključno', - ], - 'import' => [ - 'update_existing_label' => 'Posodobi obstoječe objave', - 'update_existing_comment' => 'Označite kvadratek, če želite posodobiti objave, ki imajo popolnoma enak ID, naslov ali povezavo.', - 'auto_create_categories_label' => 'Ustvari kategorije, določene v uvozni datoteki', - 'auto_create_categories_comment' => "Za uporabo te možnosti morate ali povezati stolpec 'Kategorije' ali pa označiti privzete kategorije za uporabo iz spodnjega seznama.", - 'categories_label' => 'Kategorije', - 'categories_comment' => 'Izberite kategorije, na katere bodo povezavne uvožene objave (neobvezno).', - 'default_author_label' => 'Privzeti avtor objave (neobvezno)', - 'default_author_comment' => "Uvoz bo poskusil uporabiti obstoječega avtorja, če povežete stolpec 'E-pošta avtorja', sicer se bo uporabil zgoraj navedeni avtor.", - 'default_author_placeholder' => '-- izberite avtorja --', - ], -]; diff --git a/lang/tr.json b/lang/tr.json new file mode 100644 index 00000000..d9724d7f --- /dev/null +++ b/lang/tr.json @@ -0,0 +1,124 @@ +{ + "Blog": "Blog", + "A robust blogging platform.": "Sağlam blog platformu.", + "Manage Blog Posts": "Blog Gönderilerini Yönet", + "Posts": "Gönderiler", + "Blog post": "Blog gönderisi", + "Categories": "Kategoriler", + "Blog category": "Blog kategorisi", + "Manage the blog posts": "Gönderileri yönetebilsin", + "Manage the blog categories": "Blog kategorilerini yönetebilsin", + "Manage other users blog posts": "Diğer kullanıcıların gönderilerini yönetebilsin", + "Allowed to import and export posts": "Gönderileri içeri/dışarı aktarabilsin", + "Allowed to publish posts": "Gönderi yayınlayabilsin", + "Manage blog settings": "Blog ayarlarını yönet", + "Are you sure?": "Emin misiniz?", + "Published": "Yayınlandı", + "Drafts": "Taslaklar", + "Total": "Toplam", + "Show All Posts to Backend Users": "Tüm gönderileri yönetim paneli kullanıcılarına göster", + "Display both published and unpublished posts on the frontend to backend users": "Hem yayınlanmış hem de yayınlanmamış gönderileri önyüzde yönetim paneli kullanıcılarına göster.", + "General": "Genel", + "Category": "Kategori", + "Date": "Tarih", + "New Post": "Yeni gönderi", + "Export Posts": "Gönderileri dışarı aktar", + "Import Posts": "Gönderileri içeri aktar", + "Title": "Başlık", + "New post title": "Yeni gönderi başlığı", + "Content": "İçerik", + "HTML Content": "HTML İçeriği", + "Slug": "Kısa URL", + "new-post-slug": "yeni-gonderi-basligi", + "Author Email": "Yazar E-mail", + "Created": "Oluşturuldu", + "Created date": "Oluşturulma tarihi", + "Updated": "Güncellendi", + "Updated date": "Güncellenme tarihi", + "Published date": "Yayınlanma tarihi", + "Please specify the published date": "Lütfen yayınlama tarihini belirtiniz", + "Edit": "Düzenle", + "Select categories the blog post belongs to": "Gönderinin ait olduğu kategorileri seçiniz", + "There are no categories, you should create one first!": "Kategori yok, öncelikle bir kategori oluşturmalısınız!", + "Manage": "Yönet", + "Published on": "Yayınlandı", + "Excerpt": "Alıntı", + "Summary": "Özet", + "Featured Images": "Öne Çıkan Görseller", + "Delete this post?": "Bu yazıyı silmek istiyor musunuz?", + "Successfully deleted those posts.": "Gönderi(ler) silindi.", + "The post is not saved.": "Gönderi kaydedilmedi.", + "Return to posts list": "Gönderi listesine dön", + "New Category": "Yeni kategori", + "Uncategorized": "Kategorisiz", + "Name": "İsim", + "New category name": "Yeni kategori adı", + "Description": "Açıklama", + "new-category-slug": "yeni-kategori-basligi", + "Delete this category?": "Bu kategoriyi silmek istiyor musunuz?", + "Successfully deleted those categories.": "Kategori(ler) silindi.", + "Return to the blog category list": "Kategori listesine dön", + "Reorder Categories": "Kategorileri yeniden sırala", + "Blog Category": "Blog kategorisi", + "All Blog Categories": "Tüm blog kategorileri", + "Blog Post": "Blog gönderisi", + "All Blog Posts": "Tüm blog gönderileri", + "Blog Category Posts": "Blog kategori gönderileri", + "Category List": "Kategori Listesi", + "Displays a list of blog categories on the page.": "Kategorilerin listesini sayfada göster.", + "Category slug": "Kategori Kısa URL", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "Verilen kısa URLi kullanarak blog kategorisini görüntüle. Bu özellik şu anki aktif kategoriyi işaretlemek için varsayılan kısmi bileşeni tarafından kullanılır", + "Display empty categories": "Boş kategorileri göster", + "Show categories that do not have any posts.": "Herhangi bir gönderi olmayan kategorileri göster.", + "Category page": "Kategori sayfası", + "Name of the category page file for the category links. This property is used by the default component partial.": "Kategori bağlantıları için kategori sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.", + "Post": "Gönderi", + "Displays a blog post on the page.": "Sayfada bir blog gönderisi gösterir.", + "Post slug": "Gönderi Kısa URL", + "Look up the blog post using the supplied slug value.": "Verilen kısa URL ile blog gönderisine bakın.", + "Post List": "Gönderi listesi", + "Displays a list of latest blog posts on the page.": "Sayfada son blog gönderilerinin listesini gösterir.", + "Page number": "Sayfa numarası", + "This value is used to determine what page the user is on.": "Bu değer kullanıcının hangi sayfada olduğunu belirlemek için kullanılır.", + "Category filter": "Kategori filtresi", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "Gönderileri filtrelemek için kategori kısa URLsi ya da URL parametresi girin. Tüm gönderiler için boş bırakın.", + "Posts per page": "Sayfa başına gönderi", + "Invalid format of the posts per page value": "Sayfa başına gönderi için geçersiz format", + "No posts message": "Gönderi mesajı yok", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "Eğer bir gönderi yoksa gönderi listesinde görüntülenecek mesaj. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.", + "No posts found": "Gönderi yok", + "Post order": "Gönderi Sırası", + "Attribute on which the posts should be ordered": "Gönderilerin sıralama türü", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "\"Yayınlanan\" kategori bağlantıları için kategori sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.", + "Post page": "Gönderi sayfası", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": "\"Daha fazla bilgi edinin\" bağlantıları için gönderi sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.", + "Except post": "Hariç tutulacak gönderi", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "Hariç tutmak istediğiniz gönderinin ID/URL ini veya ID/URL içeren bir değişken girin. Birden çok gönderi belirtmek için virgülle ayrılmış liste kullanabilirsiniz.", + "Post exceptions must be a single slug or ID, or a comma-separated list of slugs and IDs": "Hariç tutulacak gönderi değeri tek bir kısa URL veya ID, veya virgülle ayrılmış kısa URL veya ID listesi olmalıdır.", + "Except categories": "Hariç tutulacak kategoriler", + "Enter a comma-separated list of category slugs or variable with such a list of categories you want to exclude": "Hariç tutmak istediğiniz kategori listesini içeren virgülle ayrılmış bir kategori listesi veya listeyi içeren bir değişken girin.", + "Category exceptions must be a single category slug, or a comma-separated list of slugs": "Hariç tutulacak kategoriler değeri tek bir kısa URL, veya virgülle ayrılmış kısa URL listesi olmalıdır.", + "Blog page": "Blog sayfası", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "Linkleri üretmek için ana blog sayfasının adı. Bu özellik, varsayılan kısmi bileşeni tarafından kullanılır.", + "RSS Feed": "RSS Beslemesi", + "Generates an RSS feed containing posts from the blog.": "Blog içerisindeki gönderileri veren RSS beslemesi oluşturur.", + "Links": "Linkler", + "Exceptions": "Hariç olanlar", + "Title (ascending)": "Başlık (a-z)", + "Title (descending)": "Başlık (z-a)", + "Created (ascending)": "Oluşturulma (yeniden eskiye)", + "Created (descending)": "Oluşturulma (eskiden yeniye)", + "Updated (ascending)": "Güncellenme (yeniden eskiye)", + "Updated (descending)": "Güncellenme (eskiden yeniye)", + "Published (ascending)": "Yayınlanma (yeniden eskiye)", + "Published (descending)": "Yayınlanma (eskiden yeniye)", + "Random": "Rastgele", + "Update existing posts": "Mevcut gönderileri güncelle", + "Check this box to update posts that have exactly the same ID, title or slug.": "Tam olarak aynı ID, başlık veya kısa URL içeren gönderileri güncellemek için bu kutuyu işaretleyin.", + "Create categories specified in the import file": "İçe aktarma dosyasında bulunan kategorileri oluştur", + "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below.": "Bu özelliği kullanmak için Kategoriler sütununu eşleştirmelisiniz, aksi takdirde aşağıdaki öğelerden kullanılacak varsayılan kategorileri seçmelisiniz.", + "Select the categories that imported posts will belong to (optional).": "İçe aktarılan gönderilerin ait olacağı kategorileri seçin (isteğe bağlı).", + "Default post author (optional)": "Varsayılan gönderi yazarı (isteğe bağlı)", + "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used.": "İçe aktarma, Yazar E-postası sütunuyla eşleşirse mevcut bir yazarı gönderi için kullanmaya çalışır, aksi takdirde yukarıda belirtilen yazar seçilir.", + "-- select author --": "-- yazar seçin --" +} diff --git a/lang/tr/lang.php b/lang/tr/lang.php deleted file mode 100644 index 25f23f97..00000000 --- a/lang/tr/lang.php +++ /dev/null @@ -1,161 +0,0 @@ - [ - 'name' => 'Blog', - 'description' => 'Sağlam blog platformu.', - ], - 'blog' => [ - 'menu_label' => 'Blog', - 'menu_description' => 'Blog Gönderilerini Yönet', - 'posts' => 'Gönderiler', - 'create_post' => 'Blog gönderisi', - 'categories' => 'Kategoriler', - 'create_category' => 'Blog kategorisi', - 'tab' => 'Blog', - 'access_posts' => 'Gönderileri yönetebilsin', - 'access_categories' => 'Blog kategorilerini yönetebilsin', - 'access_other_posts' => 'Diğer kullanıcıların gönderilerini yönetebilsin', - 'access_import_export' => 'Gönderileri içeri/dışarı aktarabilsin', - 'access_publish' => 'Gönderi yayınlayabilsin', - 'manage_settings' => 'Blog ayarlarını yönet', - 'delete_confirm' => 'Emin misiniz?', - 'chart_published' => 'Yayınlandı', - 'chart_drafts' => 'Taslaklar', - 'chart_total' => 'Toplam', - 'settings_description' => 'Blog ayarlarını yönet', - 'show_all_posts_label' => 'Tüm gönderileri yönetim paneli kullanıcılarına göster', - 'show_all_posts_comment' => 'Hem yayınlanmış hem de yayınlanmamış gönderileri önyüzde yönetim paneli kullanıcılarına göster.', - 'tab_general' => 'Genel', - ], - 'posts' => [ - 'list_title' => 'Blog gönderilerini yönet', - 'filter_category' => 'Kategori', - 'filter_published' => 'Yayınlanan', - 'filter_date' => 'Tarih', - 'new_post' => 'Yeni gönderi', - 'export_post' => 'Gönderileri dışarı aktar', - 'import_post' => 'Gönderileri içeri aktar', - ], - 'post' => [ - 'title' => 'Başlık', - 'title_placeholder' => 'Yeni gönderi başlığı', - 'content' => 'İçerik', - 'content_html' => 'HTML İçeriği', - 'slug' => 'Kısa URL', - 'slug_placeholder' => 'yeni-gonderi-basligi', - 'categories' => 'Kategoriler', - 'author_email' => 'Yazar E-mail', - 'created' => 'Oluşturuldu', - 'created_date' => 'Oluşturulma tarihi', - 'updated' => 'Güncellendi', - 'updated_date' => 'Güncellenme tarihi', - 'published' => 'Yayınlandı', - 'published_date' => 'Yayınlanma tarihi', - 'published_validation' => 'Lütfen yayınlama tarihini belirtiniz', - 'tab_edit' => 'Düzenle', - 'tab_categories' => 'Kategoriler', - 'categories_comment' => 'Gönderinin ait olduğu kategorileri seçiniz', - 'categories_placeholder' => 'Kategori yok, öncelikle bir kategori oluşturmalısınız!', - 'tab_manage' => 'Yönet', - 'published_on' => 'Yayınlandı', - 'excerpt' => 'Alıntı', - 'summary' => 'Özet', - 'featured_images' => 'Öne Çıkan Görseller', - 'delete_confirm' => 'Bu yazıyı silmek istiyor musunuz?', - 'delete_success' => 'Gönderi(ler) silindi.', - 'close_confirm' => 'Gönderi kaydedilmedi.', - 'return_to_posts' => 'Gönderi listesine dön', - ], - 'categories' => [ - 'list_title' => 'Blog kategorilerini yönet', - 'new_category' => 'Yeni kategori', - 'uncategorized' => 'Kategorisiz', - ], - 'category' => [ - 'name' => 'İsim', - 'name_placeholder' => 'Yeni kategori adı', - 'description' => 'Açıklama', - 'slug' => 'Kısa URL', - 'slug_placeholder' => 'yeni-kategori-basligi', - 'posts' => 'Gönderiler', - 'delete_confirm' => 'Bu kategoriyi silmek istiyor musunuz?', - 'delete_success' => 'Kategori(ler) silindi.', - 'return_to_categories' => 'Kategori listesine dön', - 'reorder' => 'Kategorileri yeniden sırala', - ], - 'menuitem' => [ - 'blog_category' => 'Blog kategorisi', - 'all_blog_categories' => 'Tüm blog kategorileri', - 'blog_post' => 'Blog gönderisi', - 'all_blog_posts' => 'Tüm blog gönderileri', - 'category_blog_posts' => 'Blog kategori gönderileri', - ], - 'settings' => [ - 'category_title' => 'Kategori Listesi', - 'category_description' => 'Kategorilerin listesini sayfada göster.', - 'category_slug' => 'Kategori Kısa URL', - 'category_slug_description' => 'Verilen kısa URLi kullanarak blog kategorisini görüntüle. Bu özellik şu anki aktif kategoriyi işaretlemek için varsayılan kısmi bileşeni tarafından kullanılır', - 'category_display_empty' => 'Boş kategorileri göster', - 'category_display_empty_description' => 'Herhangi bir gönderi olmayan kategorileri göster.', - 'category_page' => 'Kategori sayfası', - 'category_page_description' => 'Kategori bağlantıları için kategori sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.', - 'post_title' => 'Gönderi', - 'post_description' => 'Sayfada bir blog gönderisi gösterir.', - 'post_slug' => 'Gönderi Kısa URL', - 'post_slug_description' => 'Verilen kısa URL ile blog gönderisine bakın.', - 'post_category' => 'Kategori sayfası', - 'post_category_description' => 'Kategori bağlantıları için kategori sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.', - 'posts_title' => 'Gönderi listesi', - 'posts_description' => 'Sayfada son blog gönderilerinin listesini gösterir.', - 'posts_pagination' => 'Sayfa numarası', - 'posts_pagination_description' => 'Bu değer kullanıcının hangi sayfada olduğunu belirlemek için kullanılır.', - 'posts_filter' => 'Kategori filtresi', - 'posts_filter_description' => 'Gönderileri filtrelemek için kategori kısa URLsi ya da URL parametresi girin. Tüm gönderiler için boş bırakın.', - 'posts_per_page' => 'Sayfa başına gönderi', - 'posts_per_page_validation' => 'Sayfa başına gönderi için geçersiz format', - 'posts_no_posts' => 'Gönderi mesajı yok', - 'posts_no_posts_description' => 'Eğer bir gönderi yoksa gönderi listesinde görüntülenecek mesaj. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.', - 'posts_no_posts_default' => 'Gönderi yok', - 'posts_order' => 'Gönderi Sırası', - 'posts_order_description' => 'Gönderilerin sıralama türü', - 'posts_category' => 'Kategori sayfası', - 'posts_category_description' => '"Yayınlanan" kategori bağlantıları için kategori sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.', - 'posts_post' => 'Gönderi sayfası', - 'posts_post_description' => '"Daha fazla bilgi edinin" bağlantıları için gönderi sayfası dosyasının adı. Bu özellik varsayılan kısmi bileşeni tarafından kullanılır.', - 'posts_except_post' => 'Hariç tutulacak gönderi', - 'posts_except_post_description' => 'Hariç tutmak istediğiniz gönderinin ID/URL ini veya ID/URL içeren bir değişken girin. Birden çok gönderi belirtmek için virgülle ayrılmış liste kullanabilirsiniz.', - 'posts_except_post_validation' => 'Hariç tutulacak gönderi değeri tek bir kısa URL veya ID, veya virgülle ayrılmış kısa URL veya ID listesi olmalıdır.', - 'posts_except_categories' => 'Hariç tutulacak kategoriler', - 'posts_except_categories_description' => 'Hariç tutmak istediğiniz kategori listesini içeren virgülle ayrılmış bir kategori listesi veya listeyi içeren bir değişken girin.', - 'posts_except_categories_validation' => 'Hariç tutulacak kategoriler değeri tek bir kısa URL, veya virgülle ayrılmış kısa URL listesi olmalıdır.', - 'rssfeed_blog' => 'Blog sayfası', - 'rssfeed_blog_description' => 'Linkleri üretmek için ana blog sayfasının adı. Bu özellik, varsayılan kısmi bileşeni tarafından kullanılır.', - 'rssfeed_title' => 'RSS Beslemesi', - 'rssfeed_description' => 'Blog içerisindeki gönderileri veren RSS beslemesi oluşturur.', - 'group_links' => 'Linkler', - 'group_exceptions' => 'Hariç olanlar', - ], - 'sorting' => [ - 'title_asc' => 'Başlık (a-z)', - 'title_desc' => 'Başlık (z-a)', - 'created_asc' => 'Oluşturulma (yeniden eskiye)', - 'created_desc' => 'Oluşturulma (eskiden yeniye)', - 'updated_asc' => 'Güncellenme (yeniden eskiye)', - 'updated_desc' => 'Güncellenme (eskiden yeniye)', - 'published_asc' => 'Yayınlanma (yeniden eskiye)', - 'published_desc' => 'Yayınlanma (eskiden yeniye)', - 'random' => 'Rastgele', - ], - 'import' => [ - 'update_existing_label' => 'Mevcut gönderileri güncelle', - 'update_existing_comment' => 'Tam olarak aynı ID, başlık veya kısa URL içeren gönderileri güncellemek için bu kutuyu işaretleyin.', - 'auto_create_categories_label' => 'İçe aktarma dosyasında bulunan kategorileri oluştur', - 'auto_create_categories_comment' => 'Bu özelliği kullanmak için Kategoriler sütununu eşleştirmelisiniz, aksi takdirde aşağıdaki öğelerden kullanılacak varsayılan kategorileri seçmelisiniz.', - 'categories_label' => 'Kategoriler', - 'categories_comment' => 'İçe aktarılan gönderilerin ait olacağı kategorileri seçin (isteğe bağlı).', - 'default_author_label' => 'Varsayılan gönderi yazarı (isteğe bağlı)', - 'default_author_comment' => 'İçe aktarma, Yazar E-postası sütunuyla eşleşirse mevcut bir yazarı gönderi için kullanmaya çalışır, aksi takdirde yukarıda belirtilen yazar seçilir.', - 'default_author_placeholder' => '-- yazar seçin --', - ], -]; \ No newline at end of file diff --git a/lang/zh-cn.json b/lang/zh-cn.json new file mode 100644 index 00000000..eeb718bc --- /dev/null +++ b/lang/zh-cn.json @@ -0,0 +1,93 @@ +{ + "Blog": "博客", + "A robust blogging platform.": "一个强大的博客平台.", + "Manage Blog Posts": "管理博客帖子", + "Posts": "帖子", + "Blog post": "博客帖子", + "Categories": "分类", + "Blog category": "博客分类", + "Manage the blog posts": "管理博客帖子", + "Manage the blog categories": "管理博客分类", + "Manage other users blog posts": "管理其他用户帖子", + "Allowed to import and export posts": "允许导入和导出", + "Allowed to publish posts": "允许发布帖子", + "Are you sure?": "你确定?", + "Published": "已发布", + "Drafts": "草稿", + "Total": "总数", + "Category": "分类", + "Date": "日期", + "New Post": "创建帖子", + "Export Posts": "导出帖子", + "Import Posts": "导入帖子", + "Title": "标题", + "New post title": "新帖子标题", + "Content": "内容", + "HTML Content": "HTML 内容", + "Slug": "别名", + "new-post-slug": "new-post-slug", + "Author Email": "作者邮箱", + "Created": "创建时间", + "Created date": "创建日期", + "Updated": "更新时间", + "Updated date": "更新日期", + "Published date": "发布日期", + "Please specify the published date": "请指定发布日期", + "Edit": "编辑", + "Select categories the blog post belongs to": "选择帖子属于那个分类", + "There are no categories, you should create one first!": "没有分类,你应该先创建一个分类!", + "Manage": "管理", + "Published on": "发布于", + "Excerpt": "摘录", + "Summary": "总结", + "Featured Images": "特色图片", + "Delete this post?": "确定删除该帖子?", + "The post is not saved.": "该帖子未保存.", + "Return to posts list": "返回帖子列表", + "New Category": "新分类", + "Uncategorized": "未分类", + "Name": "名称", + "New category name": "新分类名称", + "Description": "描述", + "new-category-slug": "new-category-slug", + "Delete this category?": "确定删除分类?", + "Return to the blog category list": "返回博客分类列表", + "Reorder Categories": "重新排序分类", + "Blog Category": "博客分类", + "All Blog Categories": "所有博客分类", + "Blog Post": "博客帖子", + "All Blog Posts": "所有博客帖子", + "Category List": "分类列表", + "Displays a list of blog categories on the page.": "在页面上显示帖子分类列表.", + "Category slug": "分类别名", + "Look up the blog category using the supplied slug value. This property is used by the default component partial for marking the currently active category.": "用分类别名查找博客分类. 该值被默认组件的partial用来激活当前分类.", + "Display empty categories": "显示空的分类", + "Show categories that do not have any posts.": "显示没有帖子的分类.", + "Category page": "分类页", + "Name of the category page file for the category links. This property is used by the default component partial.": "用来生成分类链接的分类页面文件名称. 该属性被默认组件partial所使用.", + "Post": "帖子", + "Displays a blog post on the page.": "在页面上显示博客帖子.", + "Post slug": "帖子别名", + "Look up the blog post using the supplied slug value.": "用帖子别名查找博客帖子.", + "Post List": "帖子列表", + "Displays a list of latest blog posts on the page.": "在页面上显示最近发布的博客帖子列表.", + "Page number": "页数", + "This value is used to determine what page the user is on.": "该值用来判定用户所在页面.", + "Category filter": "过滤分类", + "Enter a category slug or URL parameter to filter the posts by. Leave empty to show all posts.": "输入分类的别名(slug)或者URL参数来过滤帖子. 留空显示所有帖子.", + "Posts per page": "每页帖子数", + "Invalid format of the posts per page value": "每一页帖子数量的值的格式错误", + "No posts message": "没有帖子的消息", + "Message to display in the blog post list in case if there are no posts. This property is used by the default component partial.": "如果博客帖子列表中一个帖子都没有要显示的提示消息. 该属性被默认组件partial所使用.", + "Post order": "帖子排序", + "Attribute on which the posts should be ordered": "帖子排序的属性", + "Name of the category page file for the \"Posted into\" category links. This property is used by the default component partial.": "用来生成\"发布到\"分类链接的分类页文件名称. 该属性被默认组件partial所使用.", + "Post page": "帖子页", + "Name of the blog post page file for the \"Learn more\" links. This property is used by the default component partial.": " 查看帖子的\"详情\"的页面文件. 该属性被默认组件partial所使用.", + "Except post": "排除的帖子", + "Enter ID/URL or variable with post ID/URL you want to exclude. You may use a comma-separated list to specify multiple posts.": "输入帖子的ID/URL或者变量来排除你不想看见的帖子", + "Blog page": "博客页面", + "Name of the main blog page file for generating links. This property is used by the default component partial.": "生成博客帖子首页面文件名称. 该属性被默认组件partial所使用.", + "RSS Feed": "RSS Feed", + "Generates an RSS feed containing posts from the blog.": "从博客生成一个包含帖子的RSS Feed." +} diff --git a/lang/zh-cn/lang.php b/lang/zh-cn/lang.php deleted file mode 100644 index f1e2e3de..00000000 --- a/lang/zh-cn/lang.php +++ /dev/null @@ -1,124 +0,0 @@ - [ - 'name' => '博客', - 'description' => '一个强大的博客平台.' - ], - 'blog' => [ - 'menu_label' => '博客', - 'menu_description' => '管理博客帖子', - 'posts' => '帖子', - 'create_post' => '博客帖子', - 'categories' => '分类', - 'create_category' => '博客分类', - 'tab' => '博客', - 'access_posts' => '管理博客帖子', - 'access_categories' => '管理博客分类', - 'access_other_posts' => '管理其他用户帖子', - 'access_import_export' => '允许导入和导出', - 'access_publish' => '允许发布帖子', - 'delete_confirm' => '你确定?', - 'chart_published' => '已发布', - 'chart_drafts' => '草稿', - 'chart_total' => '总数' - ], - 'posts' => [ - 'list_title' => '管理博客帖子', - 'filter_category' => '分类', - 'filter_published' => '发布', - 'filter_date' => '日期', - 'new_post' => '创建帖子', - 'export_post' => '导出帖子', - 'import_post' => '导入帖子' - ], - 'post' => [ - 'title' => '标题', - 'title_placeholder' => '新帖子标题', - 'content' => '内容', - 'content_html' => 'HTML 内容', - 'slug' => '别名', - 'slug_placeholder' => 'new-post-slug', - 'categories' => '分类', - 'author_email' => '作者邮箱', - 'created' => '创建时间', - 'created_date' => '创建日期', - 'updated' => '更新时间', - 'updated_date' => '更新日期', - 'published' => '发布时间', - 'published_date' => '发布日期', - 'published_validation' => '请指定发布日期', - 'tab_edit' => '编辑', - 'tab_categories' => '分类', - 'categories_comment' => '选择帖子属于那个分类', - 'categories_placeholder' => '没有分类,你应该先创建一个分类!', - 'tab_manage' => '管理', - 'published_on' => '发布于', - 'excerpt' => '摘录', - 'summary' => '总结', - 'featured_images' => '特色图片', - 'delete_confirm' => '确定删除该帖子?', - 'close_confirm' => '该帖子未保存.', - 'return_to_posts' => '返回帖子列表' - ], - 'categories' => [ - 'list_title' => '管理博客分类', - 'new_category' => '新分类', - 'uncategorized' => '未分类' - ], - 'category' => [ - 'name' => '名称', - 'name_placeholder' => '新分类名称', - 'description' => '描述', - 'slug' => '别名', - 'slug_placeholder' => 'new-category-slug', - 'posts' => '帖子', - 'delete_confirm' => '确定删除分类?', - 'return_to_categories' => '返回博客分类列表', - 'reorder' => '重新排序分类' - ], - 'menuitem' => [ - 'blog_category' => '博客分类', - 'all_blog_categories' => '所有博客分类', - 'blog_post' => '博客帖子', - 'all_blog_posts' => '所有博客帖子' - ], - 'settings' => [ - 'category_title' => '分类列表', - 'category_description' => '在页面上显示帖子分类列表.', - 'category_slug' => '分类别名', - 'category_slug_description' => "用分类别名查找博客分类. 该值被默认组件的partial用来激活当前分类.", - 'category_display_empty' => '显示空的分类', - 'category_display_empty_description' => '显示没有帖子的分类.', - 'category_page' => '分类页', - 'category_page_description' => '用来生成分类链接的分类页面文件名称. 该属性被默认组件partial所使用.', - 'post_title' => '帖子', - 'post_description' => '在页面上显示博客帖子.', - 'post_slug' => '帖子别名', - 'post_slug_description' => "用帖子别名查找博客帖子.", - 'post_category' => '分类页', - 'post_category_description' => '用来生成分类链接的分类页面文件名称. 该属性被默认组件partial所使用.', - 'posts_title' => '帖子列表', - 'posts_description' => '在页面上显示最近发布的博客帖子列表.', - 'posts_pagination' => '页数', - 'posts_pagination_description' => '该值用来判定用户所在页面.', - 'posts_filter' => '过滤分类', - 'posts_filter_description' => '输入分类的别名(slug)或者URL参数来过滤帖子. 留空显示所有帖子.', - 'posts_per_page' => '每页帖子数', - 'posts_per_page_validation' => '每一页帖子数量的值的格式错误', - 'posts_no_posts' => '没有帖子的消息', - 'posts_no_posts_description' => '如果博客帖子列表中一个帖子都没有要显示的提示消息. 该属性被默认组件partial所使用.', - 'posts_order' => '帖子排序', - 'posts_order_description' => '帖子排序的属性', - 'posts_category' => '分类页', - 'posts_category_description' => '用来生成"发布到"分类链接的分类页文件名称. 该属性被默认组件partial所使用.', - 'posts_post' => '帖子页', - 'posts_post_description' => ' 查看帖子的"详情"的页面文件. 该属性被默认组件partial所使用.', - 'posts_except_post' => '排除的帖子', - 'posts_except_post_description' => '输入帖子的ID/URL或者变量来排除你不想看见的帖子', - 'rssfeed_blog' => '博客页面', - 'rssfeed_blog_description' => '生成博客帖子首页面文件名称. 该属性被默认组件partial所使用.', - 'rssfeed_title' => 'RSS Feed', - 'rssfeed_description' => '从博客生成一个包含帖子的RSS Feed.' - ] -]; diff --git a/models/Category.php b/models/Category.php index 7f833552..a7cbd741 100644 --- a/models/Category.php +++ b/models/Category.php @@ -10,9 +10,9 @@ class Category extends Model { use \October\Rain\Database\Traits\Validation; use \October\Rain\Database\Traits\NestedTree; + use \October\Rain\Database\Traits\Translatable; public $table = 'rainlab_blog_categories'; - public $implement = ['@RainLab.Translate.Behaviors.TranslatableModel']; /* * Validation @@ -24,12 +24,12 @@ class Category extends Model ]; /** - * @var array Attributes that support translation, if available. + * @var array Attributes that support translation. */ public $translatable = [ 'name', 'description', - ['slug', 'index' => true] + 'slug', ]; protected $guarded = []; diff --git a/models/Post.php b/models/Post.php index 2bcf3a77..f6ac1231 100644 --- a/models/Post.php +++ b/models/Post.php @@ -2,7 +2,6 @@ use Url; use Html; -use Lang; use Model; use Config; use Markdown; @@ -14,7 +13,7 @@ use Cms\Classes\Controller; use October\Rain\Database\NestedTreeScope; use RainLab\Blog\Classes\TagProcessor; -use RainLab\Blog\Models\Settings as BlogSettings; +use RainLab\Blog\Models\Setting as BlogSettings; use ValidationException; /** @@ -23,9 +22,9 @@ class Post extends Model { use \October\Rain\Database\Traits\Validation; + use \October\Rain\Database\Traits\Translatable; public $table = 'rainlab_blog_posts'; - public $implement = ['@RainLab.Translate.Behaviors.TranslatableModel']; /* * Validation @@ -38,7 +37,7 @@ class Post extends Model ]; /** - * @var array Attributes that support translation, if available. + * @var array Attributes that support translation. */ public $translatable = [ 'title', @@ -46,7 +45,7 @@ class Post extends Model 'content_html', 'excerpt', 'metadata', - ['slug', 'index' => true] + 'slug', ]; /** @@ -65,15 +64,15 @@ class Post extends Model * @var array */ public static $allowedSortingOptions = [ - 'title asc' => 'rainlab.blog::lang.sorting.title_asc', - 'title desc' => 'rainlab.blog::lang.sorting.title_desc', - 'created_at asc' => 'rainlab.blog::lang.sorting.created_asc', - 'created_at desc' => 'rainlab.blog::lang.sorting.created_desc', - 'updated_at asc' => 'rainlab.blog::lang.sorting.updated_asc', - 'updated_at desc' => 'rainlab.blog::lang.sorting.updated_desc', - 'published_at asc' => 'rainlab.blog::lang.sorting.published_asc', - 'published_at desc' => 'rainlab.blog::lang.sorting.published_desc', - 'random' => 'rainlab.blog::lang.sorting.random' + 'title asc' => "Title (ascending)", + 'title desc' => "Title (descending)", + 'created_at asc' => "Created (ascending)", + 'created_at desc' => "Created (descending)", + 'updated_at asc' => "Updated (ascending)", + 'updated_at desc' => "Updated (descending)", + 'published_at asc' => "Published (ascending)", + 'published_at desc' => "Published (descending)", + 'random' => "Random" ]; /* @@ -150,7 +149,7 @@ public function afterValidate() { if ($this->published && !$this->published_at) { throw new ValidationException([ - 'published_at' => Lang::get('rainlab.blog::lang.post.published_validation') + 'published_at' => __("Please specify the published date") ]); } } diff --git a/models/Settings.php b/models/Setting.php similarity index 57% rename from models/Settings.php rename to models/Setting.php index a117f80e..3a7530fc 100644 --- a/models/Settings.php +++ b/models/Setting.php @@ -2,28 +2,52 @@ use Cms\Classes\Page as CmsPage; use Cms\Classes\Theme; -use October\Rain\Database\Model; +use System\Models\SettingModel; -class Settings extends Model +/** + * Setting configuration + * + * @property bool show_all_posts + * @property string preview_cms_page + * @property bool force_richeditor_editor + * + * @package rainlab\blog + * @author Alexey Bobkov, Samuel Georges + */ +class Setting extends SettingModel { use \October\Rain\Database\Traits\Validation; - public $implement = ['System.Behaviors.SettingsModel']; - + /** + * @var string settingsCode is a unique code for this object + */ public $settingsCode = 'rainlab_blog_settings'; + /** + * @var mixed settingsFields definition file + */ public $settingsFields = 'fields.yaml'; + /** + * @var array rules for validation + */ public $rules = [ 'show_all_posts' => ['boolean'], ]; /** - * Get Preview CMS Page dropdown options - * - * @return array + * initSettingsData + */ + public function initSettingsData() + { + $this->show_all_posts = true; + $this->force_richeditor_editor = false; + } + + /** + * getPreviewCmsPageOptions returns the dropdown options for the preview CMS page setting */ - public function getPreviewCmsPageOptions() + public function getPreviewCmsPageOptions(): array { $theme = Theme::getActiveTheme(); @@ -35,10 +59,6 @@ public function getPreviewCmsPageOptions() continue; } - /* - * Component must use a categoryPage filter with a routing parameter and post slug - * eg: categoryPage = "{{ :somevalue }}", slug = "{{ :somevalue }}" - */ $properties = $page->getComponentProperties('blogPost'); if (!isset($properties['categoryPage']) || !preg_match('/{{\s*:/', $properties['slug'])) { continue; diff --git a/models/category/columns.yaml b/models/category/columns.yaml index 578d846e..94e5613f 100644 --- a/models/category/columns.yaml +++ b/models/category/columns.yaml @@ -5,9 +5,9 @@ columns: name: - label: rainlab.blog::lang.category.name + label: Name searchable: true post_count: - label: rainlab.blog::lang.category.posts + label: Posts sortable: false diff --git a/models/category/fields.yaml b/models/category/fields.yaml index adcf1bc3..a13ebe36 100644 --- a/models/category/fields.yaml +++ b/models/category/fields.yaml @@ -3,21 +3,19 @@ # =================================== fields: - name: - label: rainlab.blog::lang.category.name - placeholder: rainlab.blog::lang.category.name_placeholder + label: Name + placeholder: New category name span: left slug: - label: rainlab.blog::lang.category.slug + label: Slug span: right - placeholder: rainlab.blog::lang.category.slug_placeholder + placeholder: new-category-slug preset: name description: - label: 'rainlab.blog::lang.category.description' + label: Description size: large - oc.commentPosition: '' span: full type: textarea diff --git a/models/post/columns.yaml b/models/post/columns.yaml index 6567fcc6..4dc5632b 100644 --- a/models/post/columns.yaml +++ b/models/post/columns.yaml @@ -5,7 +5,7 @@ columns: title: - label: rainlab.blog::lang.post.title + label: Title searchable: true # author: @@ -15,22 +15,22 @@ columns: # searchable: true categories: - label: rainlab.blog::lang.post.categories + label: Categories relation: categories select: name searchable: true sortable: false created_at: - label: rainlab.blog::lang.post.created + label: Created type: date invisible: true updated_at: - label: rainlab.blog::lang.post.updated + label: Updated type: date invisible: true published_at: - label: rainlab.blog::lang.post.published + label: Published type: date diff --git a/models/post/fields.yaml b/models/post/fields.yaml index 90eb5e23..cb21a360 100644 --- a/models/post/fields.yaml +++ b/models/post/fields.yaml @@ -4,56 +4,59 @@ fields: title: - label: rainlab.blog::lang.post.title + label: Title span: left - placeholder: rainlab.blog::lang.post.title_placeholder + placeholder: New post title slug: - label: rainlab.blog::lang.post.slug + label: Slug span: right - placeholder: rainlab.blog::lang.post.slug_placeholder + placeholder: new-post-slug preset: field: title type: slug - toolbar: - type: partial - path: post_toolbar - cssClass: collapse-visible - -secondaryTabs: - stretch: true +tabs: fields: content: - tab: rainlab.blog::lang.post.tab_edit - type: RainLab\Blog\FormWidgets\BlogMarkdown - cssClass: field-slim blog-post-preview - stretch: true + tab: Edit + type: markdown + cssClass: field-slim + span: adaptive mode: split sideBySide: true categories: - tab: rainlab.blog::lang.post.tab_categories + tab: Categories type: relation - commentAbove: rainlab.blog::lang.post.categories_comment - placeholder: rainlab.blog::lang.post.categories_placeholder + commentAbove: Select categories the blog post belongs to + placeholder: "There are no categories, you should create one first!" + + featured_images: + tab: Images + label: Featured Images + type: fileupload + mode: image + imageWidth: 200 + imageHeight: 200 + span: adaptive published: - tab: rainlab.blog::lang.post.tab_manage - label: rainlab.blog::lang.post.published + tab: Manage + label: Published span: left type: checkbox user: - tab: rainlab.blog::lang.post.tab_manage - label: rainlab.blog::lang.post.published_by + tab: Manage + label: Published by span: right type: dropdown - emptyOption: rainlab.blog::lang.post.current_user + emptyOption: Current user published_at: - tab: rainlab.blog::lang.post.tab_manage - label: rainlab.blog::lang.post.published_on + tab: Manage + label: Published on span: left cssClass: checkbox-align type: datepicker @@ -64,15 +67,7 @@ secondaryTabs: condition: checked excerpt: - tab: rainlab.blog::lang.post.tab_manage - label: rainlab.blog::lang.post.excerpt + tab: Manage + label: Excerpt type: textarea size: small - - featured_images: - tab: rainlab.blog::lang.post.tab_manage - label: rainlab.blog::lang.post.featured_images - type: fileupload - mode: image - imageWidth: 200 - imageHeight: 200 diff --git a/models/post/scopes.yaml b/models/post/scopes.yaml index 6ddfc4c3..432773f7 100644 --- a/models/post/scopes.yaml +++ b/models/post/scopes.yaml @@ -7,7 +7,7 @@ scopes: category: # Filter name - label: rainlab.blog::lang.posts.filter_category + label: Category # Model Class name modelClass: RainLab\Blog\Models\Category @@ -21,7 +21,7 @@ scopes: published: # Filter name - label: rainlab.blog::lang.posts.filter_published + label: Published # Filter type type: switch @@ -34,7 +34,7 @@ scopes: created_at: # Filter name - label: rainlab.blog::lang.posts.filter_date + label: Date # Filter type type: daterange diff --git a/models/postexport/columns.yaml b/models/postexport/columns.yaml index b500a8fa..c730f62b 100644 --- a/models/postexport/columns.yaml +++ b/models/postexport/columns.yaml @@ -5,15 +5,15 @@ columns: id: ID - title: rainlab.blog::lang.post.title - content: rainlab.blog::lang.post.content - content_html: rainlab.blog::lang.post.content_html - excerpt: rainlab.blog::lang.post.excerpt - slug: rainlab.blog::lang.post.slug - categories: rainlab.blog::lang.post.categories - author_email: rainlab.blog::lang.post.author_email - featured_image_urls: rainlab.blog::lang.post.featured_images - created_at: rainlab.blog::lang.post.created_date - updated_at: rainlab.blog::lang.post.updated_date - published: rainlab.blog::lang.post.published - published_at: rainlab.blog::lang.post.published_date + title: Title + content: Content + content_html: HTML Content + excerpt: Excerpt + slug: Slug + categories: Categories + author_email: Author Email + featured_image_urls: Featured Images + created_at: Created date + updated_at: Updated date + published: Published + published_at: Published date diff --git a/models/postimport/columns.yaml b/models/postimport/columns.yaml index a2584ea5..b3eb6786 100644 --- a/models/postimport/columns.yaml +++ b/models/postimport/columns.yaml @@ -5,13 +5,13 @@ columns: id: ID - title: rainlab.blog::lang.post.title - content: rainlab.blog::lang.post.content - excerpt: rainlab.blog::lang.post.excerpt - slug: rainlab.blog::lang.post.slug - categories: rainlab.blog::lang.post.categories - author_email: rainlab.blog::lang.post.author_email - created_at: rainlab.blog::lang.post.created_date - updated_at: rainlab.blog::lang.post.updated_date - published: rainlab.blog::lang.post.published - published_at: rainlab.blog::lang.post.published_date + title: Title + content: Content + excerpt: Excerpt + slug: Slug + categories: Categories + author_email: Author Email + created_at: Created date + updated_at: Updated date + published: Published + published_at: Published date diff --git a/models/postimport/fields.yaml b/models/postimport/fields.yaml index 3e7600ad..76a84b2f 100644 --- a/models/postimport/fields.yaml +++ b/models/postimport/fields.yaml @@ -5,22 +5,22 @@ fields: update_existing: - label: rainlab.blog::lang.import.update_existing_label - comment: rainlab.blog::lang.import.update_existing_comment + label: Update existing posts + comment: Check this box to update posts that have exactly the same ID, title or slug. type: checkbox default: true span: left auto_create_categories: - label: rainlab.blog::lang.import.auto_create_categories_label - comment: rainlab.blog::lang.import.auto_create_categories_comment + label: Create categories specified in the import file + comment: "You should match the Categories column to use this feature, otherwise select the default categories to use from the items below." type: checkbox default: true span: right categories: - label: rainlab.blog::lang.import.categories_label - commentAbove: rainlab.blog::lang.import.categories_comment + label: Categories + commentAbove: "Select the categories that imported posts will belong to (optional)." type: checkboxlist span: right cssClass: field-indent @@ -30,8 +30,8 @@ fields: condition: checked default_author: - label: rainlab.blog::lang.import.default_author_label - comment: rainlab.blog::lang.import.default_author_comment + label: Default post author (optional) + comment: "The import will try to use an existing author if you match the Author Email column, otherwise the author specified above is used." type: dropdown - placeholder: rainlab.blog::lang.import.default_author_placeholder + placeholder: "-- select author --" span: left diff --git a/models/setting/fields.yaml b/models/setting/fields.yaml new file mode 100644 index 00000000..89dbc5b0 --- /dev/null +++ b/models/setting/fields.yaml @@ -0,0 +1,24 @@ +tabs: + fields: + force_richeditor_editor: + span: full + label: Force the WYSIWYG editor + comment: Use common richtext editor instead of the Markdown editor + type: switch + default: 0 + tab: General + + show_all_posts: + span: full + label: Show All Posts to Backend Users + comment: Display both published and unpublished posts on the frontend to backend users + type: switch + default: 1 + tab: General + + preview_cms_page: + span: full + label: Preview CMS Page + comment: Select a page to open for the Preview button + type: dropdown + tab: General diff --git a/models/settings/fields.yaml b/models/settings/fields.yaml deleted file mode 100644 index 6574258e..00000000 --- a/models/settings/fields.yaml +++ /dev/null @@ -1,32 +0,0 @@ -tabs: - fields: - show_all_posts: - span: full - label: rainlab.blog::lang.blog.show_all_posts_label - comment: rainlab.blog::lang.blog.show_all_posts_comment - type: switch - default: 1 - tab: rainlab.blog::lang.blog.tab_general - - preview_cms_page: - span: full - label: rainlab.blog::lang.blog.preview_cms_page_label - comment: rainlab.blog::lang.blog.preview_cms_page_comment - type: dropdown - tab: rainlab.blog::lang.blog.tab_general - - use_legacy_editor: - span: full - label: rainlab.blog::lang.blog.use_legacy_editor_label - comment: rainlab.blog::lang.blog.use_legacy_editor_comment - type: switch - default: 0 - tab: rainlab.blog::lang.blog.tab_general - - force_richeditor_editor: - span: full - label: rainlab.blog::lang.blog.force_richeditor_editor_label - comment: rainlab.blog::lang.blog.force_richeditor_editor_comment - type: switch - default: 0 - tab: rainlab.blog::lang.blog.tab_general diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 00000000..6d02ba8e --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,30 @@ + + + + + ./tests + + + + + + + + + + + + + + + diff --git a/tests/LangFilesTest.php b/tests/LangFilesTest.php new file mode 100644 index 00000000..1a3e8999 --- /dev/null +++ b/tests/LangFilesTest.php @@ -0,0 +1,83 @@ +assertNotNull( + $decoded, + basename($filePath) . ' contains invalid JSON: ' . json_last_error_msg() + ); + } + + /** + * @dataProvider langFileProvider + */ + public function testLangFileIsJsonObject($filePath) + { + $content = file_get_contents($filePath); + $decoded = json_decode($content); + + $this->assertIsObject( + $decoded, + basename($filePath) . ' should decode to a JSON object, not an array or scalar' + ); + } + + /** + * @dataProvider langFileProvider + */ + public function testLangFileHasNoEmptyKeys($filePath) + { + $content = file_get_contents($filePath); + $decoded = json_decode($content, true); + + foreach ($decoded as $key => $value) { + $this->assertNotEmpty( + trim($key), + basename($filePath) . ' contains an empty translation key' + ); + } + } + + /** + * @dataProvider langFileProvider + */ + public function testLangFileValuesAreStrings($filePath) + { + $content = file_get_contents($filePath); + $decoded = json_decode($content, true); + + foreach ($decoded as $key => $value) { + $this->assertIsString( + $value, + basename($filePath) . " key '{$key}' has a non-string value" + ); + } + } + + /** + * langFileProvider returns all JSON files in the lang directory + */ + public static function langFileProvider(): array + { + $langPath = __DIR__ . '/../lang'; + $files = glob($langPath . '/*.json'); + + $data = []; + foreach ($files as $file) { + $data[basename($file)] = [$file]; + } + + return $data; + } +} diff --git a/updates/create_posts_table.php b/updates/000001_create_posts.php similarity index 63% rename from updates/create_posts_table.php rename to updates/000001_create_posts.php index 8ec081b3..ea5e6e54 100644 --- a/updates/create_posts_table.php +++ b/updates/000001_create_posts.php @@ -1,18 +1,15 @@ -engine = 'InnoDB'; - $table->increments('id'); - $table->integer('user_id')->unsigned()->nullable()->index(); + Schema::create('rainlab_blog_posts', function (Blueprint $table) { + $table->bigIncrements('id'); + $table->bigInteger('user_id')->unsigned()->nullable()->index(); $table->string('title')->nullable(); $table->string('slug')->index(); $table->text('excerpt')->nullable(); @@ -20,6 +17,7 @@ public function up() $table->longText('content_html')->nullable(); $table->timestamp('published_at')->nullable(); $table->boolean('published')->default(false); + $table->mediumText('metadata')->nullable(); $table->timestamps(); }); } @@ -28,5 +26,4 @@ public function down() { Schema::dropIfExists('rainlab_blog_posts'); } - -} +}; diff --git a/updates/000002_create_categories.php b/updates/000002_create_categories.php new file mode 100644 index 00000000..5d09c9cf --- /dev/null +++ b/updates/000002_create_categories.php @@ -0,0 +1,28 @@ +bigIncrements('id'); + $table->string('name')->nullable(); + $table->string('slug')->nullable()->index(); + $table->string('code')->nullable(); + $table->text('description')->nullable(); + $table->bigInteger('parent_id')->unsigned()->nullable()->index(); + $table->integer('nest_left')->nullable(); + $table->integer('nest_right')->nullable(); + $table->integer('nest_depth')->nullable(); + $table->timestamps(); + }); + } + + public function down() + { + Schema::dropIfExists('rainlab_blog_categories'); + } +}; diff --git a/updates/000003_create_posts_categories.php b/updates/000003_create_posts_categories.php new file mode 100644 index 00000000..55007496 --- /dev/null +++ b/updates/000003_create_posts_categories.php @@ -0,0 +1,21 @@ +bigInteger('post_id')->unsigned(); + $table->bigInteger('category_id')->unsigned(); + $table->primary(['post_id', 'category_id'], 'blog_post_category'); + }); + } + + public function down() + { + Schema::dropIfExists('rainlab_blog_posts_categories'); + } +}; diff --git a/updates/categories_add_nested_fields.php b/updates/categories_add_nested_fields.php deleted file mode 100644 index c5a2bd21..00000000 --- a/updates/categories_add_nested_fields.php +++ /dev/null @@ -1,34 +0,0 @@ -integer('parent_id')->unsigned()->index()->nullable(); - $table->integer('nest_left')->nullable(); - $table->integer('nest_right')->nullable(); - $table->integer('nest_depth')->nullable(); - }); - - foreach (CategoryModel::all() as $category) { - $category->setDefaultLeftAndRight(); - $category->save(); - } - } - - public function down() - { - } - -} \ No newline at end of file diff --git a/updates/create_categories_table.php b/updates/create_categories_table.php deleted file mode 100644 index 988a9d44..00000000 --- a/updates/create_categories_table.php +++ /dev/null @@ -1,41 +0,0 @@ -engine = 'InnoDB'; - $table->increments('id'); - $table->string('name')->nullable(); - $table->string('slug')->nullable()->index(); - $table->string('code')->nullable(); - $table->text('description')->nullable(); - $table->integer('parent_id')->unsigned()->index()->nullable(); - $table->integer('nest_left')->nullable(); - $table->integer('nest_right')->nullable(); - $table->integer('nest_depth')->nullable(); - $table->timestamps(); - }); - - Schema::create('rainlab_blog_posts_categories', function($table) - { - $table->engine = 'InnoDB'; - $table->integer('post_id')->unsigned(); - $table->integer('category_id')->unsigned(); - $table->primary(['post_id', 'category_id']); - }); - } - - public function down() - { - Schema::dropIfExists('rainlab_blog_categories'); - Schema::dropIfExists('rainlab_blog_posts_categories'); - } - -} diff --git a/updates/migrate_v2_0_0.php b/updates/migrate_v2_0_0.php new file mode 100644 index 00000000..b3ab1ffa --- /dev/null +++ b/updates/migrate_v2_0_0.php @@ -0,0 +1,88 @@ +whereIn('model_type', $modelTypes) + ->whereNotNull('model_id') + ->orderBy('id') + ->chunk(100, function ($rows) { + foreach ($rows as $row) { + if (!is_numeric($row->model_id)) { + continue; + } + + $data = json_decode($row->attribute_data, true); + if (!is_array($data)) { + continue; + } + + foreach ($data as $attribute => $value) { + if ($value === null || $value === '') { + continue; + } + + Db::table('system_translate_attributes')->upsert( + [ + 'model_type' => $row->model_type, + 'model_id' => (int) $row->model_id, + 'locale' => $row->locale, + 'attribute' => $attribute, + 'value' => is_array($value) ? json_encode($value) : $value, + ], + ['model_type', 'model_id', 'locale', 'attribute'], + ['value'] + ); + } + } + }); + + // Migrate indexes (catches indexed values like slugs) + if (!Schema::hasTable('rainlab_translate_indexes')) { + return; + } + + Db::table('rainlab_translate_indexes') + ->whereIn('model_type', $modelTypes) + ->whereNotNull('model_id') + ->whereNotNull('item') + ->orderBy('id') + ->chunk(100, function ($rows) { + foreach ($rows as $row) { + if (!is_numeric($row->model_id) || $row->value === null || $row->value === '') { + continue; + } + + Db::table('system_translate_attributes')->upsert( + [ + 'model_type' => $row->model_type, + 'model_id' => (int) $row->model_id, + 'locale' => $row->locale, + 'attribute' => $row->item, + 'value' => $row->value, + ], + ['model_type', 'model_id', 'locale', 'attribute'], + ['value'] + ); + } + }); + } + + public function down() + { + } +}; diff --git a/updates/posts_add_metadata.php b/updates/posts_add_metadata.php deleted file mode 100644 index aff20165..00000000 --- a/updates/posts_add_metadata.php +++ /dev/null @@ -1,30 +0,0 @@ -mediumText('metadata')->nullable(); - }); - } - - public function down() - { - if (Schema::hasColumn('rainlab_blog_posts', 'metadata')) { - Schema::table('rainlab_blog_posts', function ($table) { - $table->dropColumn('metadata'); - }); - } - } - -} diff --git a/updates/seed_all_tables.php b/updates/seed_tables.php similarity index 67% rename from updates/seed_all_tables.php rename to updates/seed_tables.php index 7be9344f..10dd51cb 100644 --- a/updates/seed_all_tables.php +++ b/updates/seed_tables.php @@ -5,11 +5,20 @@ use RainLab\Blog\Models\Category; use October\Rain\Database\Updates\Seeder; -class SeedAllTables extends Seeder +/** + * SeedTables for the blog plugin + */ +class SeedTables extends Seeder { - + /** + * run migration + */ public function run() { + if (Post::count() > 0) { + return; + } + Post::create([ 'title' => 'First blog post', 'slug' => 'first-blog-post', @@ -25,10 +34,11 @@ public function run() 'published' => true ]); - Category::create([ - 'name' => trans('rainlab.blog::lang.categories.uncategorized'), - 'slug' => 'uncategorized', - ]); + if (Category::where('slug', 'uncategorized')->count() === 0) { + Category::create([ + 'name' => __("Uncategorized"), + 'slug' => 'uncategorized', + ]); + } } - } diff --git a/updates/update_timestamp_nullable.php b/updates/update_timestamp_nullable.php deleted file mode 100644 index 7de7961c..00000000 --- a/updates/update_timestamp_nullable.php +++ /dev/null @@ -1,20 +0,0 @@ -