Skip to content

Commit 5109507

Browse files
committed
refactor: migrate to new translation syntax
1 parent 5e01735 commit 5109507

35 files changed

+1012
-1044
lines changed

.github/workflows/i18n.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: i18n
2+
3+
on: push
4+
5+
permissions:
6+
contents: write
7+
pull-requests: write
8+
9+
jobs:
10+
i18n:
11+
name: update translations
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: checkout
15+
uses: actions/checkout@v4
16+
17+
- name: translation magic ✨
18+
uses: lingodotdev/lingo.dev@main
19+
with:
20+
api-key: ${{ secrets.LINGODOTDEV_API_KEY }}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ index.dev.mjs
2626
/vendor/**/tests/*
2727
/vendor/**/php4/*
2828
/vendor/getkirby/composer-installer
29+
i18n.cache

blueprints/fields/meta-group.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,33 @@
11
type: group
22
fields:
3-
metaHeadline:
4-
label: meta-headline
3+
_metaHeadline:
4+
label: seo.fields.meta.headline
55
type: headline
66
numbered: false
77
metaTitle:
8-
label: title-overwrite
8+
label: seo.fields.titleOverwrite.label
99
type: text
10-
placeholder: '{{ page.title }}'
10+
placeholder: "{{ page.title }}"
1111
metaTemplate:
12-
label: meta-title-template
12+
label: seo.fields.metaTitleTemplate.label
1313
type: text
14-
help: meta-title-template-help
14+
help: seo.fields.metaTitleTemplate.help
1515
width: 2/3
16-
placeholder: '{{ page.metadata.metaTemplate }}'
16+
placeholder: "{{ page.metadata.metaTemplate }}"
1717
useTitleTemplate:
18-
label: use-title-template
18+
label: seo.fields.useTitleTemplate.label
1919
type: toggle
20-
help: use-title-template-help
20+
help: seo.fields.useTitleTemplate.help
2121
width: 1/3
2222
default: true
2323
text:
24-
- "{{ t('use-title-template-no') }}"
25-
- "{{ t('use-title-template-yes') }}"
24+
- "{{ t('seo.fields.useTitleTemplate.no') }}"
25+
- "{{ t('seo.fields.useTitleTemplate.yes') }}"
2626
metaDescription:
27-
label: meta-description
27+
label: seo.fields.metaDescription.label
2828
type: textarea
29-
help: meta-description-help
30-
placeholder: '{{ page.metadata.metaDescription }}'
29+
help: seo.fields.metaDescription.help
30+
placeholder: "{{ page.metadata.metaDescription }}"
3131
buttons: false
32-
seoLine1:
32+
_seoLine1:
3333
type: line

blueprints/fields/og-group.yml

Lines changed: 22 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,42 @@
11
type: group
22
fields:
3-
ogHeadline:
4-
label: og-headline
3+
_ogHeadline:
4+
label: seo.fields.og.headline
55
type: headline
66
numbered: false
7-
help: global-og-headline-help
7+
help: seo.site.og.headline.help
88
ogTemplate:
9-
label: og-title-template
9+
label: seo.fields.ogTitleTemplate.label
1010
type: text
1111
width: 2/3
12-
help: meta-title-template-help
13-
placeholder: '{{ page.metadata.ogTemplate }}'
12+
help: seo.fields.metaTitleTemplate.help
13+
placeholder: "{{ page.metadata.ogTemplate }}"
1414
useOgTemplate:
15-
label: use-title-template
15+
label: seo.fields.useTitleTemplate.label
1616
type: toggle
17-
help: use-title-template-help
17+
help: seo.fields.useTitleTemplate.help
1818
width: 1/3
1919
default: true
2020
text:
21-
- "{{ t('use-title-template-no') }}"
22-
- "{{ t('use-title-template-yes') }}"
21+
- "{{ t('seo.fields.useTitleTemplate.no') }}"
22+
- "{{ t('seo.fields.useTitleTemplate.yes') }}"
2323
ogDescription:
24-
label: og-description
24+
label: seo.fields.ogDescription.label
2525
type: textarea
2626
buttons: false
27-
placeholder: '{{ page.metadata.ogDescription }}'
27+
placeholder: "{{ page.metadata.ogDescription }}"
2828
ogImage:
29-
label: og-image
29+
label: seo.fields.ogImage.label
3030
extends: seo/fields/og-image
31-
empty: og-image-empty
32-
twitterCardType:
33-
label: twitter-card-type
34-
width: 1/2
35-
placeholder: "{{ t('default-select') }} {{ t(site.twitterCardType) }}"
31+
empty: seo.fields.ogImage.empty
32+
cropOgImage:
33+
label: seo.fields.cropOgImage.label
3634
type: select
35+
width: 1/1
36+
placeholder: "{{ t('seo.common.default') }} {{ site.cropOgImage.toBool ? t('seo.common.yes') : t('seo.common.no') }}"
3737
options:
38-
summary: "{{ t('summary') }}"
39-
summary_large_image: "{{ t('summary_large_image') }}"
40-
help: twitter-card-type-help
41-
twitterAuthor:
42-
label: twitter-author
43-
width: 1/2
44-
type: text
45-
before: '@'
46-
placeholder: '{{ page.metadata.twitterCreator }}'
47-
seoLine2:
38+
"true": "{{ t('seo.common.yes') }}"
39+
"false": "{{ t('seo.common.no') }}"
40+
help: seo.fields.cropOgImage.help
41+
_seoLine2:
4842
type: line

blueprints/fields/robots.php

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,18 @@
44
use Kirby\Toolkit\A;
55
use Kirby\Toolkit\Str;
66
use tobimori\Seo\Meta;
7+
use tobimori\Seo\Seo;
78

89
return function (App $kirby) {
9-
if (!$kirby->option('tobimori.seo.robots.active') || !$kirby->option('tobimori.seo.robots.pageSettings')) {
10+
if (!Seo::option('robots.active') || !Seo::option('robots.pageSettings')) {
1011
return [
1112
'type' => 'hidden'
1213
];
1314
}
1415

1516
$fields = [
16-
'robotsHeadline' => [
17-
'label' => 'robots',
17+
'_robotsHeadline' => [
18+
'label' => 'seo.fields.robots.label',
1819
'type' => 'headline',
1920
'numbered' => false,
2021
]
@@ -25,26 +26,26 @@
2526
$upper = Str::ucfirst($robots);
2627

2728
$fields["robots{$upper}"] = [
28-
'label' => "robots-{$robots}",
29+
'label' => "seo.fields.robots.{$robots}.label",
2930
'type' => 'toggles',
30-
'help' => "robots-{$robots}-help",
31+
'help' => "seo.fields.robots.{$robots}.help",
3132
'width' => '1/2',
3233
'default' => 'default',
3334
'reset' => false,
3435
'options' => [
3536
'default' => $page ?
3637
A::join([
37-
t('default-select'),
38-
$page->metadata()->get("robots{$upper}", ['fields'])->toBool() ? t('yes') : t('no')
38+
t('seo.common.default'),
39+
$page->metadata()->get("robots{$upper}", ['fields'])->toBool() ? t('seo.common.yes') : t('seo.common.no')
3940
], ' ')
40-
: t('default-select'),
41-
'true' => t('yes'),
42-
'false' => t('no'),
41+
: t('seo.common.default'),
42+
'true' => t('seo.common.yes'),
43+
'false' => t('seo.common.no'),
4344
]
4445
];
4546
}
4647

47-
$fields['seoLine3'] = [
48+
$fields['_seoLine3'] = [
4849
'type' => 'line'
4950
];
5051

blueprints/fields/site-robots.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
}
1111

1212
$fields = [
13-
'robotsHeadline' => [
14-
'label' => 'robots',
13+
'_robotsHeadline' => [
14+
'label' => 'seo.fields.robots.label',
1515
'type' => 'headline',
1616
'numbered' => false,
1717
]
@@ -24,21 +24,21 @@
2424
}
2525

2626
$fields["robots{$robots}"] = [
27-
'label' => "robots-{$robots}",
27+
'label' => "seo.fields.robots.{$robots}.label",
2828
'type' => 'toggles',
29-
'help' => "robots-{$robots}-help",
29+
'help' => "seo.fields.robots.{$robots}.help",
3030
'width' => '1/2',
3131
'default' => 'default',
3232
'reset' => false,
3333
'options' => [
34-
'default' => t('default-select') . ' ' . ($index ? t('yes') : t('no')),
35-
'true' => t('yes'),
36-
'false' => t('no'),
34+
'default' => t('seo.common.default') . ' ' . ($index ? t('seo.common.yes') : t('seo.common.no')),
35+
'true' => t('seo.common.yes'),
36+
'false' => t('seo.common.no'),
3737
]
3838
];
3939
}
4040

41-
$fields['seoLine3'] = [
41+
$fields['_seoLine3'] = [
4242
'type' => 'line'
4343
];
4444

blueprints/fields/social-media.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
* Allows social media account list to be filled by config options
66
*/
77

8-
use Kirby\Cms\App;
8+
use tobimori\Seo\Seo;
99

10-
return function (App $kirby) {
10+
return function () {
1111
$fields = [];
1212

13-
foreach ($kirby->option('tobimori.seo.socialMedia') as $key => $value) {
13+
foreach (Seo::option('socialMedia') as $key => $value) {
1414
if ($value) {
1515
$fields[$key] = [
1616
'label' => ucfirst($key),
@@ -22,9 +22,9 @@
2222
}
2323

2424
return [
25-
'label' => 'social-media-accounts',
25+
'label' => 'seo.fields.socialMediaAccounts.label',
2626
'type' => 'object',
27-
'help' => 'social-media-accounts-help',
27+
'help' => 'seo.fields.socialMediaAccounts.help',
2828
'fields' => $fields
2929
];
3030
};

blueprints/page.yml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
label: metadata-site
1+
label: seo.site.metadata.title
22
icon: search
33

44
columns:
@@ -9,18 +9,24 @@ columns:
99
ogGroup: seo/fields/og-group
1010
robots: seo/fields/robots
1111
metaInherit:
12-
label: inherit-settings
12+
label: seo.fields.inheritSettings.label
1313
type: multiselect
14-
help: inherit-settings-help
14+
help: seo.fields.inheritSettings.help
1515
options:
16-
metaTemplate: "{{ t('meta-title-template') }}"
17-
metaDescription: "{{ t('meta-description') }}"
18-
ogTemplate: "{{ t('og-title-template') }}"
19-
ogDescription: "{{ t('og-description') }}"
20-
ogImage: "{{ t('og-image') }}"
21-
twitterCardType: "{{ t('twitter-card-type') }}"
22-
twitterAuthor: "{{ t('twitter-author') }}"
23-
robots: '{{ t("robots") }}'
16+
metaTemplate:
17+
"*": seo.fields.metaTitleTemplate.label
18+
metaDescription:
19+
"*": seo.fields.metaDescription.label
20+
ogTemplate:
21+
"*": seo.fields.ogTitleTemplate.label
22+
ogDescription:
23+
"*": seo.fields.ogDescription.label
24+
ogImage:
25+
"*": seo.fields.ogImage.label
26+
cropOgImage:
27+
"*": seo.fields.cropOgImage.label
28+
robots:
29+
"*": seo.fields.robots.label
2430
sidebar:
2531
width: 5/12
2632
sticky: true

0 commit comments

Comments
 (0)