Skip to content

Commit 650dde2

Browse files
committed
docs: add multilingual documentation locales
1 parent a276f3a commit 650dde2

9 files changed

Lines changed: 3551 additions & 14 deletions

File tree

docs/_template/template.config.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,43 @@ export default {
2828
footerGroups: [
2929
{
3030
title: 'Learning Resources',
31+
i18n: 'common.navigation.learningResources',
3132
links: [
32-
{ label: 'Documentation', href: '/documentation' },
33+
{
34+
label: 'Documentation',
35+
i18n: 'common.navigation.documentation',
36+
routeId: 'documentation/index',
37+
href: '/documentation',
38+
},
3339
{
3440
label: 'Essentials Training',
41+
i18n: 'common.navigation.essentialsTraining',
3542
href: 'https://www.youtube.com/watch?v=mIr2XglV5nQ&list=PLpWvGP6yhJUgWNiz25vj__CArY9Z0O6ke&index=1',
3643
},
3744
],
3845
},
3946
{
4047
title: 'About Before Semicolon',
48+
i18n: 'common.navigation.aboutBeforeSemicolon',
4149
links: [
4250
{
4351
label: 'Open Source',
52+
i18n: 'common.navigation.openSource',
4453
href: 'https://github.com/beforesemicolon',
4554
},
4655
{
4756
label: 'Website',
57+
i18n: 'common.navigation.website',
4858
href: 'https://beforesemicolon.com/',
4959
},
5060
{
5161
label: 'Blog',
62+
i18n: 'common.navigation.blog',
5263
href: 'https://medium.com/before-semicolon',
5364
},
5465
{
5566
label: 'YouTube Channel',
67+
i18n: 'common.navigation.youtubeChannel',
5668
href: 'https://www.youtube.com/channel/UCrU33aw1k9BqTIq2yKXrmBw',
5769
},
5870
],

docs/locale/en.json

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,50 @@
2929
"index": "/"
3030
},
3131
"common": {
32+
"navigation": {
33+
"home": "Home",
34+
"content": "Content",
35+
"features": "Features",
36+
"code": "Code",
37+
"install": "Install",
38+
"documentation": "Documentation",
39+
"docs": "Docs",
40+
"learningResources": "Learning Resources",
41+
"essentialsTraining": "Essentials Training",
42+
"aboutBeforeSemicolon": "About Before Semicolon",
43+
"openSource": "Open Source",
44+
"website": "Website",
45+
"blog": "Blog",
46+
"youtubeChannel": "YouTube Channel"
47+
},
48+
"actions": {
49+
"editDoc": "edit this doc",
50+
"getStarted": "Get Started",
51+
"readDocs": "Read the Docs",
52+
"copy": "Copy",
53+
"copied": "Copied",
54+
"copyCode": "Copy code",
55+
"codeCopied": "Code copied",
56+
"commandCopied": "Command copied",
57+
"copyInstallCommand": "Copy {{manager}} install command",
58+
"previousExample": "Previous example",
59+
"nextExample": "Next example"
60+
},
61+
"accessibility": {
62+
"installationPackageManager": "Installation package manager",
63+
"goToSlide": "Go to slide {{number}}",
64+
"mobileMenu": {
65+
"open": "Open documentation menu",
66+
"close": "Close documentation menu"
67+
}
68+
},
69+
"labels": {
70+
"exampleUppercase": "EXAMPLE"
71+
},
72+
"footer": {
73+
"description": "A reactive HTML templating system for building dynamic UIs with pure JavaScript. No build step. No virtual DOM.",
74+
"copyright": "Copyright © 2026 Before Semicolon. All rights reserved."
75+
},
3276
"content": {
3377
"lifecycles": "Lifecycles",
3478
"examples": "Examples",
@@ -64,9 +108,9 @@
64108
"async_states_use_suspense": "Async states: use `suspense`",
65109
"deferred_lazy_rendering_use_visible": "Deferred/lazy rendering: use `visible`",
66110
"canonical_pages": "Canonical pages",
67-
"templating_templating_index_md": "[Templating](../templating/index.md)",
68-
"state_state_index_md": "[State](../state/index.md)",
69-
"utilities_utilities_index_md": "[Utilities](../utilities/index.md)",
111+
"templating_templating_index_md": "[Templating](./templating/index.md)",
112+
"state_state_index_md": "[State](./state/index.md)",
113+
"utilities_utilities_index_md": "[Utilities](./utilities/index.md)",
70114
"rules_for_agents": "Rules for agents",
71115
"prefer_the_narrowest_page_that_answers_the_task": "Prefer the narrowest page that answers the task.",
72116
"read_the_package_specific_page_before_editing_related_code": "Read the package-specific page before editing related code.",
@@ -162,7 +206,7 @@
162206
},
163207
"content": {
164208
"state_store": "State Store",
165-
"the_great_thing_about_markup_state_state_index_is_the_fact_that_it_is_a_standalone_api_that_work": "The great thing about Markup [state](../state/index) is the fact that it is a standalone API that works great witht the template itself.",
209+
"the_great_thing_about_markup_state_state_index_is_the_fact_that_it_is_a_standalone_api_that_work": "The great thing about Markup [state](../state/index.md) is the fact that it is a standalone API that works great witht the template itself.",
166210
"what_this_allows_you_to_do_is_manage_shared_global_state_away_from_the_component_and_inject_them": "What this allows you to do is manage shared/global state away from the component and inject them directly into the template or perform side effects where needed. All that without worrying about subcriptions and cleanups.",
167211
"create_a_state_store": "Create a state store",
168212
"take_for_example_this_todos_state_store": "Take for example this `todos` state store:",
@@ -317,7 +361,7 @@
317361
},
318362
"content": {
319363
"effect": "Effect",
320-
"the_effect_api_complements_the_state_index_api_by_providing_a_better_way_to_react_to_multiple_st": "The `effect` API complements the [state](./index) API by providing a better way to react to multiple state changes based on what you need to be executed.",
364+
"the_effect_api_complements_the_state_index_api_by_providing_a_better_way_to_react_to_multiple_st": "The `effect` API complements the [state](./index.md) API by providing a better way to react to multiple state changes based on what you need to be executed.",
321365
"the_state_api_allows_you_to_subscribe_to_changes_of_its_value": "The `state` API allows you to subscribe to changes of its value.",
322366
"this_is_great_if_you_want_to_perform_side_effects_related_to_a_single_state_to_perform_side_effe": "This is great if you want to perform side effects related to a single state. To perform side effects for multiple states you will need the `effect` API.",
323367
"effectunsubscriber": "EffectUnSubscriber",

0 commit comments

Comments
 (0)