Skip to content

I18n update #4

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 6 commits into
base: make-all-pages-client
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions i18n/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
const en = require("./translations.en.json");
const ar = require("./translations.ar.json");
const ca = require("./translations.ca.json");
const zh = require("./translations.zh.json");
const cs = require("./translations.cs.json");
const nl = require("./translations.nl.json");
const fr = require("./translations.fr.json");
const de = require("./translations.de.json");
const he = require("./translations.he.json");
const hu = require("./translations.hu.json");
const id = require("./translations.id.json");
const it = require("./translations.it.json");
const ja = require("./translations.ja.json");
const ko = require("./translations.ko.json");
const pl = require("./translations.pl.json");
const pt = require("./translations.pt.json");
const ro = require("./translations.ro.json");
const ru = require("./translations.ru.json");
const sk = require("./translations.sk.json");
const es = require("./translations.es.json");
const sv = require("./translations.sv.json");
const tr = require("./translations.tr.json");
const uk = require("./translations.uk.json");

const i18n = {
translations: {
en,
ar,
ca,
zh,
cs,
nl,
fr,
de,
he,
hu,
id,
it,
ja,
ko,
pl,
pt,
ro,
ru,
sk,
es,
sv,
tr,
uk,
},
defaultLang: "en",
useBrowserDefault: true,
languageDataStore: "localStorage",
};

module.exports = i18n;
1 change: 1 addition & 0 deletions i18n/translations.ar.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.ca.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.cs.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
150 changes: 150 additions & 0 deletions i18n/translations.en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
{
"home": {
"title": "An open source Flash Player emulator",
"intro": "Made to run natively on all modern operating systems and browsers, Ruffle brings Flash content back to life with no extra fuss.",
"safe": "Safe to use",
"safe-description": "{{safe}} - Using the guarantees of Rust and WASM, we avoid the security pitfalls Flash was known for.",
"easy": "Easy to install",
"easy-description": "{{easy}} - Whether you're a user or a website owner, we've made it as easy as possible to get up and running.",
"free": "Free and open source",
"free-description": "{{free}} - Licensed MIT/Apache 2.0, you're free to use Ruffle how you please!",
"alt-tag": "Person installing Ruffle"
},
"header": {
"about": "About Ruffle",
"downloads": "Downloads",
"compatibility": "Compatibility",
"contribute": "Get Involved",
"blog": "Blog",
"demo": "Demo",
"discord": "Discord",
"github": "GitHub"
},
"footer": {
"github": "GitHub",
"social-x": "X",
"tiktok": "TikTok",
"instagram": "Instagram",
"mastodon": "Mastodon",
"discord": "Discord",
"tagline": "Putting Flash back on the web"
},
"logo": {
"alt-tag": "Ruffle Logo"
},
"404": {
"not-found": "Page not found",
"not-found-description": "The requested page could not be found."
},
"installers": {
"windows-64-short-name": "Windows (64-bit)",
"windows-long-name": "Windows Executable",
"windows-32-short-name": "Windows (32-bit)",
"macos-short-name": "macOS",
"macos-long-name": "Mac Application",
"flatpak-short-name": "Flatpak",
"flatpak-long-name": "Flatpak App",
"linux-short-name": "Linux",
"linux-long-name": "Linux Executable",
"chrome-short-name": "Chrome",
"chrome-long-name": "Chrome Extension",
"edge-short-name": "Edge",
"edge-long-name": "Edge Extension",
"firefox-short-name": "Firefox",
"firefox-long-name": "Firefox Extension",
"safari-short-name": "Safari",
"safari-long-name": "Safari Extension",
"selfhosted-short-name": "Self Hosted",
"selfhosted-long-name": "Website Package",
"other-downloads": "Other Downloads"
},
"downloads": {
"version": "Version",
"desktop-app": "Desktop Application",
"desktop-app-description": "If you want to run Flash content on your computer without a browser in-between, we have native applications that will take full advantage of your GPU and system resources to get those extra frames when playing intense games.",
"browser-extension": "Browser Extension",
"browser-extension-description": "If you visit websites that have Flash content but aren't using Ruffle, or you want to ensure you're using the latest and greatest version of Ruffle on every website, then our browser extension is the perfect thing for you!",
"nightly-releases": "Nightly Releases",
"nightly-releases-description": "If none of the above are suitable for you, you can manually download the latest Nightly release. These are automatically built every day (approximately midnight UTC), unless there are no changes on that day. Older nightly releases are available on {{link}}.",
"web-package": "Web Package",
"web-package-description": "You can install Ruffle onto a website using one single line of code by using a CDN, no extra work required! It'll always stay up to date with the latest available version of Ruffle.",
"self-host-description": "If you'd like to host it yourself, you can grab {{link}} and upload it to your server. Then, include it on your page like so:",
"self-host-description-link": "the latest self-hosted package",
"advanced-usage-description": "For advanced usage, consult {{link}} for our JavaScript API and installation options.",
"advanced-usage-description-link": "our documentation",
"chrome-extension-alt": "Available in the Chrome Web Store",
"firefox-extension-alt": "Get the Add-On for Firefox",
"edge-extension-alt": "Get it from Microsoft for Edge"
},
"compatibility": {
"title": "ActionScript Compatibility",
"description": "The biggest factor in content compatibility is ActionScript; the language that powers interactivity in games and applications made with Flash. All Flash content falls in one of two categories, depending on which version of the language was used to create it.",
"tracking": "We track our progress in each AVM by splitting them up into two different areas:",
"language-description": "The {{language}} is the underlying virtual machine itself and the language concepts that it understands, like variables and classes and how they all interact together.",
"language": "Language",
"api-description": "The {{api}} is the underlying virtual machine itself and the language concepts that it understands, like variables and classes and how they all interact together.",
"api": "API",
"avm1-title": "AVM 1: ActionScript 1 & 2",
"avm1-description": "AVM 1 is the original ActionScript Virtual Machine. All movies made before Flash Player 9 (June 2006) will be made with AVM 1, and it remained supported & available to authors until the release of Flash Professional CC (2013), after which point content started moving to AVM 2.",
"avm1-support": "We believe that most AVM 1 content will work, but we are aware of some graphical inaccuracies and smaller bugs here and there. Please feel free to report any issues you find that are not present in the original Flash Player!",
"avm2-title": "AVM 2: ActionScript 3",
"avm2-description": "AVM 2 was introduced with Flash Player 9 (June 2006), to replace the earlier AVM 1. After the release of Flash Professional CC (2013), authors are required to use ActionScript 3 - making any movie made after that date very likely to fall under this category.",
"avm2-support": "Ruffle now has decent support for AVM 2, and it's our experience that most games will work well enough to be played. We're still rapidly improving in this area though, so bug reports about any broken content are always welcome!",
"weekly-contributions": "Weekly Contributions",
"done": "done",
"partial": "partially done",
"more": "More Info",
"commits-description": "{{commitNumber}} commits on the week of {{week}}",
"loading": "Loading...",
"alt-tag": "Person comparing Ruffle compatibility",
"avm2": {
"title": "ActionScript 3 API Progress",
"description": "ActionScript 3 contains many different methods and classes - not all of which is ultimately useful to every application. The majority of content only uses a small portion of the available API, so even if we aren't 100% \"complete\" across the entirely of AVM 2, we may have enough for that content to run completely fine.",
"classification": "On this page, we list every single ActionScript 3 API that exists but Ruffle does not yet 100% implement. We classify items into three different stages:",
"implemented": "Implemented",
"implemented-description": "{{implemented}} items are marked as \"Done\", and we believe they are fully functional. For brevity, we do not list completed items on this page.",
"partial": "Partial",
"partial-description": "{{partial}} items exist and are enough for most content to work, but are incomplete. A partial class may be missing items, or a method may just simply return a value without performing its intended function.",
"missing": "Missing",
"missing-description": "{{missing}} items do not exist at all in Ruffle yet, and trying to use them will give an error.",
"tree": "You can also visualize the progress {{link}}.",
"tree-link": "as a tree graph",
"top-level": "(Top Level)",
"package-level": "(Package Level)",
"hide": "Hide",
"show": "Show",
"missing-members": "Missing Members",
"done": "Done"
}
},
"contribute": {
"alt-tag": "Person thanking you",
"involved": "Get Involved",
"involved-description": "Ruffle is an entirely open source project, maintained by volunteers like you who just want to help preserve a slice of history. We rely on contributions of any kind to keep this project going, and absolutely would not have come as far as we have without the amazing support of our community who came together to make Ruffle happen. If you'd like to join them, there are many ways to help make Ruffle better than ever!",
"code": "Contribute code",
"code-description": "There's a few different codebases in couple of different languages, and we'd welcome any help to try and maintain and improve them.",
"rust": "The actual {{emulator}} itself, and all of the {{desktop-player}}, is written in Rust.",
"emulator": "emulator",
"desktop-player": "desktop player",
"typescript": "The {{web-player}}, the {{extension}} and our {{website}} is written in TypeScript.",
"web-player": "web player",
"extension": "extension",
"website": "website",
"getting-started": "Check out our {{guidelines}} for information on how to start, and come join our {{discord}} if you need help!",
"guidelines": "Contributing Guidelines",
"test": "Test content",
"test-description": "Arguably more important than contributing code is testing Ruffle out. Go install Ruffle and try out your favourite games and animations. Look for any difference from the official Flash Player, and report your findings to us.",
"report-bugs": "If you find any bugs, changes of behaviour, performance issues or any visual differences then please report those to our {{bug-tracker}}.",
"bug-tracker": "our bug tracker",
"working": "If it runs flawlessly, come share the good news on {{our-discord}}!",
"our-discord": "our Discord",
"sponsor": "Sponsor the project",
"sponsor-description": "If you are able and willing to, we welcome any and all financial support to help us fund the project going forward. With your help, we can afford to spend more time dedicated to Ruffle, as well as pay for expenses such as build servers & hosting. We accept donations and sponsorships of any kind, big or small, through Open Source Collective 501(c)(6).",
"sponsor-info": "For more information, or to view the options available for sponsoring the project, please visit {{opencollective}}.",
"opencollective": "our Open Collective page",
"spread-the-word": "Spread the word!",
"spread-the-word-description": "Is your favourite Flash-based site shutting down? Let them know they can add one JavaScript file and keep it running! Feeling nostalgic for some old Flash games? Go play some on Newgrounds with Ruffle installed, and tell your friends about it! Maybe you're a streamer and looking for some silly content? There's literally decades worth, now unlocked and accessible once more.",
"diamond": "Diamond Sponsors",
"diamond-description": "We'd like to thank all of our sponsors, who help make this project possible. Below are our Diamond level sponsors, without whom we would not be here. Thank you."
}
}
1 change: 1 addition & 0 deletions i18n/translations.es.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.fr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.he.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.hu.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.id.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.it.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.ja.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.ko.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.nl.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.pl.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.pt.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.ro.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.ru.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.sk.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.sv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.tr.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.uk.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions i18n/translations.zh.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
26 changes: 25 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"react": "^18",
"react-device-detect": "^2.2.3",
"react-dom": "^18",
"recharts": "^2.15.3"
"recharts": "^2.15.3",
"ruffle-next-export-i18n": "^3.0.0"
},
"devDependencies": {
"@eslint/eslintrc": "^3.3.1",
Expand Down
9 changes: 6 additions & 3 deletions src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { MantineProvider, ColorSchemeScript } from "@mantine/core";
import { cssResolver, theme } from "@/theme";
import { Header } from "@/components/header";
import { FooterSocial } from "@/components/footer";
import { Suspense } from "react";

export const metadata: Metadata = {
title: "Ruffle - Flash Emulator",
Expand Down Expand Up @@ -41,9 +42,11 @@ export default function RootLayout({
</head>
<body>
<MantineProvider theme={theme} cssVariablesResolver={cssResolver}>
<Header />
{children}
<FooterSocial />
<Suspense>
<Header />
{children}
<FooterSocial />
</Suspense>
</MantineProvider>
</body>
</html>
Expand Down
Loading