feat(i18n): add Norwegian (nb_NO) translation and clean up

- Add complete Norwegian (nb_NO) language file
- Update .gitignore to exclude temporary and backup files
- Remove temporary and backup files from language directory
- Clean up scripts directory and add to .gitignore
- Update language file format to use key-value pairs
This commit is contained in:
Stig-Ørjan Smelror 2025-05-18 19:01:39 +02:00
parent f2778d502d
commit 91b0bbd112
12 changed files with 2674 additions and 892 deletions

58
.gitignore vendored Normal file
View File

@ -0,0 +1,58 @@
# Temporary files
*.tmp
*.bak
*.backup
*.swp
*.swo
*~
*.new
*.en
.DS_Store
.idea/
.vscode/
# Language directory temporary files
include/qsgen2/lang/*.backup
include/qsgen2/lang/*.bak
include/qsgen2/lang/*.new
include/qsgen2/lang/*.txt
include/qsgen2/lang/*.en
# Scripts directory (temporary/conversion scripts)
/scripts/
# Build output
/build/
/dist/
*.o
# Python cache
__pycache__/
*.py[cod]
*$py.class
# Node modules
node_modules/
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Local development files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

220
HOWTO.md Normal file
View File

@ -0,0 +1,220 @@
# Quick Site Generator 2 (qsgen2) - User Guide
## Table of Contents
1. [Introduction](#introduction)
2. [Installation](#installation)
3. [Quick Start](#quick-start)
4. [Project Structure](#project-structure)
5. [Content Creation](#content-creation)
- [Pages](#pages)
- [Blog Posts](#blog-posts)
6. [Markup Languages](#markup-languages)
- [QSTags](#qstags)
- [Markdown](#markdown)
- [Conversion Between Formats](#conversion-between-formats)
7. [Themes and Templates](#themes-and-templates)
8. [Configuration](#configuration)
9. [Command Reference](#command-reference)
10. [Advanced Usage](#advanced-usage)
11. [Troubleshooting](#troubleshooting)
12. [Contributing](#contributing)
## Introduction
Quick Site Generator 2 (qsgen2) is a powerful static site generator written in Zsh. It's designed to be fast, flexible, and easy to use, with support for both custom QSTags and standard Markdown syntax.
## Installation
1. Clone the repository:
```bash
git clone https://github.com/kekePower/qsgen2.git
cd qsgen2
```
2. Make the script executable:
```bash
chmod +x qsgen2
```
3. Add to your PATH (optional):
```bash
echo 'export PATH="$PATH:'$(pwd)'"' >> ~/.zshrc
source ~/.zshrc
```
## Quick Start
1. Create a new site:
```bash
./qsgen2 new my-site
cd my-site
```
2. Build the site:
```bash
./qsgen2 build
```
3. Preview the site:
```bash
./qsgen2 serve
```
## Project Structure
```
my-site/
├── config # Site configuration
├── content/ # Source content
│ ├── pages/ # Static pages
│ └── blog/ # Blog posts
├── themes/ # Site themes
├── static/ # Static files (images, CSS, JS)
└── output/ # Generated site (created on build)
```
## Content Creation
### Pages
Create a new page:
```bash
./qsgen2 new page about
```
Pages use the `.qst` extension and can include QSTags or Markdown.
### Blog Posts
Create a new blog post:
```bash
./qsgen2 new post my-first-post
```
Blog posts use the `.blog` extension and support the same markup as pages.
## Markup Languages
### QSTags
QSTags is a simple markup language used by qsgen2. Example:
```
#H1 Welcome to My Site#EH1
#P This is a paragraph with #BDbold#EBD and #Iitalic#EI text.#EP
```
### Markdown
Markdown is also supported:
```markdown
# Welcome to My Site
This is a paragraph with **bold** and *italic* text.
```
### Conversion Between Formats
Convert a single file to Markdown:
```bash
./qsgen2 convert --to-markdown content/pages/about.qst content/pages/about.md
```
Convert all files to Markdown:
```bash
./qsgen2 convert --to-markdown --all
```
Convert back to QSTags:
```bash
./qsgen2 convert --to-qstags --all
```
## Themes and Templates
Themes are stored in the `themes` directory. Each theme can include:
- Page templates
- Blog post templates
- CSS/JavaScript
- Assets
## Configuration
Edit `config/site.conf` to customize your site:
```ini
site_name = "My Awesome Site"
site_url = "https://example.com"
site_author = "Your Name"
theme = "default"
```
## Command Reference
### Build Commands
- `build`: Build the site
- `clean`: Remove generated files
- `serve`: Start a local server
### Content Management
- `new page <name>`: Create a new page
- `new post <title>`: Create a new blog post
- `convert`: Convert between markup formats
### Utility Commands
- `version`: Show version information
- `help`: Show help message
## Advanced Usage
### Custom Build Scripts
Create a `build.zsh` file in your project root:
```bash
#!/usr/bin/env zsh
# Custom build script
# Clean previous build
./qsgen2 clean
# Convert all content to Markdown for editing
./qsgen2 convert --to-markdown --all
# Build the site
./qsgen2 build
# Optimize images
find output -name "*.jpg" -exec jpegoptim --strip-all {} \;
```
## Troubleshooting
### Common Issues
1. **Permission Denied**
```bash
chmod +x qsgen2
```
2. **Command Not Found**
Add qsgen2 to your PATH or use `./qsgen2`
3. **Build Errors**
Check for syntax errors in your content files
## Contributing
1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request
## License
MIT License - See LICENSE for details.
---
*Quick Site Generator 2 - A fast, flexible static site generator*

View File

@ -1,117 +1,217 @@
qsgenlang=( # Quick Site Generator 2 - English Language File
_qsgen2_msg_2 "- Forced Update: Generating Everything" # This file contains all user-facing strings for the application
_qsgen2_msg_3 "* %SCRIPT_NAME% cannot parse this site. Exiting. *"
_qsgen2_msg_4 "Please install Pandoc." # Error Messages
_qsgen2_msg_5 "No valid generator found. Are you sure you've selected the correct generator in 'config'?" error.missing_dependencies = "Missing required dependencies: %s"
_qsgen2_msg_6 "Using the" error.config_validation_failed = "Configuration validation failed. Please check your configuration files."
_qsgen2_msg_6.1 "-engine for files:" error.config_missing_key = "Missing required configuration: %s"
_qsgen2_msg_7 "- Created by kekePower - 2018-" error.invalid_url = "site_url must start with http:// or https://"
_qsgen2_msg_8 "- See" error.directory_not_found = "Directory does not exist: %s"
_qsgen2_msg_8.1 "for more information." error.theme_not_found = "Theme directory not found: %s"
_qsgen2_msg_9 "Contents of the Config file:" error.theme_config_not_found = "Theme configuration not found: %s"
_list_pages_msg_1 "_list_pages: No Pages found with extension" error.theme_config_creation_failed = "Failed to create theme configuration: %s"
_list_pages_msg_2 "_list_pages: Adding file to array:" error.config_parse = "Failed to parse config file: %s"
_list_blogs_msg_1 "_list_blogs: No blog files found." error.invalid_path = "Invalid path: %s"
_list_blogs_msg_2 "_list_blogs: Adding file to array:" error.write_failed = "Failed to write to temporary file: %s"
_blog_cache_msg_1 "_blog_cache: HASH VALUE:" error.move_failed = "Failed to move temporary file to: %s"
_blog_cache_msg_2 "1. _blog_cache:" error.config_load_failed = "Failed to load configuration file: %s"
_blog_cache_msg_3 "2. _blog_cache: current_cache:" error.config_not_found = "No valid configuration file found."
_blog_cache_msg_4 "3. _blog_cache: new_cache_file:" error.create_blog_index_failed = "Failed to create blog index at: %s"
_blog_cache_msg_5 "4. _blog_cache: new_current_cache:" error.create_sample_post_failed = "Failed to create sample blog post at: %s"
_pages_cache_msg_1 "PAGES HASH VALUE:" error.create_sample_page_failed = "Failed to create sample page at: %s"
_pages_cache_msg_2 "1. pages_cache:" error.engine_not_found = "Engine not found or not executable: %s"
_pages_cache_msg_3 "1. _pages_cache: current_cache:" error.unknown_generator = "Unknown generator: %s"
_pages_cache_msg_4 "2. _pages_cache: pages_file:" error.unknown_option = "Unknown option: %s"
_pages_cache_msg_5 "2. _pages_cache: current_cache:" error.directory_not_empty = "Directory '%s' already exists and is not empty."
_last_updated_msg_1 "_last_updated: Setting date and version in footer" error.theme_creation_failed = "Failed to create theme: %s"
_last_updated_msg_1 "_last_updated:" error.config_creation_failed = "Failed to create configuration file: %s"
_f_last_updated_msg_1 "_f_last_updated: Setting date and version in footer of file" error.directory_creation_failed = "Failed to create directory: %s"
_f_last_updated_msg_2 "_f_last_updated:" error.file_creation_failed = "Failed to create file: %s"
_f_last_updated_msg_3 "_f_last_updated: File" error.layout_creation_failed = "Failed to create layout file: %s"
_f_last_updated_msg_3.1 "not found." error.stylesheet_creation_failed = "Failed to create stylesheet: %s"
_pages_msg_1 "_pages: Running function _pages_cache" error.script_creation_failed = "Failed to create script file: %s"
_pages_msg_2 "* You do not have any pages *"
_pages_msg_3 "Generating Pages" # Warning Messages
_pages_msg_4 "_pages: pages_array is not empty" warning.optional_dependency = "Optional tool '%s' is required for %s but not found"
_pages_msg_5 "_pages: Setting Pages template" warning.dependency_version = "%s version %s is below the recommended version %s"
_pages_msg_6 "Unable to find the Pages template:" warning.legacy_config = "Using legacy config file. Consider renaming '%s' to 'site.conf'"
_pages_msg_7 "_pages: Reading Pages template into pages_tpl" warning.git_repo = "Warning: Running in a git repository directory. Make sure this is intended."
_pages_msg_9 "_pages: Loading page_content once -" warning.outdated_dependencies = "Some dependencies are outdated:"
_pages_msg_10 "_pages: Finding page_title"
_pages_msg_11 "_pages:" # Info Messages
_pages_msg_12 "_pages: Removing #title line from page_content" info.legacy_config = "Warning: Using legacy '%s' file. Consider renaming to 'site.conf'"
_pages_msg_13 "_pages: Running engine on" info.legacy_config_used = "Using legacy config file. Consider renaming 'config' to 'site.conf'"
_pages_msg_14 "_pages: Checking for #link, #showimg and #ytvideo in page_content" info.config_help = "Please create 'site.conf' in your project directory."
_pages_msg_15 "_pages: #link is present, run _link: page_content" info.config_template = "You can use 'config.example' as a template."
_pages_msg_16 "_pages: #showimg is present, run _image: page_content" info.git_repo_help = "If you want to generate the site, run from the project root directory."
_pages_msg_17 "_pages: #ytvideo is present, run _youtube: page_content" info.usage = "Usage: %s <command> [options]"
_pages_msg_18 "_pages: Replacing #pagetitle, #tagline and #sitename in pages_tpl" info.engine_usage = "Usage: _run_engine <input>"
_pages_msg_19 "_pages: Replacing BODY with page_content in pages_tpl" info.creating_blog_index = "Creating blog index file..."
_pages_msg_20 "_pages: _last_updated in pages_tpl" info.creating_sample_post = "Creating sample blog post..."
_pages_msg_21 "_pages: Lowercase filenames, always" info.creating_sample_page = "Creating sample page..."
_pages_msg_22 "_pages: Running _cleanup" info.setting_up_project = "Setting up project structure..."
_pages_msg_23 "- Parsing" info.creating_directories = "Creating project directories..."
_pages_msg_24 "- blog_in_index =" info.initializing_blog = "Initializing blog..."
_pages_msg_25 "- Printing blog temp file:" info.initializing_pages = "Initializing pages..."
_pages_msg_26 "Updating index.html with new blog posts" info.initializing_theme = "Initializing theme..."
_pages_msg_27 "- Parsing" info.initializing_config = "Initializing configuration..."
_pages_msg_28 "- blog_in_index =" info.initializing_complete = "Initialization complete!"
_pages_msg_29 "- No new or updated Pages found" info.initializing_aborted = "Initialization aborted."
_blogs_msg_1 "_blogs: Running function _list_blogs" info.use_force_option = "Use --force to overwrite the existing directory."
_blogs_msg_2 "* You do not have any blogs *" info.get_started_instructions = "To get started"
_blogs_msg_3 "Generating Blogs" info.happy_coding = "Happy coding!"
_blogs_msg_4 "_blogs: Running function _blog_cache" info.initializing_project = "Initializing project..."
_blogs_msg_5 "Unable to find theme template for Blogs." info.initializing_blog_cache = "Initializing blog cache..."
_blogs_msg_6 "_blogs: Processing pre-data for" info.initializing_pages_cache = "Initializing pages cache..."
_blogs_msg_7 "_blogs: Looking for DATE: Found"
_blogs_msg_8 "_blogs: Looking for BLOG_TITLE: Found" # Debug Messages
_blogs_msg_9 "* _blogs: DATE metadata missing in" debug.loading_config = "Loading config file: %s"
_blogs_msg_10 "* _blogs: BLOG_TITLE metadata missing in" debug.loaded_config = "=== Loaded Configuration ==="
_blogs_msg_11 "_blogs: Adding data for" debug.config_value = "%s: %s"
_blogs_msg_11.1 "to array to export" debug.config_end = "==========================="
_blogs_msg_12 "_blogs: Processing" debug.raw_config = "=== Raw Config File ==="
_blogs_msg_14 "_blogs: Processing substitutes in" debug.raw_config_end = "======================"
_blogs_msg_15 "_blogs: Running function" debug.blog_cache_update = "Updating blog cache at %s"
_blogs_msg_15.1 "for" debug.blog_cache_bytes = "Blog cache updated with %d bytes"
_blogs_msg_16 "_blogs: Checking for #link, #showimg and #ytvideo in blog_content" debug.blog_cache_loading = "Loading blog index from cache"
_blogs_msg_17 "_blogs: #link is present, run _link: blog_content" debug.blog_cache_stale_new = "Blog cache stale: New or updated blogs detected"
_blogs_msg_18 "_blogs: #showimg is present, run _link: blog_content" debug.blog_cache_stale_missing = "Blog cache stale: Cache file does not exist"
_blogs_msg_19 "_blogs: #ytvideo is present, run _link: blog_content" debug.blog_cache_stale_old = "Blog cache stale: Cache is older than 1 hour"
_blogs_msg_20 "_blogs: Replacing tagline, sitename and pagetitle" debug.blog_cache_fresh = "Blog cache is fresh"
_blogs_msg_21 "_blogs: Creating directory" debug.pages_cache_update = "Updating pages cache at %s"
_blogs_msg_22 "_blogs: Writing blog to disk:" debug.pages_cache_bytes = "Pages cache updated with %d bytes"
_blogs_msg_23 "_blogs: new_updated_blogs=true" debug.pages_cache_loading = "Loading pages index from cache"
_blogs_msg_24 "- No new or updated Blogs found" debug.pages_cache_stale_new = "Pages cache stale: New or updated pages detected"
_blogs_msg_25 "* _blogs: Running _blog_idx_for_index" debug.pages_cache_stale_missing = "Pages cache stale: Cache file does not exist"
_blogs_msg_26 "* _blogs: Running _blog_index" debug.pages_cache_stale_old = "Pages cache stale: Cache is older than 1 hour"
_blog_idx_for_index_msg_1 "- Populating" debug.pages_cache_fresh = "Pages cache is fresh"
_blog_idx_for_index_msg_2 "_blog_idx_for_index: Initiating function"
_blog_idx_for_index_msg_3 "_blog_idx_for_index: BLOG_META_STR_ARRAY:" # Blog Messages
_blog_idx_for_index_msg_4 "_blog_idx_for_index: meta_str from BLOG_META_STR_ARRAY from _blogs" blog.not_found = "No blog files found."
_blog_idx_for_index_msg_5 "_blog_idx_for_index:" blog.generating = "Generating blog"
_blog_idx_for_index_msg_6 "_blog_idx_for_index: Iterate over each component and extract information" blog.no_template = "Unable to find the blog template: %s"
_blog_idx_for_index_msg_7 "_blog_idx_for_index: Running" blog.cache_updated = "Blog cache updated"
_blog_idx_for_index_msg_7.1 "on content to catch QStags in Ingress" blog.cache_loading = "Loading blog cache"
_blog_idx_for_index_msg_8 "_blog_idx_for_index: Writing _blog_idx_for_index to file:" blog.cache_stale = "Blog cache is stale, rebuilding..."
_blog_idx_for_index_msg_9 "_blog_idx_for_index: blog_list_content =" blog.cache_fresh = "Blog cache is fresh"
_blog_index_msg_1 "_blog_index: blog_in_index=" blog.post_updated = "Updated blog post: %s"
_blog_index_msg_2 "_blog_index: new_updated_blogs=" blog.post_skipped = "Skipped (no changes): %s"
_blog_index_msg_3 "_blog_index: Running function _blog_index" blog.post_error = "Error processing blog post: %s"
_blog_index_msg_4 "_blog_index: blog_in_index ="
_blog_index_msg_5 "- Generating Page:" # Blog Generation Messages
_blog_index_msg_6 "_blog_index: Replacing sitename and tagline" blog.hello_world_title = "Hello, World!"
_blog_index_msg_7 "_blog_index: Replacing BODY with content of" blog.published_on = "Published on"
_blog_index_msg_8 "_blog_index: Writing" blog.welcome_message = "Welcome to your new blog! This is a sample blog post."
_blog_index_msg_9 "_blog_index: Content length of blog_index_content:" blog.getting_started = "Getting Started"
_add_blog_list_to_index_msg_1 "_add_blog_list_to_index: Inserting blog list to index.html" blog.edit_this_post = "You can edit this post at %s"
_sitemap_msg_1 "Generating Sitemap" blog.features = "Features"
_sitemap_msg_2 "Sitemap generated at" blog.feature_markdown = "Markdown support"
_link_msg_1 "_link: URL_MAIN(line):" blog.feature_easy_customize = "Easy to customize"
_link_msg_2 "_link_ URL:" blog.feature_fast_lightweight = "Fast and lightweight"
_link_msg_3 "_link: Text:" blog.next_steps = "Next Steps"
_image_msg_1 "_image: Processing line:" blog.step_edit_post = "Edit this post"
_youtube_msg_1 "_youtube: Processing line:" blog.step_add_posts = "Add more posts"
_cleanup_msg_1 "_cleanup: Cleaning up tags in content" blog.step_customize_theme = "Customize your theme"
_html_msg_1 "_html: Converting QStags in content" blog.step_publish_site = "Publish your site"
_zhtml_msg_1 "_zhtml: Converting QStags in content" blog.happy_blogging = "Happy blogging!"
) blog.latest_posts = "Latest Posts"
blog.sample_post = "Blog Post"
blog.categories = "Categories"
blog.sample_category = "Category"
blog.archives = "Archives"
blog.tags = "Tags"
blog.about = "About"
blog.about_text = "This is a sample blog index page. You can edit it at %s"
# Page Generation Messages
page.about_me_title = "About Me"
page.welcome_title = "Welcome to My Site"
page.welcome_message = "This is a sample about page. You can edit it at %s"
page.my_story_title = "My Story"
page.my_story_content = "I'm a passionate developer who loves creating amazing websites with qsgen2!"
page.skills_title = "Skills"
page.skill_webdev = "Web Development"
page.skill_design = "Design"
page.skill_opensource = "Open Source"
page.contact_title = "Contact"
page.contact_content = "You can reach me at: email@example.com"
page.about_site_title = "About This Site"
page.about_site_content = "This site was built with [qsgen2](https://github.com/kekePower/qsgen2)."
# Success Messages
success.config_loaded = "Configuration loaded successfully"
success.build_complete = "Build completed successfully"
success.blog_index_created = "Created blog index at: %s"
success.sample_post_created = "Created sample blog post at: %s"
success.sample_page_created = "Created sample page at: %s"
success.project_initialized = "Project initialized successfully!"
success.theme_initialized = "Theme initialized successfully!"
success.config_initialized = "Configuration file created successfully!"
# System Messages
system.created_by = "- Created by kekePower - 2018-%s"
system.see_help = "- See '%s help' for more information."
# List Messages
list.pages_not_found = "_list_pages: No Pages found with ext %s"
list.pages_adding = "_list_pages: Adding file to array: %s"
list.blogs_not_found = "_list_blogs: No blog files found."
list.blogs_adding = "_list_blogs: Adding file to array: %s"
# Blog Cache Messages
blog_cache.hash = "_blog_cache: HASH VALUE:"
blog_cache.current = "1. _blog_cache:"
blog_cache.cache_file = "2. _blog_cache: current_cache:"
blog_cache.new_cache = "3. _blog_cache: new_cache_file:"
blog_cache.new_current = "4. _blog_cache: new_current_cache:"
# Pages Cache Messages
page_cache.hash = "PAGES HASH VALUE:"
page_cache.current = "1. pages_cache:"
page_cache.cache_file = "2. _pages_cache: current_cache:"
page_cache.pages_file = "2. _pages_cache: pages_file:"
# Navigation
nav.home = "Home"
nav.blog = "Blog"
nav.about = "About"
# Footer
footer.all_rights_reserved = "All rights reserved."
# Configuration
config.site_config_title = "Site Configuration"
config.theme_config_title = "Theme Configuration"
config.site_name_default = "My Awesome Site"
config.site_tagline_default = "A static site generated with qsgen2"
config.site_description_default = "This is my awesome static site"
config.your_name = "Your Name"
config.theme_description = "A custom theme for qsgen2"
config.theme_files_title = "Theme files (relative to theme directory)"
# CSS and JavaScript
css.main_styles = "Main Styles"
js.main_javascript = "Main JavaScript"
js.console_message = "Hello from qsgen2!"
js.add_custom_javascript = "Add any custom JavaScript here"
js.your_code_here = "Your code here"
# Last Updated Messages
last_updated.setting = "_last_updated: Setting date and version in footer"
last_updated.file_not_found = "_f_last_updated: File %s not found."
# Pages Messages
pages.generating = "Generating Pages"
pages.none = "* You do not have any pages *"
pages.no_template = "Unable to find the Pages template: %s"
# Pandoc Messages
pandoc.install = "Please install Pandoc."
pandoc.download = "https://github.com/jgm/pandoc/releases"
# Generator Messages
generator.not_found = "No valid generator found. Are you sure you've selected the correct generator in 'config'?"
# Build Messages
build.forced = "- Forced Update: Generating Everything"
build.using_engine = "Using the %s -engine for files:"

View File

@ -1,117 +1,217 @@
qsgenlang=( # Quick Site Generator 2 - English Language File
_qsgen2_msg_2 "- Forced Update: Generating Everything" # This file contains all user-facing strings for the application
_qsgen2_msg_3 "* %SCRIPT_NAME% cannot parse this site. Exiting. *"
_qsgen2_msg_4 "Please install Pandoc." # Error Messages
_qsgen2_msg_5 "No valid generator found. Are you sure you\'ve selected the correct generator in \'config\'?" error.missing_dependencies = "Missing required dependencies: %s"
_qsgen2_msg_6 "Using the" error.config_validation_failed = "Configuration validation failed. Please check your configuration files."
_qsgen2_msg_6.1 "-engine for files:" error.config_missing_key = "Missing required configuration: %s"
_qsgen2_msg_7 "- Created by kekePower - 2018-" error.invalid_url = "site_url must start with http:// or https://"
_qsgen2_msg_8 "- See" error.directory_not_found = "Directory does not exist: %s"
_qsgen2_msg_8.1 "for more information." error.theme_not_found = "Theme directory not found: %s"
_qsgen2_msg_9 "Contents of the Config file:" error.theme_config_not_found = "Theme configuration not found: %s"
_list_pages_msg_1 "_list_pages: No Pages found with ext" error.theme_config_creation_failed = "Failed to create theme configuration: %s"
_list_pages_msg_2 "_list_pages: Adding file to array:" error.config_parse = "Failed to parse config file: %s"
_list_blogs_msg_1 "_list_blogs: No blog files found." error.invalid_path = "Invalid path: %s"
_list_blogs_msg_2 "_list_blogs: Adding file to array:" error.write_failed = "Failed to write to temporary file: %s"
_blog_cache_msg_1 "_blog_cache: HASH VALUE:" error.move_failed = "Failed to move temporary file to: %s"
_blog_cache_msg_2 "1. _blog_cache:" error.config_load_failed = "Failed to load configuration file: %s"
_blog_cache_msg_3 "2. _blog_cache: current_cache:" error.config_not_found = "No valid configuration file found."
_blog_cache_msg_4 "3. _blog_cache: new_cache_file:" error.create_blog_index_failed = "Failed to create blog index at: %s"
_blog_cache_msg_5 "4. _blog_cache: new_current_cache:" error.create_sample_post_failed = "Failed to create sample blog post at: %s"
_pages_cache_msg_1 "PAGES HASH VALUE:" error.create_sample_page_failed = "Failed to create sample page at: %s"
_pages_cache_msg_2 "1. pages_cache:" error.engine_not_found = "Engine not found or not executable: %s"
_pages_cache_msg_3 "1. _pages_cache: current_cache:" error.unknown_generator = "Unknown generator: %s"
_pages_cache_msg_4 "2. _pages_cache: pages_file:" error.unknown_option = "Unknown option: %s"
_pages_cache_msg_5 "2. _pages_cache: current_cache:" error.directory_not_empty = "Directory '%s' already exists and is not empty."
_last_updated_msg_1 "_last_updated: Setting date and version in footer" error.theme_creation_failed = "Failed to create theme: %s"
_last_updated_msg_1 "_last_updated:" error.config_creation_failed = "Failed to create configuration file: %s"
_f_last_updated_msg_1 "_f_last_updated: Setting date and version in footer of file" error.directory_creation_failed = "Failed to create directory: %s"
_f_last_updated_msg_2 "_f_last_updated:" error.file_creation_failed = "Failed to create file: %s"
_f_last_updated_msg_3 "_f_last_updated: File" error.layout_creation_failed = "Failed to create layout file: %s"
_f_last_updated_msg_3.1 "not found." error.stylesheet_creation_failed = "Failed to create stylesheet: %s"
_pages_msg_1 "_pages: Running function _pages_cache" error.script_creation_failed = "Failed to create script file: %s"
_pages_msg_2 "* You do not have any pages *"
_pages_msg_3 "Generating Pages" # Warning Messages
_pages_msg_4 "_pages: pages_array is not empty" warning.optional_dependency = "Optional tool '%s' is required for %s but not found"
_pages_msg_5 "_pages: Setting Pages template" warning.dependency_version = "%s version %s is below the recommended version %s"
_pages_msg_6 "Unable to find the Pages template:" warning.legacy_config = "Using legacy config file. Consider renaming '%s' to 'site.conf'"
_pages_msg_7 "_pages: Reading Pages template into pages_tpl" warning.git_repo = "Warning: Running in a git repository directory. Make sure this is intended."
_pages_msg_9 "_pages: Loading page_content once -" warning.outdated_dependencies = "Some dependencies are outdated:"
_pages_msg_10 "_pages: Finding page_title"
_pages_msg_11 "_pages:" # Info Messages
_pages_msg_12 "_pages: Removing #title line from page_content" info.legacy_config = "Warning: Using legacy '%s' file. Consider renaming to 'site.conf'"
_pages_msg_13 "_pages: Running engine on" info.legacy_config_used = "Using legacy config file. Consider renaming 'config' to 'site.conf'"
_pages_msg_14 "_pages: Checking for #link, #showimg and #ytvideo in page_content" info.config_help = "Please create 'site.conf' in your project directory."
_pages_msg_15 "_pages: #link is present, run _link: page_content" info.config_template = "You can use 'config.example' as a template."
_pages_msg_16 "_pages: #showimg is present, run _image: page_content" info.git_repo_help = "If you want to generate the site, run from the project root directory."
_pages_msg_17 "_pages: #ytvideo is present, run _youtube: page_content" info.usage = "Usage: %s <command> [options]"
_pages_msg_18 "_pages: Replacing #pagetitle, #tagline and #sitename in pages_tpl" info.engine_usage = "Usage: _run_engine <input>"
_pages_msg_19 "_pages: Replacing BODY with page_content in pages_tpl" info.creating_blog_index = "Creating blog index file..."
_pages_msg_20 "_pages: _last_updated in pages_tpl" info.creating_sample_post = "Creating sample blog post..."
_pages_msg_21 "_pages: Lowercase filnames, always" info.creating_sample_page = "Creating sample page..."
_pages_msg_22 "_pages: Running _cleanup" info.setting_up_project = "Setting up project structure..."
_pages_msg_23 "- Parsing" info.creating_directories = "Creating project directories..."
_pages_msg_24 "- blog_in_index =" info.initializing_blog = "Initializing blog..."
_pages_msg_25 "- Printing blog temp file:" info.initializing_pages = "Initializing pages..."
_pages_msg_26 "Updating index.html with new blog posts" info.initializing_theme = "Initializing theme..."
_pages_msg_27 "- Parsing" info.initializing_config = "Initializing configuration..."
_pages_msg_28 "- blog_in_index =" info.initializing_complete = "Initialization complete!"
_pages_msg_29 "- No new or updated Pages found" info.initializing_aborted = "Initialization aborted."
_blogs_msg_1 "_blogs: Running function _list_blogs" info.use_force_option = "Use --force to overwrite the existing directory."
_blogs_msg_2 "* You do not have any blogs *" info.get_started_instructions = "To get started"
_blogs_msg_3 "Generating Blogs" info.happy_coding = "Happy coding!"
_blogs_msg_4 "_blogs: Running function _blog_cache" info.initializing_project = "Initializing project..."
_blogs_msg_5 "Unable to find theme template for Blogs." info.initializing_blog_cache = "Initializing blog cache..."
_blogs_msg_6 "_blogs: Processing pre-data for" info.initializing_pages_cache = "Initializing pages cache..."
_blogs_msg_7 "_blogs: Looking for DATE: Found"
_blogs_msg_8 "_blogs: Looking for BLOG_TITLE: Found" # Debug Messages
_blogs_msg_9 "* _blogs: DATE metadata missing in" debug.loading_config = "Loading config file: %s"
_blogs_msg_10 "* _blogs: BLOG_TITLE metadata missing in" debug.loaded_config = "=== Loaded Configuration ==="
_blogs_msg_11 "_blogs: Adding data for" debug.config_value = "%s: %s"
_blogs_msg_11.1 "to array to export" debug.config_end = "==========================="
_blogs_msg_12 "_blogs: Processing" debug.raw_config = "=== Raw Config File ==="
_blogs_msg_14 "_blogs: Processing substitutes in" debug.raw_config_end = "======================"
_blogs_msg_15 "_blogs: Running function" debug.blog_cache_update = "Updating blog cache at %s"
_blogs_msg_15_1 "for" debug.blog_cache_bytes = "Blog cache updated with %d bytes"
_blogs_msg_16 "_blogs: Checking for #link, #showimg and #ytvideo in blog_content" debug.blog_cache_loading = "Loading blog index from cache"
_blogs_msg_17 "_blogs: #link is present, run _link: blog_content" debug.blog_cache_stale_new = "Blog cache stale: New or updated blogs detected"
_blogs_msg_18 "_blogs: #showimg is present, run _link: blog_content" debug.blog_cache_stale_missing = "Blog cache stale: Cache file does not exist"
_blogs_msg_19 "_blogs: #ytvideo is present, run _link: blog_content" debug.blog_cache_stale_old = "Blog cache stale: Cache is older than 1 hour"
_blogs_msg_20 "_blogs: Replacing tagline, sitename and pagetitle" debug.blog_cache_fresh = "Blog cache is fresh"
_blogs_msg_21 "_blogs: Creating directory" debug.pages_cache_update = "Updating pages cache at %s"
_blogs_msg_22 "_blogs: Writing blog to disk:" debug.pages_cache_bytes = "Pages cache updated with %d bytes"
_blogs_msg_23 "_blogs: new_updated_blogs=true" debug.pages_cache_loading = "Loading pages index from cache"
_blogs_msg_24 "- No new or updated Blogs found" debug.pages_cache_stale_new = "Pages cache stale: New or updated pages detected"
_blogs_msg_25 "* _blogs: Running _blog_idx_for_index" debug.pages_cache_stale_missing = "Pages cache stale: Cache file does not exist"
_blogs_msg_26 "* _blogs: Running _blog_index" debug.pages_cache_stale_old = "Pages cache stale: Cache is older than 1 hour"
_blog_idx_for_index_msg_1 "- Populating" debug.pages_cache_fresh = "Pages cache is fresh"
_blog_idx_for_index_msg_2 "_blog_idx_for_index: Initiating function"
_blog_idx_for_index_msg_3 "_blog_idx_for_index: BLOG_META_STR_ARRAY:" # Blog Messages
_blog_idx_for_index_msg_4 "_blog_idx_for_index: meta_str from BLOG_META_STR_ARRAY from _blogs" blog.not_found = "No blog files found."
_blog_idx_for_index_msg_5 "_blog_idx_for_index:" blog.generating = "Generating blog"
_blog_idx_for_index_msg_6 "_blog_idx_for_index: Iterate over each component and extract information" blog.no_template = "Unable to find the blog template: %s"
_blog_idx_for_index_msg_7 "_blog_idx_for_index: Running" blog.cache_updated = "Blog cache updated"
_blog_idx_for_index_msg_7.1 "on content to catch QStags in Ingress" blog.cache_loading = "Loading blog cache"
_blog_idx_for_index_msg_8 "_blog_idx_for_index: Writing _blog_idx_for_index to file:" blog.cache_stale = "Blog cache is stale, rebuilding..."
_blog_idx_for_index_msg_9 "_blog_idx_for_index: blog_list_content =" blog.cache_fresh = "Blog cache is fresh"
_blog_index_msg_1 "_blog_index: blog_in_index=" blog.post_updated = "Updated blog post: %s"
_blog_index_msg_2 "_blog_index: new_updated_blogs=" blog.post_skipped = "Skipped (no changes): %s"
_blog_index_msg_3 "_blog_index: Running function _blog_index" blog.post_error = "Error processing blog post: %s"
_blog_index_msg_4 "_blog_index: blog_in_index ="
_blog_index_msg_5 "- Generating Page:" # Blog Generation Messages
_blog_index_msg_6 "_blog_index: Replacing sitename and tagline" blog.hello_world_title = "Hello, World!"
_blog_index_msg_7 "_blog_index: Replacing BODY with content of" blog.published_on = "Published on"
_blog_index_msg_8 "_blog_index: Writing" blog.welcome_message = "Welcome to your new blog! This is a sample blog post."
_blog_index_msg_9 "_blog_index: Content length of blog_index_content:" blog.getting_started = "Getting Started"
_add_blog_list_to_index_msg_1 "_add_blog_list_to_index: Inserting blog list to index.html" blog.edit_this_post = "You can edit this post at %s"
_sitemap_msg_1 "Generating Sitemap" blog.features = "Features"
_sitemap_msg_2 "Sitemap generated at" blog.feature_markdown = "Markdown support"
_link_msg_1 "_link: URL_MAIN(line):" blog.feature_easy_customize = "Easy to customize"
_link_msg_2 "_link_ URL:" blog.feature_fast_lightweight = "Fast and lightweight"
_link_msg_3 "_link: Text:" blog.next_steps = "Next Steps"
_image_msg_1 "_image: Processing line:" blog.step_edit_post = "Edit this post"
_youtube_msg_1 "_youtube: Processing line:" blog.step_add_posts = "Add more posts"
_cleanup_msg_1 "_cleanup: Cleaning up tags in content" blog.step_customize_theme = "Customize your theme"
_html_msg_1 "_html: Converting QStags in content" blog.step_publish_site = "Publish your site"
_zhtml_msg_1 "_zhtml: Converting QStags in content" blog.happy_blogging = "Happy blogging!"
) blog.latest_posts = "Latest Posts"
blog.sample_post = "Blog Post"
blog.categories = "Categories"
blog.sample_category = "Category"
blog.archives = "Archives"
blog.tags = "Tags"
blog.about = "About"
blog.about_text = "This is a sample blog index page. You can edit it at %s"
# Page Generation Messages
page.about_me_title = "About Me"
page.welcome_title = "Welcome to My Site"
page.welcome_message = "This is a sample about page. You can edit it at %s"
page.my_story_title = "My Story"
page.my_story_content = "I'm a passionate developer who loves creating amazing websites with qsgen2!"
page.skills_title = "Skills"
page.skill_webdev = "Web Development"
page.skill_design = "Design"
page.skill_opensource = "Open Source"
page.contact_title = "Contact"
page.contact_content = "You can reach me at: email@example.com"
page.about_site_title = "About This Site"
page.about_site_content = "This site was built with [qsgen2](https://github.com/kekePower/qsgen2)."
# Success Messages
success.config_loaded = "Configuration loaded successfully"
success.build_complete = "Build completed successfully"
success.blog_index_created = "Created blog index at: %s"
success.sample_post_created = "Created sample blog post at: %s"
success.sample_page_created = "Created sample page at: %s"
success.project_initialized = "Project initialized successfully!"
success.theme_initialized = "Theme initialized successfully!"
success.config_initialized = "Configuration file created successfully!"
# System Messages
system.created_by = "- Created by kekePower - 2018-%s"
system.see_help = "- See '%s help' for more information."
# List Messages
list.pages_not_found = "_list_pages: No Pages found with ext %s"
list.pages_adding = "_list_pages: Adding file to array: %s"
list.blogs_not_found = "_list_blogs: No blog files found."
list.blogs_adding = "_list_blogs: Adding file to array: %s"
# Blog Cache Messages
blog_cache.hash = "_blog_cache: HASH VALUE:"
blog_cache.current = "1. _blog_cache:"
blog_cache.cache_file = "2. _blog_cache: current_cache:"
blog_cache.new_cache = "3. _blog_cache: new_cache_file:"
blog_cache.new_current = "4. _blog_cache: new_current_cache:"
# Pages Cache Messages
page_cache.hash = "PAGES HASH VALUE:"
page_cache.current = "1. pages_cache:"
page_cache.cache_file = "2. _pages_cache: current_cache:"
page_cache.pages_file = "2. _pages_cache: pages_file:"
# Navigation
nav.home = "Home"
nav.blog = "Blog"
nav.about = "About"
# Footer
footer.all_rights_reserved = "All rights reserved."
# Configuration
config.site_config_title = "Site Configuration"
config.theme_config_title = "Theme Configuration"
config.site_name_default = "My Awesome Site"
config.site_tagline_default = "A static site generated with qsgen2"
config.site_description_default = "This is my awesome static site"
config.your_name = "Your Name"
config.theme_description = "A custom theme for qsgen2"
config.theme_files_title = "Theme files (relative to theme directory)"
# CSS and JavaScript
css.main_styles = "Main Styles"
js.main_javascript = "Main JavaScript"
js.console_message = "Hello from qsgen2!"
js.add_custom_javascript = "Add any custom JavaScript here"
js.your_code_here = "Your code here"
# Last Updated Messages
last_updated.setting = "_last_updated: Setting date and version in footer"
last_updated.file_not_found = "_f_last_updated: File %s not found."
# Pages Messages
pages.generating = "Generating Pages"
pages.none = "* You do not have any pages *"
pages.no_template = "Unable to find the Pages template: %s"
# Pandoc Messages
pandoc.install = "Please install Pandoc."
pandoc.download = "https://github.com/jgm/pandoc/releases"
# Generator Messages
generator.not_found = "No valid generator found. Are you sure you've selected the correct generator in 'config'?"
# Build Messages
build.forced = "- Forced Update: Generating Everything"
build.using_engine = "Using the %s -engine for files:"

View File

@ -1,117 +1,207 @@
qsgenlang=( # Generador Rápido de Sitios 2 - Archivo de idioma español
_qsgen2_msg_2 "- Actualización forzada: Generando todo" # Este archivo contiene todas las cadenas visibles para el usuario de la aplicación
_qsgen2_msg_3 "* %SCRIPT_NAME% no puede analizar este sitio. Saliendo. *"
_qsgen2_msg_4 "Por favor, instala Pandoc." # Mensajes de error
_qsgen2_msg_5 "No se encontró un generador válido. ¿Estás seguro de que has seleccionado el generador correcto en 'config'?" error.missing_dependencies = "Faltan dependencias requeridas: %s"
_qsgen2_msg_6 "Usando el" error.config_validation_failed = "Error en la validación de la configuración. Por favor, verifique sus archivos de configuración."
_qsgen2_msg_6.1 "-motor para archivos:" error.config_missing_key = "Falta la configuración requerida: %s"
_qsgen2_msg_7 "- Creado por kekePower - 2018-" error.invalid_url = "site_url debe comenzar con http:// o https://"
_qsgen2_msg_8 "- Ver" error.directory_not_found = "El directorio no existe: %s"
_qsgen2_msg_8.1 "para más información." error.theme_not_found = "Directorio del tema no encontrado: %s"
_qsgen2_msg_9 "Contenidos del archivo Config:" error.theme_config_not_found = "Configuración del tema no encontrada: %s"
_list_pages_msg_1 "_list_pages: No se encontraron páginas con ext" error.theme_config_creation_failed = "Error al crear la configuración del tema: %s"
_list_pages_msg_2 "_list_pages: Añadiendo archivo al array:" error.config_parse = "Error al analizar el archivo de configuración: %s"
_list_blogs_msg_1 "_list_blogs: No se encontraron archivos de blog." error.invalid_path = "Ruta no válida: %s"
_list_blogs_msg_2 "_list_blogs: Añadiendo archivo al array:" error.write_failed = "Error al escribir en el archivo temporal: %s"
_blog_cache_msg_1 "_blog_cache: VALOR HASH:" error.move_failed = "Error al mover el archivo temporal a: %s"
_blog_cache_msg_2 "1. _blog_cache:" error.config_load_failed = "Error al cargar el archivo de configuración: %s"
_blog_cache_msg_3 "2. _blog_cache: cache_actual:" error.config_not_found = "No se encontró ningún archivo de configuración válido."
_blog_cache_msg_4 "3. _blog_cache: nuevo_archivo_cache:" error.create_blog_index_failed = "Error al crear el índice del blog en: %s"
_blog_cache_msg_5 "4. _blog_cache: nueva_cache_actual:" error.create_sample_post_failed = "Error al crear la entrada de blog de ejemplo en: %s"
_pages_cache_msg_1 "VALOR HASH PÁGINAS:" error.create_sample_page_failed = "Error al crear la página de ejemplo en: %s"
_pages_cache_msg_2 "1. pages_cache:" error.engine_not_found = "Motor no encontrado o no ejecutable: %s"
_pages_cache_msg_3 "1. _pages_cache: cache_actual:" error.unknown_generator = "Generador desconocido: %s"
_pages_cache_msg_4 "2. _pages_cache: archivo_páginas:" error.unknown_option = "Opción desconocida: %s"
_pages_cache_msg_5 "2. _pages_cache: cache_actual:" error.directory_not_empty = "El directorio '%s' ya existe y no está vacío."
_last_updated_msg_1 "_last_updated: Estableciendo fecha y versión en el pie de página" error.theme_creation_failed = "Error al crear el tema: %s"
_last_updated_msg_1 "_last_updated:" error.config_creation_failed = "Error al crear el archivo de configuración: %s"
_f_last_updated_msg_1 "_f_last_updated: Estableciendo fecha y versión en el pie de página del archivo" error.directory_creation_failed = "Error al crear el directorio: %s"
_f_last_updated_msg_2 "_f_last_updated:" error.file_creation_failed = "Error al crear el archivo: %s"
_f_last_updated_msg_3 "_f_last_updated: Archivo" error.layout_creation_failed = "Error al crear el archivo de diseño: %s"
_f_last_updated_msg_3.1 "no encontrado." error.stylesheet_creation_failed = "Error al crear la hoja de estilos: %s"
_pages_msg_1 "_pages: Ejecutando función _pages_cache" error.script_creation_failed = "Error al crear el archivo de script: %s"
_pages_msg_2 "* No tienes ninguna página *"
_pages_msg_3 "Generando Páginas" # Mensajes de advertencia
_pages_msg_4 "_pages: array_de_páginas no está vacío" warning.optional_dependency = "La herramienta opcional '%s' es necesaria para %s pero no se encontró"
_pages_msg_5 "_pages: Estableciendo plantilla de Páginas" warning.dependency_version = "La versión %s de %s es inferior a la versión recomendada %s"
_pages_msg_6 "No se puede encontrar la plantilla de Páginas:" warning.legacy_config = "Usando archivo de configuración heredado. Considere renombrar '%s' a 'site.conf'"
_pages_msg_7 "_pages: Leyendo plantilla de Páginas en pages_tpl" warning.git_repo = "Advertencia: Ejecutando en un directorio de repositorio git. Asegúrese de que es intencionado."
_pages_msg_9 "_pages: Cargando contenido de la página una vez -" warning.outdated_dependencies = "Algunas dependencias están desactualizadas:"
_pages_msg_10 "_pages: Buscando título de página"
_pages_msg_11 "_pages:" # Mensajes informativos
_pages_msg_12 "_pages: Eliminando línea #título del contenido de la página" info.legacy_config = "Advertencia: Usando archivo heredado '%s'. Considere renombrarlo a 'site.conf'"
_pages_msg_13 "_pages: Ejecutando motor en" info.legacy_config_used = "Usando archivo de configuración heredado. Considere renombrar 'config' a 'site.conf'"
_pages_msg_14 "_pages: Verificando #link, #showimg y #ytvideo en contenido de la página" info.config_help = "Por favor, cree un archivo 'site.conf' en el directorio de su proyecto."
_pages_msg_15 "_pages: #link presente, ejecutar _link: contenido de la página" info.config_template = "Puede usar 'config.example' como plantilla."
_pages_msg_16 "_pages: #showimg presente, ejecutar _image: contenido de la página" info.git_repo_help = "Si desea generar el sitio, ejecútelo desde el directorio raíz del proyecto."
_pages_msg_17 "_pages: #ytvideo presente, ejecutar _youtube: contenido de la página" info.usage = "Uso: %s <comando> [opciones]"
_pages_msg_18 "_pages: Reemplazando #tituloDePagina, #tagline y #nombreDeSitio en pages_tpl" info.engine_usage = "Uso: _run_engine <entrada>"
_pages_msg_19 "_pages: Reemplazando CUERPO con contenido de la página en pages_tpl" info.creating_blog_index = "Creando archivo de índice del blog..."
_pages_msg_20 "_pages: _last_updated en pages_tpl" info.creating_sample_post = "Creando entrada de blog de ejemplo..."
_pages_msg_21 "_pages: Nombres de archivo en minúsculas, siempre" info.creating_sample_page = "Creando página de ejemplo..."
_pages_msg_22 "_pages: Ejecutando _cleanup" info.setting_up_project = "Configurando la estructura del proyecto..."
_pages_msg_23 "- Analizando" info.creating_directories = "Creando directorios del proyecto..."
_pages_msg_24 "- blog_en_indice =" info.initializing_blog = "Inicializando blog..."
_pages_msg_25 "- Imprimiendo archivo temporal del blog:" info.initializing_pages = "Inicializando páginas..."
_pages_msg_26 "Actualizando index.html con nuevas publicaciones de blog" info.initializing_theme = "Inicializando tema..."
_pages_msg_27 "- Analizando" info.initializing_config = "Inicializando configuración..."
_pages_msg_28 "- blog_en_indice =" info.initializing_complete = "¡Inicialización completada!"
_pages_msg_29 "- No se encontraron nuevas o actualizadas Páginas" info.initializing_aborted = "Inicialización cancelada."
_blogs_msg_1 "_blogs: Ejecutando función _list_blogs" info.use_force_option = "Use --force para sobrescribir el directorio existente."
_blogs_msg_2 "* No tienes ningún blog *" info.get_started_instructions = "Para comenzar"
_blogs_msg_3 "Generando Blogs" info.happy_coding = "¡Feliz programación!"
_blogs_msg_4 "_blogs: Ejecutando función _blog_cache" info.initializing_project = "Inicializando proyecto..."
_blogs_msg_5 "No se puede encontrar la plantilla de tema para Blogs." info.initializing_blog_cache = "Inicializando caché del blog..."
_blogs_msg_6 "_blogs: Procesando datos previos para" info.initializing_pages_cache = "Inicializando caché de páginas..."
_blogs_msg_7 "_blogs: Buscando FECHA: Encontrado"
_blogs_msg_8 "_blogs: Buscando TÍTULO DEL BLOG: Encontrado" # Mensajes de depuración
_blogs_msg_9 "* _blogs: Falta metadatos de FECHA en" debug.loading_config = "Cargando archivo de configuración: %s"
_blogs_msg_10 "* _blogs: Falta metadatos de TÍTULO DEL BLOG en" debug.loaded_config = "=== Configuración Cargada ==="
_blogs_msg_11 "_blogs: Añadiendo datos para" debug.config_value = "%s: %s"
_blogs_msg_11.1 "al array para exportar" debug.config_end = "============================"
_blogs_msg_12 "_blogs: Procesando" debug.raw_config = "=== Archivo de Configuración en Bruto ==="
_blogs_msg_14 "_blogs: Procesando sustitutos en" debug.raw_config_end = "=================================="
_blogs_msg_15 "_blogs: Ejecutando función" debug.blog_cache_update = "Actualizando caché del blog en %s"
_blogs_msg_15.1 "para" debug.blog_cache_bytes = "Caché del blog actualizado con %d bytes"
_blogs_msg_16 "_blogs: Verificando #link, #showimg y #ytvideo en contenido del blog" debug.blog_cache_loading = "Cargando índice del blog desde la caché"
_blogs_msg_17 "_blogs: #link presente, ejecutar _link: contenido del blog" debug.blog_cache_stale_new = "Caché del blog desactualizado: Se detectaron blogs nuevos o actualizados"
_blogs_msg_18 "_blogs: #showimg presente, ejecutar _link: contenido del blog" debug.blog_cache_stale_missing = "Caché del blog desactualizado: El archivo de caché no existe"
_blogs_msg_19 "_blogs: #ytvideo presente, ejecutar _link: contenido del blog" debug.blog_cache_stale_old = "Caché del blog desactualizado: La caché tiene más de 1 hora"
_blogs_msg_20 "_blogs: Reemplazando tagline, nombreDeSitio y tituloDePagina" debug.blog_cache_fresh = "La caché del blog está actualizada"
_blogs_msg_21 "_blogs: Creando directorio" debug.pages_cache_update = "Actualizando caché de páginas en %s"
_blogs_msg_22 "_blogs: Escribiendo blog en disco:" debug.pages_cache_bytes = "Caché de páginas actualizado con %d bytes"
_blogs_msg_23 "_blogs: blogs_actualizados=true" debug.pages_cache_loading = "Cargando índice de páginas desde la caché"
_blogs_msg_24 "- No se encontraron nuevos o actualizados Blogs" debug.pages_cache_stale_new = "Caché de páginas desactualizado: Se detectaron páginas nuevas o actualizadas"
_blogs_msg_25 "* _blogs: Ejecutando _blog_idx_for_index" debug.pages_cache_stale_missing = "Caché de páginas desactualizado: El archivo de caché no existe"
_blogs_msg_26 "* _blogs: Ejecutando _blog_index" debug.pages_cache_stale_old = "Caché de páginas desactualizado: La caché tiene más de 1 hora"
_blog_idx_for_index_msg_1 "- Llenando" debug.pages_cache_fresh = "La caché de páginas está actualizada"
_blog_idx_for_index_msg_2 "_blog_idx_for_index: Iniciando función"
_blog_idx_for_index_msg_3 "_blog_idx_for_index: BLOG_META_STR_ARRAY:" # Mensajes del Blog
_blog_idx_for_index_msg_4 "_blog_idx_for_index: meta_str de BLOG_META_STR_ARRAY de _blogs" blog.not_found = "No se encontraron archivos de blog."
_blog_idx_for_index_msg_5 "_blog_idx_for_index:" blog.generating = "Generando blog"
_blog_idx_for_index_msg_6 "_blog_idx_for_index: Iterar sobre cada componente y extraer información" blog.no_template = "No se pudo encontrar la plantilla del blog: %s"
_blog_idx_for_index_msg_7 "_blog_idx_for_index: Ejecutando" blog.cache_updated = "Caché del blog actualizado"
_blog_idx_for_index_msg_7.1 "en contenido para capturar QStags en Ingress" blog.cache_loading = "Cargando caché del blog"
_blog_idx_for_index_msg_8 "_blog_idx_for_index: Escribiendo _blog_idx_for_index en archivo:" blog.cache_stale = "La caché del blog está desactualizada, reconstruyendo..."
_blog_idx_for_index_msg_9 "_blog_idx_for_index: contenido_de_lista_de_blogs =" blog.cache_fresh = "La caché del blog está actualizada"
_blog_index_msg_1 "_blog_index: blog_en_indice=" blog.post_updated = "Entrada de blog actualizada: %s"
_blog_index_msg_2 "_blog_index: blogs_actualizados=" blog.post_skipped = "Omitido (sin cambios): %s"
_blog_index_msg_3 "_blog_index: Ejecutando función _blog_index" blog.post_error = "Error al procesar la entrada del blog: %s"
_blog_index_msg_4 "_blog_index: blog_en_indice ="
_blog_index_msg_5 "- Generando Página:" # Mensajes de Generación del Blog
_blog_index_msg_6 "_blog_index: Reemplazando nombreDeSitio y tagline" blog.hello_world_title = "¡Hola, Mundo!"
_blog_index_msg_7 "_blog_index: Reemplazando CUERPO con contenido de" blog.published_on = "Publicado el"
_blog_index_msg_8 "_blog_index: Escribiendo" blog.welcome_message = "¡Bienvenido a tu nuevo blog! Esta es una entrada de blog de ejemplo."
_blog_index_msg_9 "_blog_index: Longitud de contenido de blog_index_content:" blog.getting_started = "Comenzando"
_add_blog_list_to_index_msg_1 "_add_blog_list_to_index: Insertando lista de blogs en index.html" blog.edit_this_post = "Puedes editar esta entrada en %s"
_sitemap_msg_1 "Generando Mapa del Sitio" blog.features = "Características"
_sitemap_msg_2 "Mapa del sitio generado en" blog.feature_markdown = "Soporte para Markdown"
_link_msg_1 "_link: LÍNEA URL_PRINCIPAL:" blog.feature_easy_customize = "Fácil de personalizar"
_link_msg_2 "_link_ URL:" blog.feature_fast_lightweight = "Rápido y ligero"
_link_msg_3 "_link: Texto:" blog.next_steps = "Próximos pasos"
_image_msg_1 "_image: Procesando línea:" blog.step_edit_post = "Editar esta entrada"
_youtube_msg_1 "_youtube: Procesando línea:" blog.step_add_posts = "Añadir más entradas"
_cleanup_msg_1 "_cleanup: Limpiando etiquetas en contenido" blog.step_customize_theme = "Personalizar tu tema"
_html_msg_1 "_html: Convirtiendo QStags en contenido" blog.step_publish_site = "Publicar tu sitio"
_zhtml_msg_1 "_zhtml: Convirtiendo QStags en contenido" blog.happy_blogging = "¡Feliz blogueo!"
) blog.latest_posts = "Últimas entradas"
blog.sample_post = "Entrada de blog"
blog.categories = "Categorías"
blog.sample_category = "Categoría"
blog.archives = "Archivos"
blog.tags = "Etiquetas"
blog.about = "Acerca de"
blog.about_text = "Esta es una página de índice de blog de ejemplo. Puedes editarla en %s"
# Mensajes de Generación de Páginas
page.about_me_title = "Sobre Mí"
page.welcome_title = "Bienvenido a Mi Sitio"
page.welcome_message = "Esta es una página de ejemplo. Puedes editarla en %s"
page.my_story_title = "Mi Historia"
page.my_story_content = "¡Soy un desarrollador apasionado que adora crear sitios web increíbles con qsgen2!"
page.skills_title = "Habilidades"
page.skill_webdev = "Desarrollo Web"
page.skill_design = "Diseño"
page.skill_opensource = "Código Abierto"
page.contact_title = "Contacto"
page.contact_content = "Puedes contactarme en: email@example.com"
page.about_site_title = "Acerca de Este Sitio"
page.about_site_content = "Este sitio fue construido con [qsgen2](https://github.com/kekePower/qsgen2)."
# Mensajes de Éxito
success.config_loaded = "Configuración cargada exitosamente"
success.build_complete = "Construcción completada exitosamente"
success.blog_index_created = "Índice del blog creado en: %s"
success.sample_post_created = "Entrada de blog de ejemplo creada en: %s"
success.sample_page_created = "Página de ejemplo creada en: %s"
success.project_initialized = "¡Proyecto inicializado exitosamente!"
success.theme_initialized = "¡Tema inicializado exitosamente!"
success.config_initialized = "¡Archivo de configuración creado exitosamente!"
# Mensajes del Sistema
system.created_by = "- Creado por kekePower - 2018-%s"
system.see_help = "- Ver '%s help' para más información."
# Mensajes de Lista
list.pages_not_found = "_list_pages: No se encontraron páginas con la extensión %s"
list.pages_adding = "_list_pages: Añadiendo archivo al array: %s"
list.blogs_not_found = "_list_blogs: No se encontraron archivos de blog."
list.blogs_adding = "_list_blogs: Añadiendo archivo al array: %s"
# Navegación
nav.home = "Inicio"
nav.blog = "Blog"
nav.about = "Acerca de"
# Pie de Página
footer.all_rights_reserved = "Todos los derechos reservados."
# Configuración
config.site_config_title = "Configuración del Sitio"
config.theme_config_title = "Configuración del Tema"
config.site_name_default = "Mi Sitio Increíble"
config.site_tagline_default = "Un sitio estático generado con qsgen2"
config.site_description_default = "Este es mi increíble sitio estático"
config.your_name = "Tu Nombre"
config.theme_description = "Un tema personalizado para qsgen2"
config.theme_files_title = "Archivos del tema (relativo al directorio del tema)"
# CSS y JavaScript
css.main_styles = "Estilos Principales"
js.main_javascript = "JavaScript Principal"
js.console_message = "¡Hola desde qsgen2!"
js.add_custom_javascript = "Añade cualquier JavaScript personalizado aquí"
js.your_code_here = "Tu código aquí"
# Mensajes de Última Actualización
last_updated.setting = "_last_updated: Estableciendo fecha y versión en el pie de página"
last_updated.file_not_found = "_f_last_updated: Archivo %s no encontrado."
# Mensajes de Páginas
pages.generating = "Generando Páginas"
pages.none = "* No tienes páginas *"
pages.no_template = "No se pudo encontrar la plantilla de páginas: %s"
# Mensajes de Pandoc
pandoc.install = "Por favor, instala Pandoc."
pandoc.download = "https://github.com/jgm/pandoc/releases"
# Mensajes del Generador
generator.not_found = "No se encontró un generador válido. ¿Estás seguro de que has seleccionado el generador correcto en 'config'?"
generator.using = "Usando generador: %s"
generator.execution_failed = "Error en la ejecución del generador: %s"
generator.execution_success = "Generador ejecutado exitosamente: %s"
# Mensajes de Construcción
build.forced = "- Actualización forzada: Generando todo"
build.using_engine = "Usando el motor %s para archivos:"

View File

@ -1,117 +1,209 @@
qsgenlang=( # Générateur de Site Rapide 2 - Fichier de langue française
_qsgen2_msg_2 "- Mise à jour forcée : Génération de tout" # Ce fichier contient toutes les chaînes visibles par l'utilisateur pour l'application
_qsgen2_msg_3 "* %SCRIPT_NAME% ne peut pas analyser ce site. Sortie. *"
_qsgen2_msg_4 "Veuillez installer Pandoc." # Messages d'erreur
_qsgen2_msg_5 "Aucun générateur valide trouvé. Êtes-vous sûr d'avoir sélectionné le bon générateur dans 'config' ?" error.missing_dependencies = "Dépendances requises manquantes : %s"
_qsgen2_msg_6 "Utilisation du" error.config_validation_failed = "Échec de la validation de la configuration. Veuillez vérifier vos fichiers de configuration."
_qsgen2_msg_6.1 "-moteur pour les fichiers :" error.config_missing_key = "Configuration requise manquante : %s"
_qsgen2_msg_7 "- Créé par kekePower - 2018-" error.invalid_url = "site_url doit commencer par http:// ou https://"
_qsgen2_msg_8 "- Voir" error.directory_not_found = "Le répertoire n'existe pas : %s"
_qsgen2_msg_8.1 "pour plus d'informations." error.theme_not_found = "Répertoire du thème introuvable : %s"
_qsgen2_msg_9 "Contenu du fichier Config :" error.theme_config_not_found = "Configuration du thème introuvable : %s"
_list_pages_msg_1 "_list_pages : Aucune page trouvée avec l'extension" error.theme_config_creation_failed = "Échec de la création de la configuration du thème : %s"
_list_pages_msg_2 "_list_pages : Ajout du fichier au tableau :" error.config_parse = "Échec de l'analyse du fichier de configuration : %s"
_list_blogs_msg_1 "_list_blogs : Aucun fichier de blog trouvé." error.invalid_path = "Chemin invalide : %s"
_list_blogs_msg_2 "_list_blogs : Ajout du fichier au tableau :" error.write_failed = "Échec de l'écriture dans le fichier temporaire : %s"
_blog_cache_msg_1 "_blog_cache : VALEUR DU HASH :" error.move_failed = "Échec du déplacement du fichier temporaire vers : %s"
_blog_cache_msg_2 "1. _blog_cache :" error.config_load_failed = "Échec du chargement du fichier de configuration : %s"
_blog_cache_msg_3 "2. _blog_cache : cache_actuel :" error.config_not_found = "Aucun fichier de configuration valide trouvé."
_blog_cache_msg_4 "3. _blog_cache : nouveau_fichier_cache :" error.create_blog_index_failed = "Échec de la création de l'index du blog à : %s"
_blog_cache_msg_5 "4. _blog_cache : nouveau_cache_actuel :" error.create_sample_post_failed = "Échec de la création d'un exemple d'article de blog à : %s"
_pages_cache_msg_1 "VALEUR DU HASH DES PAGES :" error.create_sample_page_failed = "Échec de la création d'une page exemple à : %s"
_pages_cache_msg_2 "1. cache_des_pages :" error.engine_not_found = "Moteur introuvable ou non exécutable : %s"
_pages_cache_msg_3 "1. _cache_des_pages : cache_actuel :" error.unknown_generator = "Générateur inconnu : %s"
_pages_cache_msg_4 "2. _cache_des_pages : fichier_des_pages :" error.unknown_option = "Option inconnue : %s"
_pages_cache_msg_5 "2. _cache_des_pages : cache_actuel :" error.directory_not_empty = "Le répertoire '%s' existe déjà et n'est pas vide."
_last_updated_msg_1 "_last_updated : Définition de la date et de la version dans le pied de page" error.theme_creation_failed = "Échec de la création du thème : %s"
_last_updated_msg_1 "_last_updated :" error.config_creation_failed = "Échec de la création du fichier de configuration : %s"
_f_last_updated_msg_1 "_f_last_updated : Définition de la date et de la version dans le pied de page du fichier" error.directory_creation_failed = "Échec de la création du répertoire : %s"
_f_last_updated_msg_2 "_f_last_updated :" error.file_creation_failed = "Échec de la création du fichier : %s"
_f_last_updated_msg_3 "_f_last_updated : Fichier" error.layout_creation_failed = "Échec de la création du fichier de mise en page : %s"
_f_last_updated_msg_3.1 "non trouvé." error.stylesheet_creation_failed = "Échec de la création de la feuille de style : %s"
_pages_msg_1 "_pages : Exécution de la fonction _cache_des_pages" error.script_creation_failed = "Échec de la création du fichier de script : %s"
_pages_msg_2 "* Vous n'avez aucune page *"
_pages_msg_3 "Génération des Pages" # Messages d'avertissement
_pages_msg_4 "_pages : le tableau des pages n'est pas vide" warning.optional_dependency = "L'outil optionnel '%s' est requis pour %s mais n'a pas été trouvé"
_pages_msg_5 "_pages : Définition du modèle des Pages" warning.dependency_version = "La version %s de %s est inférieure à la version recommandée %s"
_pages_msg_6 "Impossible de trouver le modèle des Pages :" warning.legacy_config = "Utilisation d'un fichier de configuration hérité. Envisagez de renommer '%s' en 'site.conf'"
_pages_msg_7 "_pages : Lecture du modèle des Pages dans pages_tpl" warning.git_repo = "Attention : Exécution dans un répertoire de dépôt git. Assurez-vous que c'est intentionnel."
_pages_msg_9 "_pages : Chargement du contenu de la page une fois -" warning.outdated_dependencies = "Certaines dépendances ne sont pas à jour :"
_pages_msg_10 "_pages : Recherche du titre de la page"
_pages_msg_11 "_pages :" # Messages d'information
_pages_msg_12 "_pages : Suppression de la ligne #titre du contenu de la page" info.legacy_config = "Attention : Utilisation du fichier hérité '%s'. Envisagez de le renommer en 'site.conf'"
_pages_msg_13 "_pages : Exécution du moteur sur" info.legacy_config_used = "Utilisation du fichier de configuration hérité. Envisagez de renommer 'config' en 'site.conf'"
_pages_msg_14 "_pages : Vérification de #lien, #montrerimg et #videoyt dans le contenu de la page" info.config_help = "Veuillez créer un fichier 'site.conf' dans votre répertoire de projet."
_pages_msg_15 "_pages : #lien présent, exécution de _lien : contenu de la page" info.config_template = "Vous pouvez utiliser 'config.example' comme modèle."
_pages_msg_16 "_pages : #montrerimg présent, exécution de _image : contenu de la page" info.git_repo_help = "Si vous souhaitez générer le site, exécutez depuis le répertoire racine du projet."
_pages_msg_17 "_pages : #videoyt présent, exécution de _youtube : contenu de la page" info.usage = "Utilisation : %s <commande> [options]"
_pages_msg_18 "_pages : Remplacement de #titredelapage, #slogan et #nomdusite dans pages_tpl" info.engine_usage = "Utilisation : _run_engine <entrée>"
_pages_msg_19 "_pages : Remplacement du CORPS par le contenu de la page dans pages_tpl" info.creating_blog_index = "Création du fichier d'index du blog..."
_pages_msg_20 "_pages : _dernière_mise_à_jour dans pages_tpl" info.creating_sample_post = "Création d'un exemple d'article de blog..."
_pages_msg_21 "_pages : Noms de fichiers en minuscules, toujours" info.creating_sample_page = "Création d'une page exemple..."
_pages_msg_22 "_pages : Exécution de _nettoyage" info.setting_up_project = "Configuration de la structure du projet..."
_pages_msg_23 "- Analyse" info.creating_directories = "Création des répertoires du projet..."
_pages_msg_24 "- blog_dans_index =" info.initializing_blog = "Initialisation du blog..."
_pages_msg_25 "- Impression du fichier temporaire du blog :" info.initializing_pages = "Initialisation des pages..."
_pages_msg_26 "Mise à jour de index.html avec les nouveaux articles de blog" info.initializing_theme = "Initialisation du thème..."
_pages_msg_27 "- Analyse" # Messages de débogage
_pages_msg_28 "- blog_dans_index =" debug.loading_config = "Chargement du fichier de configuration : %s"
_pages_msg_29 "- Aucune nouvelle page ou mise à jour trouvée" debug.loaded_config = "=== Configuration Chargée ==="
_blogs_msg_1 "_blogs : Exécution de la fonction _list_blogs" debug.config_value = "%s : %s"
_blogs_msg_2 "* Vous n'avez aucun blog *" debug.config_end = "=========================="
_blogs_msg_3 "Génération des Blogs" debug.raw_config = "=== Fichier de Configuration Brut ==="
_blogs_msg_4 "_blogs : Exécution de la fonction _cache_des_blogs" debug.raw_config_end = "================================"
_blogs_msg_5 "Impossible de trouver le modèle de thème pour les Blogs." debug.blog_cache_update = "Mise à jour du cache du blog à %s"
_blogs_msg_6 "_blogs : Traitement des données préliminaires pour" debug.blog_cache_bytes = "Cache du blog mis à jour avec %d octets"
_blogs_msg_7 "_blogs : Recherche de DATE : Trouvé" debug.blog_cache_loading = "Chargement de l'index du blog depuis le cache"
_blogs_msg_8 "_blogs : Recherche de TITRE_DU_BLOG : Trouvé" debug.blog_cache_stale_new = "Cache du blog obsolète : Nouveaux blogs ou mises à jour détectés"
_blogs_msg_9 "* _blogs : Donnée de DATE manquante dans" debug.blog_cache_stale_deleted = "Cache du blog obsolète : Blogs supprimés détectés"
_blogs_msg_10 "* _blogs : TITRE_DU_BLOG manquant dans" debug.blog_cache_fresh = "Le cache du blog est à jour, reconstruction ignorée"
_blogs_msg_11 "_blogs : Ajout des données pour" debug.blog_cache_rebuilding = "Reconstruction du cache du blog..."
_blogs_msg_11.1 "au tableau pour l'export" debug.blog_cache_rebuilt = "Cache du blog reconstruit avec %d entrées"
_blogs_msg_12 "_blogs : Traitement" debug.pages_cache_update = "Mise à jour du cache des pages à %s"
_blogs_msg_14 "_blogs : Traitement des substituts dans" debug.pages_cache_bytes = "Cache des pages mis à jour avec %d octets"
_blogs_msg_15 "_blogs : Exécution de la fonction" debug.pages_cache_loading = "Chargement de l'index des pages depuis le cache"
_blogs_msg_15.1 "pour" debug.pages_cache_stale_new = "Cache des pages obsolète : Nouvelles pages ou mises à jour détectées"
_blogs_msg_16 "_blogs : Vérification de #lien, #montrerimg et #videoyt dans le contenu du blog" debug.pages_cache_stale_deleted = "Cache des pages obsolète : Pages supprimées détectées"
_blogs_msg_17 "_blogs : #lien présent, exécution de _lien : contenu du blog" debug.pages_cache_fresh = "Le cache des pages est à jour, reconstruction ignorée"
_blogs_msg_18 "_blogs : #montrerimg présent, exécution de _lien : contenu du blog" debug.pages_cache_rebuilding = "Reconstruction du cache des pages..."
_blogs_msg_19 "_blogs : #videoyt présent, exécution de _lien : contenu du blog" debug.pages_cache_rebuilt = "Cache des pages reconstruit avec %d entrées"
_blogs_msg_20 "_blogs : Remplacement de slogan, nomdusite et titredelapage" debug.cache_hit = "Cache trouvé pour %s"
_blogs_msg_21 "_blogs : Création du répertoire" debug.cache_miss = "Cache manquant pour %s"
_blogs_msg_22 "_blogs : Écriture du blog sur le disque :" debug.cache_updated = "Cache mis à jour pour %s"
_blogs_msg_23 "_blogs : nouveaux_blogs_mis_à_jour=true" debug.cache_skipped = "Mise à jour du cache ignorée pour %s (aucun changement détecté)"
_blogs_msg_24 "- Aucun nouveau blog ou mise à jour trouvée" blog.cache_loading = "Chargement de l'index du blog depuis le cache"
_blogs_msg_25 "* _blogs : Exécution de _index_des_blogs_pour_index" blog.cache_stale = "Cache du blog obsolète, reconstruction..."
_blogs_msg_26 "* _blogs : Exécution de _index_des_blogs" blog.cache_fresh = "Le cache du blog est à jour"
_blog_idx_for_index_msg_1 "- Peuplement" blog.post_updated = "Article de blog mis à jour : %s"
_blog_idx_for_index_msg_2 "_index_des_blogs_pour_index : Initiation de la fonction" blog.post_skipped = "Ignoré (aucun changement) : %s"
_blog_idx_for_index_msg_3 "_index_des_blogs_pour_index : TABLEAU_DES_META_DU_BLOG :"
_blog_idx_for_index_msg_4 "_index_des_blogs_pour_index : meta_str du TABLEAU_DES_META_DU_BLOG de _blogs" # Blog Messages
_blog_idx_for_index_msg_5 "_index_des_blogs_pour_index :" blog.not_found = "Aucun fichier de blog trouvé."
_blog_idx_for_index_msg_6 "_index_des_blogs_pour_index : Itération sur chaque composant et extraction des informations" blog.generating = "Génération du blog"
_blog_idx_for_index_msg_7 "_index_des_blogs_pour_index : Exécution de" blog.no_template = "Impossible de trouver le modèle de blog : %s"
_blog_idx_for_index_msg_7.1 "sur le contenu pour attraper les QStags dans l'Ingress" blog.cache_updated = "Cache du blog mis à jour"
_blog_idx_for_index_msg_8 "_index_des_blogs_pour_index : Écriture de _index_des_blogs_pour_index dans le fichier :" blog.cache_loading = "Chargement de l'index du blog depuis le cache"
_blog_idx_for_index_msg_9 "_index_des_blogs_pour_index : contenu_de_la_liste_des_blogs =" blog.cache_stale = "Cache du blog obsolète, reconstruction..."
_blog_index_msg_1 "_index_des_blogs : blog_dans_index=" blog.cache_fresh = "Le cache du blog est à jour"
_blog_index_msg_2 "_index_des_blogs : nouveaux_blogs_mis_à_jour=" blog.post_updated = "Article de blog mis à jour : %s"
_blog_index_msg_3 "_index_des_blogs : Exécution de la fonction _index_des_blogs" blog.post_skipped = "Ignoré (aucun changement) : %s"
_blog_index_msg_4 "_index_des_blogs : blog_dans_index =" blog.post_error = "Erreur lors du traitement de l'article de blog : %s"
_blog_index_msg_5 "- Génération de la Page :"
_blog_index_msg_6 "_index_des_blogs : Remplacement de nomdusite et slogan" # Messages de Génération de Blog
_blog_index_msg_7 "_index_des_blogs : Remplacement du CORPS par le contenu de" blog.hello_world_title = "Bonjour le monde !"
_blog_index_msg_8 "_index_des_blogs : Écriture" blog.published_on = "Publié le"
_blog_index_msg_9 "_index_des_blogs : Longueur du contenu de blog_index_content :" blog.welcome_message = "Bienvenue sur votre nouveau blog ! Ceci est un exemple d'article de blog."
_add_blog_list_to_index_msg_1 "_add_blog_list_to_index : Insertion de la liste des blogs dans index.html" blog.getting_started = "Pour commencer"
_sitemap_msg_1 "Génération du Plan du site" blog.edit_this_post = "Vous pouvez modifier cet article à l'emplacement %s"
_sitemap_msg_2 "Plan du site généré à" blog.features = "Fonctionnalités"
_link_msg_1 "_link : URL_PRINCIPALE(ligne) :" blog.feature_markdown = "Prise en charge du Markdown"
_link_msg_2 "_link_ URL :" blog.feature_easy_customize = "Facile à personnaliser"
_link_msg_3 "_link : Texte :" blog.feature_fast_lightweight = "Rapide et léger"
_image_msg_1 "_image : Traitement de la ligne :" blog.next_steps = "Prochaines étapes"
_youtube_msg_1 "_youtube : Traitement de la ligne :" blog.step_edit_post = "Modifier cet article"
_cleanup_msg_1 "_cleanup : Nettoyage des tags dans le contenu" blog.step_add_posts = "Ajouter plus d'articles"
_html_msg_1 "_html : Conversion des QStags dans le contenu" blog.step_customize_theme = "Personnaliser votre thème"
_zhtml_msg_1 "_zhtml : Conversion des QStags dans le contenu" blog.step_publish_site = "Publier votre site"
) blog.happy_blogging = "Bon blogage !"
blog.latest_posts = "Derniers articles"
blog.sample_post = "Article de blog"
blog.categories = "Catégories"
blog.sample_category = "Catégorie"
blog.archives = "Archives"
blog.tags = "Étiquettes"
blog.about = "À propos"
blog.about_text = "Ceci est une page d'index de blog exemple. Vous pouvez la modifier à l'emplacement %s"
# Messages de Génération de Pages
page.about_me_title = "À propos de moi"
page.welcome_title = "Bienvenue sur mon site"
page.welcome_message = "Ceci est une page À propos exemple. Vous pouvez la modifier à l'emplacement %s"
page.my_story_title = "Mon histoire"
page.my_story_content = "Je suis un développeur passionné qui adore créer des sites web incroyables avec qsgen2 !"
page.skills_title = "Compétences"
page.skill_webdev = "Développement Web"
page.skill_design = "Design"
page.skill_opensource = "Logiciel Libre"
page.contact_title = "Contact"
page.contact_content = "Vous pouvez me contacter à : email@exemple.com"
page.about_site_title = "À propos de ce site"
page.about_site_content = "Ce site a été construit avec [qsgen2](https://github.com/kekePower/qsgen2)."
# Messages de Succès
success.config_loaded = "Configuration chargée avec succès"
success.build_complete = "Construction terminée avec succès"
success.blog_index_created = "Index du blog créé à l'emplacement : %s"
success.sample_post_created = "Exemple d'article de blog créé à l'emplacement : %s"
success.sample_page_created = "Page exemple créée à l'emplacement : %s"
success.project_initialized = "Projet initialisé avec succès !"
success.theme_initialized = "Thème initialisé avec succès !"
success.config_initialized = "Fichier de configuration créé avec succès !"
# Messages Système
system.created_by = "- Créé par kekePower - 2018-%s"
system.see_help = "- Voir '%s help' pour plus d'informations."
# Messages de Liste
list.pages_not_found = "_list_pages : Aucune page trouvée avec l'extension %s"
list.pages_adding = "_list_pages : Ajout du fichier au tableau : %s"
list.blogs_not_found = "_list_blogs : Aucun fichier de blog trouvé."
list.blogs_adding = "_list_blogs : Ajout du fichier au tableau : %s"
# Navigation
nav.home = "Accueil"
nav.blog = "Blog"
nav.about = "À propos"
# Pied de page
footer.all_rights_reserved = "Tous droits réservés."
# Configuration
config.site_config_title = "Configuration du Site"
config.theme_config_title = "Configuration du Thème"
config.site_name_default = "Mon Super Site"
config.site_tagline_default = "Un site statique généré avec qsgen2"
config.site_description_default = "Voici mon super site statique"
config.your_name = "Votre Nom"
config.theme_description = "Un thème personnalisé pour qsgen2"
config.theme_files_title = "Fichiers du thème (relatif au répertoire du thème)"
# CSS et JavaScript
css.main_styles = "Styles Principaux"
js.main_javascript = "JavaScript Principal"
js.console_message = "Bonjour depuis qsgen2 !"
js.add_custom_javascript = "Ajoutez votre code JavaScript personnalisé ici"
js.your_code_here = "Votre code ici"
# Messages de Dernière Mise à Jour
last_updated.setting = "_last_updated : Définition de la date et de la version dans le pied de page"
last_updated.file_not_found = "_f_last_updated : Fichier %s non trouvé."
# Pages Messages
pages.generating = "Génération des Pages"
pages.none = "* Vous n'avez aucune page *"
pages.no_template = "Impossible de trouver le modèle de page : %s"
# Messages Pandoc
pandoc.install = "Veuillez installer Pandoc."
pandoc.download = "https://github.com/jgm/pandoc/releases"
# Messages du Générateur
generator.not_found = "Aucun générateur valide trouvé. Êtes-vous sûr d'avoir sélectionné le bon générateur dans 'config' ?"
generator.using = "Utilisation du générateur : %s"
generator.not_found = "Générateur introuvable : %s"
generator.execution_failed = "Échec de l'exécution du générateur : %s"
generator.execution_success = "Générateur exécuté avec succès : %s"
# Messages de Construction
build.forced = "- Mise à jour forcée : Génération complète"
build.using_engine = "Utilisation du moteur %s pour les fichiers :"

View File

@ -1,115 +1,217 @@
qsgenlang=( # Quick Site Generator 2 - Norsk språkfil
_qsgen2_msg_2 "Tvungen oppdatering: Genererer alt" # Denne filen inneholder alle brukervendte strenger for applikasjonen
_qsgen2_msg_3 "* %SCRIPT_NAME% kan ikke analysere dette nettstedet. Avslutter. *"
_qsgen2_msg_4 "Vennligst installer Pandoc." # Feilmeldinger
_qsgen2_msg_5 "Ingen gyldig generator funnet. Er du sikker på at du har valgt riktig generator i 'config'?" error.missing_dependencies = "Mangler påkrevde avhengigheter: %s"
_qsgen2_msg_6 "Bruker ${generator}-motoren for filer: ${file_ext}" error.config_validation_failed = "Validering av konfigurasjon feilet. Vennligst sjekk konfigurasjonsfilene dine."
_qsgen2_msg_7 "- Laget av kekePower - 2018" error.config_missing_key = "Mangler påkrevd konfigurasjon: %s"
_qsgen2_msg_8 "- Se" error.invalid_url = "site_url må starte med http:// eller https://"
_qsgen2_msg_8.1 "for mer informasjon." error.directory_not_found = "Mappen finnes ikke: %s"
_qsgen2_msg_9 "Innhold i Config filen:" error.theme_not_found = "Temamappe ikke funnet: %s"
_list_pages_msg_1 "_list_pages: Ingen sider funnet med utvidelse" error.theme_config_not_found = "Temakonfigurasjon ikke funnet: %s"
_list_pages_msg_2 "_list_pages: Legger til fil i array:" error.theme_config_creation_failed = "Kunne ikke opprette temakonfigurasjon: %s"
_list_blogs_msg_3 "_list_blogs: Ingen blogginnlegg funnet." error.config_parse = "Kunne ikke tolke konfigurasjonsfil: %s"
_list_blogs_msg_4 "_list_blogs: Legger til fil i array:" error.invalid_path = "Ugyldig sti: %s"
_blog_cache_msg_1 "_blog_cache: HASH VERDI:" error.write_failed = "Kunne ikke skrive til midlertidig fil: %s"
_blog_cache_msg_2 "1. _blog_cache:" error.move_failed = "Kunne ikke flytte midlertidig fil til: %s"
_blog_cache_msg_3 "2. _blog_cache: nåværende cache:" error.config_load_failed = "Kunne ikke laste konfigurasjonsfil: %s"
_blog_cache_msg_4 "3. _blog_cache: ny cache-fil:" error.config_not_found = "Ingen gyldig konfigurasjonsfil funnet."
_blog_cache_msg_5 "4. _blog_cache: ny nåværende cache:" error.create_blog_index_failed = "Kunne ikke opprette bloggindeks på: %s"
_pages_cache_msg_1 "_pages_cache: PAGES HASH VERDI:" error.create_sample_post_failed = "Kunne ikke opprette eksempelinnlegg på: %s"
_pages_cache_msg_2 "1. pages_cache:" error.create_sample_page_failed = "Kunne ikke opprette eksempelside på: %s"
_pages_cache_msg_3 "1. _pages_cache: nåværende cache:" error.engine_not_found = "Motor ikke funnet eller ikke kjørbar: %s"
_pages_cache_msg_4 "2. _pages_cache: sidefil:" error.unknown_generator = "Ukjent generator: %s"
_pages_cache_msg_5 "2. _pages_cache: nåværende cache:" error.unknown_option = "Ukjent alternativ: %s"
_last_updated_msg_1 "_last_updated: Setter dato og versjon i bunntekst" error.directory_not_empty = "Mappen '%s' finnes allerede og er ikke tom."
_last_updated_msg_1 "_last_updated:" error.theme_creation_failed = "Kunne ikke opprette tema: %s"
_f_last_updated_msg_1 "_f_last_updated: Setter dato og versjon i bunntekst for fil" error.config_creation_failed = "Kunne ikke opprette konfigurasjonsfil: %s"
_f_last_updated_msg_2 "_f_last_updated:" error.directory_creation_failed = "Kunne ikke opprette mappe: %s"
_f_last_updated_msg_3 "_f_last_updated: Filen" error.file_creation_failed = "Kunne ikke opprette fil: %s"
_f_last_updated_msg_3.1 "ble ikke funnet." error.layout_creation_failed = "Kunne ikke opprette layoutfil: %s"
_pages_msg_1 "_pages: Kjører funksjon _pages_cache" error.stylesheet_creation_failed = "Kunne ikke opprette stilark: %s"
_pages_msg_2 "* Du har ingen sider *" error.script_creation_failed = "Kunne ikke opprette scriptfil: %s"
_pages_msg_3 "Genererer Sider"
_pages_msg_4 "_pages: sidearray er ikke tom" # Advarselsmeldinger
_pages_msg_5 "_pages: Setter Opp Sider-mal" warning.optional_dependency = "Valgfritt verktøy '%s' kreves for %s, men ble ikke funnet"
_pages_msg_6 "Kan ikke finne Sidemalen:" warning.dependency_version = "%s versjon %s er lavere enn anbefalt versjon %s"
_pages_msg_7 "_pages: Leser Sidemalen inn i pages_tpl" warning.legacy_config = "Bruker gammel konfigurasjonsfil. Vurder å endre navn på '%s' til 'site.conf'"
_pages_msg_9 "_pages: Laster sideinnhold en gang - " warning.git_repo = "Advarsel: Kjører i en git-mappe. Forsikre deg om at dette er meningen."
_pages_msg_10 "_pages: Finne sidetittel" warning.outdated_dependencies = "Noen avhengigheter er utdaterte:"
_pages_msg_11 "_pages:"
_pages_msg_12 "_pages: Fjerner #tittel linje fra sideinnhold" # Informasjonsmeldinger
_pages_msg_13 "_pages: Kjører motor på" info.legacy_config = "Advarsel: Bruker gammel '%s'-fil. Vurder å endre navn til 'site.conf'"
_pages_msg_14 "_pages: Sjekker for #link, #showimg og #ytvideo i sideinnhold" info.legacy_config_used = "Bruker gammel konfigurasjonsfil. Vurder å endre navn fra 'config' til 'site.conf'"
_pages_msg_15 "_pages: #link er til stede, kjør _link: sideinnhold" info.config_help = "Vennligst opprett 'site.conf' i prosjektmappen din."
_pages_msg_16 "_pages: #showimg er til stede, kjør _image: sideinnhold" info.config_template = "Du kan bruke 'config.example' som en mal."
_pages_msg_17 "_pages: #ytvideo er til stede, kjør _youtube: sideinnhold" info.git_repo_help = "Hvis du vil generere nettsiden, kjør fra prosjektets rotmappe."
_pages_msg_18 "_pages: Erstatter #sidetittel, #tagline og #sidenavn i pages_tpl" info.usage = "Bruk: %s <kommando> [alternativer]"
_pages_msg_19 "_pages: Erstatter BODY med sideinnhold i pages_tpl" info.engine_usage = "Bruk: _run_engine <inndata>"
_pages_msg_20 "_pages: _last_updated i pages_tpl" info.creating_blog_index = "Oppretter bloggindeksfil..."
_pages_msg_21 "_pages: Filnavn i små bokstaver, alltid" info.creating_sample_post = "Oppretter eksempelinnlegg..."
_pages_msg_22 "_pages: Kjører _cleanup" info.creating_sample_page = "Oppretter eksempelside..."
_pages_msg_23 "- Analyserer" info.setting_up_project = "Setter opp prosjektstruktur..."
_pages_msg_24 "- blog_in_index =" info.creating_directories = "Oppretter prosjektmapper..."
_pages_msg_25 "- Skriver ut blogg midlertidig fil:" info.initializing_blog = "Initialiserer blogg..."
_pages_msg_26 "Oppdaterer index.html med nye blogginnlegg" info.initializing_pages = "Initialiserer sider..."
_pages_msg_27 "- Analyserer" info.initializing_theme = "Initialiserer tema..."
_pages_msg_28 "- blog_in_index =" info.initializing_config = "Initialiserer konfigurasjon..."
_pages_msg_29 "- Ingen nye eller oppdaterte Sider funnet" info.initializing_complete = "Initialisering fullført!"
_blogs_msg_1 "_blogs: Kjører funksjon _list_blogs" info.initializing_aborted = "Initialisering avbrutt."
_blogs_msg_2 "* Du har ingen blogger *" info.use_force_option = "Bruk --force for å overskrive den eksisterende mappen."
_blogs_msg_3 "Genererer Blogger" info.get_started_instructions = "For å komme i gang"
_blogs_msg_4 "_blogs: Kjører funksjon _blog_cache" info.happy_coding = "Lykke til med kodingen!"
_blogs_msg_5 "Kan ikke finne tema mal for Blogger." info.initializing_project = "Initialiserer prosjekt..."
_blogs_msg_6 "_blogs: Behandler forhåndsdata for" info.initializing_blog_cache = "Initialiserer blogg-mellomlager..."
_blogs_msg_7 "_blogs: Leter etter DATO: Funnet" info.initializing_pages_cache = "Initialiserer side-mellomlager..."
_blogs_msg_8 "_blogs: Leter etter BLOGGTITTEL: Funnet"
_blogs_msg_9 "* _blogs: DATO-metadata mangler i" # Feilsøkingsmeldinger
_blogs_msg_10 "* _blogs: BLOGGTITTEL-metadata mangler i" debug.loading_config = "Laster konfigurasjonsfil: %s"
_blogs_msg_11 "_blogs: Legger til data for" debug.loaded_config = "=== Lastet Konfigurasjon ==="
_blogs_msg_11.1 "til array for eksport" debug.config_value = "%s: %s"
_blogs_msg_12 "_blogs: Behandler" debug.config_end = "=========================="
_blogs_msg_14 "_blogs: Behandler erstatninger i" debug.raw_config = "=== Rå Konfigurasjonsfil ==="
_blogs_msg_15 "_blogs: Kjører funksjon" debug.raw_config_end = "========================"
_blogs_msg_15.1 "for" debug.blog_cache_update = "Oppdaterer blogg-mellomlager på %s"
_blogs_msg_16 "_blogs: Sjekker for #link, #showimg og #ytvideo i blogginnhold" debug.blog_cache_bytes = "Blogg-mellomlager oppdatert med %d byte"
_blogs_msg_17 "_blogs: #link er til stede, kjør _link: blogginnhold" debug.blog_cache_loading = "Laster bloggindeks fra mellomlager"
_blogs_msg_18 "_blogs: #showimg er til stede, kjør _link: blogginnhold" debug.blog_cache_stale_new = "Blogg-mellomlager utdatert: Nye eller oppdaterte blogger oppdaget"
_blogs_msg_19 "_blogs: #ytvideo er til stede, kjør _link: blogginnhold" debug.blog_cache_stale_missing = "Blogg-mellomlager utdatert: Mellomlagerfilen finnes ikke"
_blogs_msg_20 "_blogs: Erstatter tagline, sitenavn og sidetittel" debug.blog_cache_stale_old = "Blogg-mellomlager utdatert: Mellomlager er eldre enn 1 time"
_blogs_msg_21 "_blogs: Oppretter katalog" debug.blog_cache_fresh = "Blogg-mellomlager er oppdatert"
_blogs_msg_22 "_blogs: Skriver blogg til disk:" debug.pages_cache_update = "Oppdaterer side-mellomlager på %s"
_blogs_msg_23 "_blogs: new_updated_blogs=true" debug.pages_cache_bytes = "Side-mellomlager oppdatert med %d byte"
_blogs_msg_24 "- Ingen nye eller oppdaterte Blogger funnet" debug.pages_cache_loading = "Laster sideindeks fra mellomlager"
_blogs_msg_25 "* _blogs: Kjører _blog_idx_for_index" debug.pages_cache_stale_new = "Side-mellomlager utdatert: Nye eller oppdaterte sider oppdaget"
_blogs_msg_26 "* _blogs: Kjører _blog_index" debug.pages_cache_stale_missing = "Side-mellomlager utdatert: Mellomlagerfilen finnes ikke"
_blog_idx_for_index_msg_1 "- Fyller" debug.pages_cache_stale_old = "Side-mellomlager utdatert: Mellomlager er eldre enn 1 time"
_blog_idx_for_index_msg_2 "_blog_idx_for_index: Starter funksjon" debug.pages_cache_fresh = "Side-mellomlager er oppdatert"
_blog_idx_for_index_msg_3 "_blog_idx_for_index: BLOG_META_STR_ARRAY:"
_blog_idx_for_index_msg_4 "_blog_idx_for_index: meta_str fra BLOG_META_STR_ARRAY fra _blogs" # Bloggmeldinger
_blog_idx_for_index_msg_5 "_blog_idx_for_index:" blog.not_found = "Ingen bloggfiler funnet."
_blog_idx_for_index_msg_6 "_blog_idx_for_index: Går gjennom hver komponent og trekker ut informasjon" blog.generating = "Genererer blogg"
_blog_idx_for_index_msg_7 "_blog_idx_for_index: Kjører" blog.no_template = "Kunne ikke finne bloggmalen: %s"
_blog_idx_for_index_msg_7.1 "på innhold for å fange QStags i Ingress" blog.cache_updated = "Blogg-mellomlager oppdatert"
_blog_idx_for_index_msg_8 "_blog_idx_for_index: Skriver _blog_idx_for_index til fil:" blog.cache_loading = "Laster blogg-mellomlager"
_blog_idx_for_index_msg_9 "_blog_idx_for_index: blog_list_content =" blog.cache_stale = "Blogg-mellomlager er utdatert, bygger på nytt..."
_blog_index_msg_1 "_blog_index: blog_in_index=" blog.cache_fresh = "Blogg-mellomlager er oppdatert"
_blog_index_msg_2 "_blog_index: new_updated_blogs=" blog.post_updated = "Oppdatert blogginnlegg: %s"
_blog_index_msg_3 "_blog_index: Kjører funksjon _blog_index" blog.post_skipped = "Hoppet over (ingen endringer): %s"
_blog_index_msg_4 "_blog_index: blog_in_index = " blog.post_error = "Feil ved behandling av blogginnlegg: %s"
_blog_index_msg_5 "- Genererer Side:"
_blog_index_msg_6 "_blog_index: Erstatter sitenavn og tagline" # Blogg-genereringsmeldinger
_blog_index_msg_7 "_blog_index: Erstatter BODY med innhold fra" blog.hello_world_title = "Hallo, verden!"
_blog_index_msg_8 "_blog_index: Skriver" blog.published_on = "Publisert den"
_add_blog_list_to_index_msg_1 "_add_blog_list_to_index: Setter inn bloggliste i index.html" blog.welcome_message = "Velkommen til din nye blogg! Dette er et eksempel på et blogginnlegg."
_sitemap_msg_1 "Genererer Nettsidekart" blog.getting_started = "Kom i gang"
_sitemap_msg_2 "Nettsidekart generert på" blog.edit_this_post = "Du kan redigere dette innlegget på %s"
_link_msg_1 "_link: HOVED URL-LINJE:" blog.features = "Funksjoner"
_link_msg_2 "_link_ URL:" blog.feature_markdown = "Støtte for Markdown"
_link_msg_3 "_link: Tekst:" blog.feature_easy_customize = "Lett å tilpasse"
_image_msg_1 "_image: Behandler linje:" blog.feature_fast_lightweight = "Rask og lettvektig"
_youtube_msg_1 "_youtube: Behandler linje:" blog.next_steps = "Neste steg"
_cleanup_msg_1 "_cleanup: Renser opp i merker i innhold" blog.step_edit_post = "Rediger dette innlegget"
_html_msg_1 "_html: Konverterer QStags i innhold" blog.step_add_posts = "Legg til flere innlegg"
_zhtml_msg_1 "_zhtml: Konverterer QStags i innhold" blog.step_customize_theme = "Tilpass temaet ditt"
) blog.step_publish_site = "Publiser nettstedet ditt"
blog.happy_blogging = "Lykke til med bloggingen!"
blog.latest_posts = "Siste innlegg"
blog.sample_post = "Blogginnlegg"
blog.categories = "Kategorier"
blog.sample_category = "Kategori"
blog.archives = "Arkiv"
blog.tags = "Emneknagger"
blog.about = "Om"
blog.about_text = "Dette er en eksempelindeksside for bloggen. Du kan redigere den på %s"
# Sidegenereringsmeldinger
page.about_me_title = "Om meg"
page.welcome_title = "Velkommen til nettstedet mitt"
page.welcome_message = "Dette er en eksempel 'om'-side. Du kan redigere den på %s"
page.my_story_title = "Min historie"
page.my_story_content = "Jeg er en lidenskapelig utvikler som elsker å lage fantastiske nettsteder med qsgen2!"
page.skills_title = "Ferdigheter"
page.skill_webdev = "Nettutvikling"
page.skill_design = "Design"
page.skill_opensource = "Åpen kildekode"
page.contact_title = "Kontakt"
page.contact_content = "Du kan nå meg på: epost@eksempel.no"
page.about_site_title = "Om dette nettstedet"
page.about_site_content = "Dette nettstedet er bygget med [qsgen2](https://github.com/kekePower/qsgen2)."
# Suksessmeldinger
success.config_loaded = "Konfigurasjon lastet inn vellykket"
success.build_complete = "Bygging fullført vellykket"
success.blog_index_created = "Opprettet bloggindeks på: %s"
success.sample_post_created = "Opprettet eksempelblogginnlegg på: %s"
success.sample_page_created = "Opprettet eksempelside på: %s"
success.project_initialized = "Prosjektet er initialisert!"
success.theme_initialized = "Temaet er initialisert!"
success.config_initialized = "Konfigurasjonsfil opprettet!"
# Blogg-mellomlager meldinger
blog_cache.hash = "_blog_cache: HASH VERDI:"
blog_cache.current = "1. _blog_cache:"
blog_cache.cache_file = "2. _blog_cache: current_cache:"
blog_cache.new_cache = "3. _blog_cache: new_cache_file:"
blog_cache.new_current = "4. _blog_cache: new_current_cache:"
# Sider-mellomlager meldinger
page_cache.hash = "SIDER HASH VERDI:"
page_cache.current = "1. pages_cache:"
page_cache.cache_file = "2. _pages_cache: current_cache:"
page_cache.pages_file = "2. _pages_cache: pages_file:"
# Systemmeldinger
system.created_by = "- Laget av kekePower - 2018-%s"
system.see_help = "- Se '%s help' for mer informasjon."
# Listemeldinger
list.pages_not_found = "_list_pages: Ingen sider funnet med filendelse %s"
list.pages_adding = "_list_pages: Legger til fil i tabell: %s"
list.blogs_not_found = "_list_blogs: Ingen bloggfiler funnet."
list.blogs_adding = "_list_blogs: Legger til fil i tabell: %s"
# Navigasjon
nav.home = "Hjem"
nav.blog = "Blogg"
nav.about = "Om"
# Bunntekst
footer.all_rights_reserved = "Alle rettigheter reservert."
# Konfigurasjon
config.site_config_title = "Nettstedsinnstillinger"
config.theme_config_title = "Temainnstillinger"
config.site_name_default = "Mitt fantastiske nettsted"
config.site_tagline_default = "Et statisk nettsted generert med qsgen2"
config.site_description_default = "Dette er mitt fantastiske statiske nettsted"
config.your_name = "Ditt navn"
config.theme_description = "Et egendefinert tema for qsgen2"
config.theme_files_title = "Temafiler (relativ til temamappe)"
# CSS og JavaScript
css.main_styles = "Hovedstiler"
js.main_javascript = "Hoved-JavaScript"
js.console_message = "Hallo fra qsgen2!"
js.add_custom_javascript = "Legg til egendefinert JavaScript her"
js.your_code_here = "Din kode her"
# Sist oppdatert-meldinger
last_updated.setting = "_last_updated: Setter dato og versjon i bunntekst"
last_updated.file_not_found = "_f_last_updated: Filen %s ble ikke funnet."
# Pages Messages
pages.generating = "Genererer sider"
pages.none = "* Du har ingen sider *"
pages.no_template = "Kunne ikke finne sidemalen: %s"
# Pandoc Messages
pandoc.install = "Please install Pandoc."
pandoc.download = "https://github.com/jgm/pandoc/releases"
# Generator Messages
generator.not_found = "No valid generator found. Are you sure you've selected the correct generator in 'config'?"
# Build Messages
build.forced = "- Forced Update: Generating Everything"
build.using_engine = "Using the %s -engine for files:"

1299
qsgen2

File diff suppressed because it is too large Load Diff

144
tools/extract_messages.sh Executable file
View File

@ -0,0 +1,144 @@
#!/usr/bin/env zsh
# Script to extract and organize user-facing strings from the codebase
set -e
# Configuration
SOURCE_DIR="$(dirname "$0")/.."
LANG_DIR="${SOURCE_DIR}/include/qsgen2/lang"
OUTPUT_FILE="${LANG_DIR}/extracted_messages.txt"
# Create output directory if it doesn't exist
mkdir -p "$(dirname "$OUTPUT_FILE")"
# Initialize output file
cat > "$OUTPUT_FILE" << 'EOF'
# Quick Site Generator 2 - Extracted Messages
# This file contains all user-facing strings extracted from the codebase
# Generated on: $(date)
# Format:
# [message_id] = "message"
# Where message_id is in the format: category_subject_description
# Example: error_file_not_found = "File not found: %s"
# Categories:
# - config: Configuration related messages
# - file: File operation messages
# - build: Build process messages
# - blog: Blog system messages
# - page: Page system messages
# - error: Error messages
# - warning: Warning messages
# - info: Informational messages
# - debug: Debug messages
# Message Dictionary
[messages]
EOF
# Function to add a message to the output file
add_message() {
local category="$1"
local subject="$2"
local description="$3"
local message="$4"
# Generate message ID
local msg_id="${category}_${subject}_${description}"
# Clean up the message ID
msg_id=$(echo "$msg_id" | tr '[:upper:]' '[:lower:]' | tr ' ' '_' | sed 's/[^a-z0-9_]/_/g' | sed 's/__*/_/g' | sed 's/^_//;s/_$//')
# Add to output file
echo "${msg_id} = \"${message}\"" >> "$OUTPUT_FILE"
}
# Extract messages from _msg calls
echo "# Extracting messages from _msg calls..."
grep -r --include="*.zsh" --include="*.sh" -h "_msg " "$SOURCE_DIR" | \
grep -v '^\s*#' | \
grep -v '^\s*$' | \
while read -r line; do
# Extract message type and content
msg_type=$(echo "$line" | awk -F'"' '{print $1}' | awk '{print $NF}' | tr -d ' ')
msg_content=$(echo "$line" | sed -E 's/.*_msg[[:space:]]+[^[:space:]]+[[:space:]]+["]([^"]+)["].*/\1/')
# Skip if we couldn't extract content
if [[ "$msg_content" == "$line" ]]; then
continue
fi
# Determine category based on message type
case "$msg_type" in
error)
category="error"
;;
warning)
category="warning"
;;
info|other)
category="info"
;;
debug)
category="debug"
;;
*)
category="info"
;;
esac
# Generate a description from the message content
description=$(echo "$msg_content" | \
head -n 1 | \
tr '[:upper:]' '[:lower:]' | \
sed 's/[^a-z0-9 ]/ /g' | \
sed 's/ */ /g' | \
cut -c1-30 | \
tr ' ' '_' | \
sed 's/_$//')
# Add the message
add_message "$category" "general" "$description" "$msg_content"
done
# Extract messages from echo/print statements
echo "# Extracting messages from echo/print statements..."
grep -r --include="*.zsh" --include="*.sh" -h -E 'echo|printf|print' "$SOURCE_DIR" | \
grep -v '^\s*#' | \
grep -v '^\s*$' | \
grep -v '\\n' | \
grep -v '\$\|`' | \
grep -E '".*[a-z].*"' | \
while read -r line; do
# Extract message content
msg_content=$(echo "$line" | grep -o '"[^"]*"' | head -n 1 | tr -d '"')
# Skip if no content
if [[ -z "$msg_content" ]]; then
continue
fi
# Skip common debug/technical messages
if [[ "$msg_content" =~ ^[^a-zA-Z]*$ ]]; then
continue
fi
# Add as an info message
description=$(echo "$msg_content" | \
head -n 1 | \
tr '[:upper:]' '[:lower:]' | \
sed 's/[^a-z0-9 ]/ /g' | \
sed 's/ */ /g' | \
cut -c1-30 | \
tr ' ' '_' | \
sed 's/_$//')
add_message "info" "general" "$description" "$msg_content"
done
echo "Message extraction complete. Review the output in $OUTPUT_FILE"

63
tools/migrate_messages.sh Executable file
View File

@ -0,0 +1,63 @@
#!/usr/bin/env zsh
# Script to help migrate message strings to the new format
set -e
# Configuration
SOURCE_DIR="$(dirname "$0")/.."
LANG_DIR="${SOURCE_DIR}/include/qsgen2/lang"
OUTPUT_FILE="${LANG_DIR}/message_migration.txt"
# Create output directory if it doesn't exist
mkdir -p "$(dirname "$OUTPUT_FILE")"
# Initialize output file
cat > "$OUTPUT_FILE" << EOF
# Quick Site Generator 2 - Message Migration
# This file helps migrate from old message format to the new format
# Generated on: $(date)
#
# Format:
# OLD_ID = "message"
# NEW_ID = "new.message.id"
#
# [Additional notes]
EOF
# Find all _msg calls in the codebase
echo "# Messages from _msg calls" >> "$OUTPUT_FILE"
grep -r --include="*.zsh" --include="*.sh" -h "_msg " "$SOURCE_DIR" | \
grep -o "_msg \w\+ \"[^\"]\+" | \
sort -u | \
while read -r line; do
# Extract message type and content
msg_type=$(echo "$line" | awk '{print $2}')
msg_content=$(echo "$line" | cut -d'"' -f2)
# Generate a message ID based on content
msg_id=$(echo "$msg_content" | \
tr '[:upper:]' '[:lower:]' | \
sed 's/[^a-z0-9]/_/g' | \
sed 's/__*/_/g' | \
sed 's/^_//;s/_$//')
# Add to output file
echo "# $line" >> "$OUTPUT_FILE"
echo "msg_${msg_id} = \"${msg_content}\"" >> "$OUTPUT_FILE"
echo >> "$OUTPUT_FILE"
done
# Find all existing message IDs in language files
echo -e "\n# Existing message IDs in language files" >> "$OUTPUT_FILE"
find "$LANG_DIR" -type f -name "*.en" -o -name "en_*" | while read -r langfile; do
echo "## From $(basename "$langfile"):" >> "$OUTPUT_FILE"
grep -o '"_\?[a-zA-Z0-9_]\+"' "$langfile" | \
sort -u | \
sed 's/^"//;s/"$//' >> "$OUTPUT_FILE"
echo >> "$OUTPUT_FILE"
done
echo "Migration file created at: $OUTPUT_FILE"
echo "Please review and update the message IDs as needed."

View File

@ -0,0 +1,68 @@
#!/usr/bin/env zsh
# Script to migrate hardcoded messages to the message system
set -e
# Configuration
SOURCE_DIR="$(dirname "$0")/.."
LANG_FILE="${SOURCE_DIR}/include/qsgen2/lang/qsgen2.en"
TEMP_FILE="${SOURCE_DIR}/.qsgen2.tmp"
# Create a backup of the original file
backup_file() {
local file="$1"
local backup="${file}.bak.$(date +%s)"
cp "$file" "$backup"
echo "Created backup at: $backup"
}
# Replace a message in the code
replace_message() {
local old_msg="$1"
local new_key="$2"
local file="$3"
# Escape special characters for sed
local escaped_old=$(printf '%s\n' "$old_msg" | sed 's/[&/\^$*.]/\\&/g')
local escaped_new="_msg i18n \"$new_key\""
# Handle messages with parameters
if [[ "$old_msg" == *"%s"* ]]; then
escaped_new="${escaped_new} \"\${1:-\"\"}\""
fi
# Replace in file
sed -i "s/_msg \(info\|warning\|error\|debug\|other\) \"$escaped_old\"/$escaped_new/g" "$file"
}
# Process a single file
process_file() {
local file="$1"
echo "Processing file: $file"
# Create a backup
backup_file "$file"
# Replace messages
while IFS= read -r line; do
if [[ "$line" =~ ^([a-z.]+)[[:space:]]*=[[:space:]]*"([^"]+)" ]]; then
local key="${match[1]}"
local msg="${match[2]}"
# Skip comments and empty lines
[[ "$key" == "#"* ]] && continue
[[ -z "$key" ]] && continue
# Replace in file
replace_message "$msg" "$key" "$file"
fi
done < "$LANG_FILE"
}
# Find all shell scripts in the project
find "$SOURCE_DIR" -type f \( -name "*.zsh" -o -name "*.sh" \) -not -path "*/.*" | while read -r file; do
process_file "$file"
done
echo "Migration complete. Please review the changes and test the application."