1つのプロジェクト。4つのSDK。同じ歩調で翻訳。

同じフレーズを langsys-js-react、langsys-js-vue、langsys-js-svelte、そしてそれらすべてがラップしている素の langsys-js-typescript ベースSDKでレンダリングし、1つの共有Langsysプロジェクトを読み込みます。ロケールを切り替えると、すべてのパネルが一斉に更新されるのを確認できます。

メッセージ 3

同じフレーズを3つの記述方法で比較できます。違いは各パネルの下にあるコードだけです。メッセージを 1 に進めると、すべてのバインディングが一度に再描画されます。文はフラットな形で書かれています。Langsys が翻訳時に各ロケールの複数形を生成するため、ブランチを自分で書く必要はありません。

Reactlangsys-js-react

Hello, Sarah!

You have 3 new messages.

const t = useT();
const count = useSignal(countStore);

<p>{t('Hello, {name}!', 'LearnDemo', { name: 'Sarah' })}</p>
<p>{t('You have {count} new messages.', 'LearnDemo', { count })}</p>
selected en-US · loaded —
Vuelangsys-js-vue

Hello, Sarah!

You have 3 new messages.

const t = useT();
const count = useSignal(countStore);

<p>{{ t('Hello, {name}!', 'LearnDemo', { name: 'Sarah' }) }}</p>
<p>{{ t('You have {count} new messages.', 'LearnDemo', { count }) }}</p>
selected en-US · loaded —
Svelte langsys-js-svelte

Hello, Sarah!

You have 3 new messages.

import { t } from 'langsys-js-svelte';

<p>{$t('Hello, {name}!', 'LearnDemo', { name: 'Sarah' })}</p>
<p>{$t('You have {count} new messages.', 'LearnDemo', { count: $countStore })}</p>
selected en-US · loaded —
TS langsys-js-typescript

import { t, tSignal } from 'langsys-js-typescript';

tSignal.subscribe(() => {
  hello.textContent = t('Hello, {name}!', 'LearnDemo', { name: 'Sarah' });
  messages.textContent = t('You have {count} new messages.', 'LearnDemo', { count });
});
selected — · loaded —

各パネルのブリッジ: useSignal(React) · useSignal(Vue) · $store(Svelte — アダプター不要) · signal.subscribe()(バニラ)。

フレームワークを選ぶ

基盤となるSDKは共通です。各ページでは、ライブデモとともに、それぞれのバインディングの作法を紹介します。

Langsys は初めてですか?コンセプトでは、このデモの土台となる考え方を説明しています。フレーズがキーであること、ロケールストア、そして読み取り専用キーがブラウザで安全な理由です。

ドキュメントとラーニングセンターを検索