Translate updates page

This commit is contained in:
Justin Edmund 2023-01-31 20:30:02 -08:00
parent 64438ccb45
commit a22313d137
4 changed files with 217 additions and 162 deletions

View file

@ -7,10 +7,30 @@ import ChangelogUnit from '~components/ChangelogUnit'
import './index.scss'
interface Props {}
const UpdatesPage: React.FC<Props> = (props: Props) => {
const UpdatesPage = () => {
const { t: common } = useTranslation('common')
const { t: updates } = useTranslation('updates')
const versionUpdates = {
'1.0.0': 5,
'1.0.1': 4,
'1.1.0': {
updates: 10,
bugs: 2,
images: [
'remix',
'unauth',
'transcendence',
'accessories',
'mastery',
'mechanics',
'rare',
'urls',
'nav',
'toasts',
],
},
}
function image(
alt: string,
@ -29,6 +49,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
return <img alt={alt} src={fallback} srcSet={sizes} />
}
return (
<div className="Updates PageContent">
<h1>{common('about.segmented_control.updates')}</h1>
@ -39,153 +60,28 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
<div className="Contents">
<section>
<h2>New features</h2>
<h2>{updates('labels.features')}</h2>
<ul className="Notes">
<li>
{image(
'Remix parties',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'remix',
'jpg'
)}
<h3>Remix parties</h3>
<p>
See a team you want to try but don&apos;t have Yatima? Now you
can remix teams from other users to showcase substitutes, swap
for items you have, or just give it your own flavor.
</p>
</li>
<li>
{image(
'Edit parties without an account',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'unauth',
'jpg'
)}
<h3>Accountless team editing</h3>
<p>
Now you can edit parties you create later on, even if you
don&apos;t make an account. You still won&apos;t have a
profile, so make sure to bookmark them!
</p>
</li>
<li>
{image(
'Transcendence',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'transcendence',
'jpg'
)}
<h3>Transcendence</h3>
<p>
Now you can set the transcendence stage for Eternals and
select summons (namely, Bahamut).
</p>
</li>
<li>
{image(
'Shields and Manatura',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'accessories',
'jpg'
)}
<h3>Shields and Manatura</h3>
<p>
When using Paladin or Manadiver, you can set their respective
Shield or Manatura from the button next to the main character.
</p>
</li>
<li>
{image(
'Character Mastery',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'mastery',
'jpg'
)}
<h3>Character Mastery</h3>
<p>
You can now add individual values for your character&apos;s
rings, earrings, and awakenings. Make sure to set your
Perpetuity Rings!
</p>
</li>
<li>
{image(
'Updated team mechanics',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'mechanics',
'jpg'
)}
<h3>Updated team mechanics</h3>
<p>Sorry, each party is only big enough for one Beelzebub.</p>
</li>
<li>
{image(
'R Characters',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'rare',
'jpg'
)}
<h3>R Characters</h3>
<p>
R Characters have been added to the database for your
memProving Grounds compositions.
</p>
</li>
<li>
{image(
'Unique URLs for team tabs',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'urls',
'jpg'
)}
<h3>Unique URLs for team tabs</h3>
<p>
You can now link to individual tabs directly. The site will do
it for you when you copy a URL, or you can append{' '}
<code>/characters</code>, <code>/weapons</code> or{' '}
<code>/summons</code> manually.
</p>
</li>
<li>
{image(
'Redesigned navigation',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'nav',
'jpg'
)}
<h3>Redesigned navigation</h3>
<p>
The top-navigation has been slightly redesigned. Click the
party name to copy its URL!
</p>
</li>
<li>
{image(
'Update toasts',
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
'toasts',
'jpg'
)}
<h3>Update toasts</h3>
<p>
The site will now show an update in the bottom-right corner
when new features or content is added.
</p>
</li>
{[...Array(versionUpdates['1.1.0'].updates)].map((e, i) => (
<li>
{image(
updates(`versions.1.1.0.features.${i}.title`),
`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/updates`,
versionUpdates['1.1.0'].images[i],
'jpg'
)}
<h3>{updates(`versions.1.1.0.features.${i}.title`)}</h3>
<p>{updates(`versions.1.1.0.features.${i}.blurb`)}</p>
</li>
))}
</ul>
</section>
<section>
<h2>Bug fixes</h2>
<ul className="Bugs">
<li>
Fixed a bug that caused users to be logged out whenever they
restarted their browser
</li>
<li>
Fixed a bug that caused Dark Opus weapons to permanently
disappear when adding them to a party that already had one
</li>
{[...Array(versionUpdates['1.1.0'].bugs)].map((e, i) => (
<li>{updates(`versions.1.1.0.bugs.${i}`)}</li>
))}
</ul>
</section>
</div>
@ -197,7 +93,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
<div className="Contents">
<section className="characters">
<h4>New characters</h4>
<h4>{updates('labels.characters')}</h4>
<div className="items">
<ChangelogUnit name="Amelia" id="3040444000" type="character" />
<ChangelogUnit
@ -208,7 +104,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
</section>
<section className="weapons">
<h4>New weapons</h4>
<h4>{updates('labels.weapons')}</h4>
<div className="items">
<ChangelogUnit
name="Shining Silver"
@ -231,7 +127,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
<div className="Contents">
<section className="characters">
<h4>Updated characters</h4>
<h4>{updates('labels.uncaps')}</h4>
<div className="items">
<ChangelogUnit
name="Shiva"
@ -249,10 +145,9 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
<time>2023/01/08</time>
</div>
<ul className="Bare Contents">
<li>Extra party fields: Full Auto, Clear Time, and more</li>
<li>Support for Youtube short URLs</li>
<li>Responsive grids and lots of other mobile fixes</li>
<li>Many other bug fixes</li>
{[...Array(versionUpdates['1.0.1'])].map((e, i) => (
<li>{updates(`versions.1.0.1.features.${i}`)}</li>
))}
</ul>
</section>
<section className="Content Version" data-version="2022-12L">
@ -262,7 +157,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
<div className="Contents">
<section className="characters">
<h4>New characters</h4>
<h4>{updates('labels.characters')}</h4>
<div className="items">
<ChangelogUnit
name="Michael (Grand)"
@ -278,7 +173,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
</section>
<section className="weapons">
<h4>New weapons</h4>
<h4>{updates('labels.weapons')}</h4>
<div className="items">
<ChangelogUnit
name="Crimson Scale"
@ -290,7 +185,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
</section>
<section className="summons">
<h4>New summons</h4>
<h4>{updates('labels.summons')}</h4>
<div className="items">
<ChangelogUnit name="Yatima" id="2040417000" type="summon" />
</div>
@ -304,7 +199,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
<div className="Contents">
<section className="characters">
<h4>New characters</h4>
<h4>{updates('labels.characters')}</h4>
<div className="items">
<ChangelogUnit
name="Charlotta (Grand)"
@ -315,7 +210,7 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
</div>
</section>
<section className="weapons">
<h4>New weapons</h4>
<h4>{updates('labels.weapons')}</h4>
<div className="items">
<ChangelogUnit
name="Claíomh Solais Díon"
@ -337,11 +232,9 @@ const UpdatesPage: React.FC<Props> = (props: Props) => {
<time>2022/12/26</time>
</div>
<ul className="Bare Contents">
<li>First release!</li>
<li>You can embed Youtube videos now</li>
<li>Better clicking - right-click and open in a new tab</li>
<li>Manually set dark mode in Account Settings</li>
<li>Lots of bugs squashed</li>
{[...Array(versionUpdates['1.0.0'])].map((e, i) => (
<li>{updates(`versions.1.0.0.features.${i}`)}</li>
))}
</ul>
</section>
</div>

View file

@ -165,7 +165,7 @@ export const getServerSideProps = async ({ req, res, locale, query }: { req: Nex
// Fetch and organize raids
return {
props: {
...(await serverSideTranslations(locale, ['common', 'about'])),
...(await serverSideTranslations(locale, ['common', 'about', 'updates'])),
// Will be passed to the page component as props
},
}

View file

@ -0,0 +1,81 @@
{
"labels": {
"characters": "New characters",
"weapons": "New weapons",
"summons": "New summons",
"uncaps": "New uncaps",
"features": "New features"
},
"events": {
"legfest": "Legend Festival",
"flash": "Flash Gala",
"uncap": "Uncap"
},
"versions": {
"1.1.0": {
"features": [
{
"title": "Remix parties",
"blurb": "See a team you want to try but don't have Yatima? Now you can remix teams from other users to showcase substitutes, swap for items you have, or just give it your own flavor."
},
{
"title": "Accountless team editing",
"blurb": "Now you can edit parties you create later on, even if you don't make an account. You still won't have a profile, so make sure to bookmark them!"
},
{
"title": "Transcendence",
"blurb": "Now you can set the transcendence stage for Eternals and select summons (namely, Bahamut)."
},
{
"title": "Shields and Manatura",
"blurb": "When using Paladin or Manadiver, you can set their respective Shield or Manatura from the button next to the main character."
},
{
"title": "Character Mastery",
"blurb": "You can now add individual values for your character's rings, earrings, and awakenings. Make sure to set your Perpetuity Rings!"
},
{
"title": "Updated team mechanics",
"blurb": "Sorry, each party is only big enough for one Beelzebub."
},
{
"title": "R Characters",
"blurb": "R Characters have been added to the database for your mem—Proving Grounds compositions."
},
{
"title": "Unique URLs for team tabs",
"blurb": "You can now link to individual tabs directly. The site will do it for you when you copy a URL, or you can append /characters, /weapons or /summons manually."
},
{
"title": "Redesigned navigation",
"blurb": "The top-navigation has been slightly redesigned. Click the party name to copy its URL!"
},
{
"title": "Update toasts",
"blurb": "The site will now show an update in the bottom-right corner when new features or content is added."
}
],
"bugs": [
"Fixed a bug that caused users to be logged out whenever they restarted their browser",
"Fixed a bug that caused Dark Opus weapons to permanently disappear when adding them to a party that already had one"
]
},
"1.0.1": {
"features": [
"Extra party fields: Full Auto, Clear Time, and more",
"Support for Youtube short URLs",
"Responsive grids and lots of other mobile fixes",
"Many other bug fixes"
]
},
"1.0.0": {
"features": [
"First release!",
"You can embed Youtube videos now",
"Better click behavior: right-click to open in a new tab",
"Manually set dark mode in Account Settings",
"Lots of bugs squashed"
]
}
}
}

View file

@ -0,0 +1,81 @@
{
"labels": {
"characters": "新キャラクター",
"weapons": "新武器",
"summons": "新召喚石",
"uncaps": "新上限解放",
"features": "新機能"
},
"events": {
"legfest": "レジェンドフェス",
"flash": "グランデフェス",
"uncap": "上限解放"
},
"versions": {
"1.1.0": {
"features": [
{
"title": "編成をリミックス",
"blurb": "見つけた編成をリミックスができるようになりました。編成をリミックスしたら、アイテムの代用を入れたり、自分の感想で作り直したりすることができます。"
},
{
"title": "アカウントなし編成改正",
"blurb": "登録しなくても作成した編成を後で改正することができるようになりました。プロフィールはまだないので是非URLをブックマークしてください"
},
{
"title": "限界超越",
"blurb": "十天衆、またはバハムートの限界超越レベルを入力することができるようになりました。"
},
{
"title": "盾やマナベリ装備可能",
"blurb": "ジョブはパラディンかマナダイバーの時、主人公の左にあるのボタンで盾やマナベリを装備できるようになりました。"
},
{
"title": "キャラのリミットボーナス",
"blurb": "キャラクターの指輪・耳飾り・覚醒のボーナスを設定できるようになりました。久遠の指輪も設定しましょう!"
},
{
"title": "編成ルール擁護",
"blurb": "編成のキャラクター・武器・召喚石の制限を実施されました。"
},
{
"title": "Rキャラ追加",
"blurb": "色々のコンテンツで使用しそうなのでRキャラが追加されました。"
},
{
"title": "編成タブごとのURL",
"blurb": "編成のタブに直接のリンクを作れるようになりました。URLをコピーする時にも直接のリンクになります。"
},
{
"title": "トップナビのリニューアル",
"blurb": "トップナビゲーションがちょっとリニューアルされました。編成名をクリックするとURLをコピーできます。"
},
{
"title": "アップデート告知",
"blurb": "サイトのアップデートの時に右下に告知が表示するようになりました。"
}
],
"bugs": [
"ブラウザを再起動するとログアウトしてしまう不具合を修正",
"終末武器をすでに装備している編成に追加すると、永久に消えてしまう不具合を修正"
]
},
"1.0.1": {
"features": [
"編成にフルオート、討伐時間などを入力できるようになりました",
"YouTubeの短いURLを入力できるようになりましたSupport for Youtube short URLs",
"モバイル向けのビジュアルバグを多め修正",
"その他のバグを多め修正"
]
},
"1.0.0": {
"features": [
"初アップデート!",
"YouTubeの動画を埋め込めるようになりました",
"右クリックで新しいタブでいろいろのリンクを開けるようになりました",
"アカウント設定でダークモードが設定するようになりました",
"その他のバグを多め修正"
]
}
}
}