Files
sm-seo-plugin/lang/en/lang.yaml
Jakub Zych 34a65b846e feat: redirect engine with loop refusal and chain notices
- rule set: exact sources by key, patterns by literal prefix, regex by id
  (stdlib RE2, compiled once per source); ignore case, trailing slash,
  query ignore/pass, a source with ? matches its query exactly
- targets: captures escaped, a relative target never leaves the site, an
  absolute one keeps its host
- SaveRedirect validates, simulates the rule in place (exact, pattern and
  regex probes, 10 hops) and refuses a loop; chains answer the notice
- resolve follows the chain to its final target, 410 answers gone, a
  runtime cycle answers not_found and is logged once
2026-10-27 11:26:42 +01:00

202 lines
9.6 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
plugin:
name: SEO
description: Search engine metadata for every content type, URL rules and global SEO settings.
nav:
seo: SEO
history: History
rules: URL rules
permissions:
tab: SEO
manage: Manage SEO
manage_comment: Edit the SEO tab of every content type, URL rules, redirects, robots.txt and the SEO settings, in the admin and through MCP.
tab:
seo: SEO
field:
snippet: Search result preview
description_comment: Leave empty to use the description template, then the content's own excerpt.
keyphrase: Focus keyphrase
keyphrase_comment: Checked in the preview above. Never shown on the site.
robots_comment: “Inherit” follows a URL rule for this address, then the content type default from the SEO settings. Also sent as an X-Robots-Tag header.
og_title_comment: Used by Facebook, LinkedIn and X. Empty fields use the SEO title, description and the content's image.
og_image_comment: Recommended 1200 × 630 px. Shared by all languages of this record.
effective: What search engines get
title: SEO title
title_comment: Leave empty to use the title template from the SEO settings.
title_comment_rule: Leave empty to keep the title of the page or record at this address.
description: Meta description
canonical: Canonical URL
canonical_comment: Leave empty for this page's own address. Accepts a path (/blog/post) or a full URL, also on another domain.
robots: Search engine indexing
robots_comment_rule: “Inherit” keeps the setting of the record at this address, then the content type default.
og_title: Social title
og_description: Social description
og_image: Social image
robots:
invalid: The robots value is not valid. Use index or noindex, follow or nofollow and the advanced directives, separated by commas.
inherit: Inherit
site_default: Site default
staging_title: This is not the production environment
status:
rule_title: A URL rule overrides part of this tab
rule_text: The rule for “:url” sets :fields. Change them in SEO › URL rules.
canonical_noindex: The canonical URL “:url” is set to noindex, so search engines may ignore both pages.
canonical_redirected: The canonical URL “:url” redirects to “:target”. Point the canonical to the final address.
staging: On this environment every page is served with noindex and robots.txt blocks everything (non-production lock).
settings:
placeholders: Placeholders
placeholders_code: Placeholder
placeholders_meaning: Replaced with
category: SEO
label: SEO settings
description: Title templates, default descriptions, indexing rules, address format and search engine verification.
tab_general: General
tab_indexing: Indexing
tab_urls: Addresses
tab_verification: Verification
site_name: Site name
site_name_comment: Replaces %site% in title templates.
title_template: Title template
title_template_comment: 'Used when a page has no SEO title. Default: the page title, a vertical bar and the site name (%title% followed by %site%).'
home_template: Home page title template
default_description: Default meta description
default_description_comment: Used when neither the page, its template nor its content provides a description.
default_og_image: Default social image
twitter_site: X (Twitter) account
twitter_site_comment: Your handle with @, e.g. @summercms. Sent as twitter:site.
type_inject: Show the SEO tab
type_inject_comment: Off hides the tab. Saved values are kept and still used.
type_title_template: Title template
type_title_template_comment: Leave empty to use the general title template.
type_description_template: Description template
type_robots: Default indexing
query_params: Query parameters
query_params_comment: Decides which parameters stay in the canonical URL. A trailing * matches a prefix, e.g. utm_*.
param_name: Parameter
param_kind: Kind
param_path: Only under path
param_content: 'Content: stays in the canonical'
param_filter: 'Filter or sort: dropped, page gets noindex, follow'
param_tracking: 'Tracking: dropped'
param_path_comment: 'Empty: the whole site. Example: /katalog/*'
param_add: Add parameter
noindex_paths: Addresses never indexed
noindex_paths_comment: One address or pattern per line, e.g. /konto/* or /logowanie. These pages get noindex, nofollow. Pages behind sign-in are marked automatically.
search_paths: Internal search results
search_paths_comment: One address or pattern per line, e.g. /szukaj. These pages get noindex, follow.
url_host: Domain form
url_host_keep: Do not change
url_host_www: Always with www
url_host_bare: Always without www
url_slash: Trailing slash
url_slash_keep: Do not change
url_slash_add: Always add (/blog/)
url_slash_remove: Always remove (/blog)
url_lowercase: Lowercase addresses
url_change_comment: A change sends every non-matching address to the new form with a 301. Check the site's current addresses first.
url_fixed_comment: 'Always on: HTTPS, removal of double slashes and /index.html, a single 301 hop to the final address, and strict addresses (every segment must match the record).'
verify_google: Google verification code
verify_bing: Bing verification code
verify_yandex: Yandex verification code
verify_code_comment: Paste only the content value of the meta tag. It is added to the home page.
verify_other: Other verification meta tags
verify_other_name: Meta name
verify_other_content: Content
verify_other_add: Add meta tag
verify_files: Verification files
verify_files_filename: File name
verify_files_body: File content
verify_files_add: Add file
verify_files_comment: Served from the site root, e.g. /google1234.html.
verify_filename_invalid: Use a plain file name ending in .html, .txt or .xml, without slashes, e.g. google1234.html.
verify_filename_taken: Another verification file already uses this name.
template_unknown: Unknown placeholder “:placeholder”. Use one from the table below the templates.
rules:
new: New URL rule
list_title: URL rules
name: URL rule
url: Address
match: Match
match_exact: Exact address
match_pattern: Pattern
note: Note
note_comment: Why this rule exists, e.g. the audit it comes from. Not shown on the site.
col_overrides: Sets
col_updated: Updated
url_comment_full: A URL rule wins over the record's SEO tab and the SEO settings. A path such as / or /blog?tag=*. In a pattern, * matches any text.
url_taken: A rule for this address and match already exists.
url_invalid: Start the address with /. Use * only in a pattern.
list_empty: No URL rules yet. A rule sets SEO for an address that has no record behind it, such as the home page or a filter URL.
delete_confirm: Delete this URL rule? The address falls back to its record and the SEO settings. You can undo it in History.
delete_selected_confirm:
one: Delete :count URL rule? You can undo it in History.
other: Delete :count URL rules? You can undo it in History.
history:
list_title: History
name: Change
when: When
who: Who
via: Via
what: What
change: Change
batch: Batch
via_admin: Admin
via_mcp: MCP
via_import: Import
via_auto: Automatic
via_undo: Undo
what_record: SEO of :type “:title” (:locale)
what_rule: URL rule “:url”
what_redirect: Redirect “:url”
what_robots: robots.txt
what_settings: SEO settings
change_cell:
one: ':field: :before → :after'
other: ':count fields changed'
created: (created)
deleted: (deleted)
state_undone: Undone
filter_via: Via
filter_when: When
filter_who: Who
preview: Change details
diff_field: Field
diff_before: Before
diff_after: After
list_empty: No SEO changes recorded yet. Every change from the admin, MCP or an import appears here and can be undone.
jobs:
generate_entries: 'SEO: generate entries'
effective:
property: Property
value: Value
source: Source
locale: “:locale” — :url
source_rule: URL rule
source_record: This record
source_template: Template
source_global: SEO settings
source_content: Content
source_default: Site default
no_url: This language has no address yet. Fill in its slug and save.
placeholder:
title: The content's title
description: The content's own description or excerpt
site: The site name
image:
invalid: The file must be a JPEG, PNG, GIF or WebP image.
too_big: The image may not be larger than 10 MB.
url_invalid: The image must be a path or an http(s) address.
forbidden: You may not upload SEO images.
snippet:
action: Check duplicates
invalid: The preview request is not valid.
redirects:
auto_created: The address changed, so a 301 from “:old” to “:new” was created. :count earlier redirects now point straight to the new address.
loop: "This redirect would create a loop: :path. Nothing was saved."
chain_notice: "Saved, but this redirect is part of a chain: :path. Visitors take :count hops. Point “:source” straight to “:final”."
target_required: "Enter the address to redirect to, or choose 410 Gone."
target_gone: "A 410 Gone rule sends visitors nowhere. Clear the target, or choose 301 or 302."
target_invalid: "Enter a path starting with / or a full http(s) address."
regex_invalid: "This is not a valid regular expression: :error"
source_invalid: "Start the address with /. Use * only in a pattern."
source_taken: "Another redirect already uses this address and match."