Skip to content
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

docs: Add Japanese docs. #507

Closed
wants to merge 96 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
96 commits
Select commit Hold shift + click to select a range
0193a3b
Translate overview.md via GitLocalize
coji Feb 29, 2024
8bb707f
Merge pull request #1 from coji/gitlocalize-28488
coji Feb 29, 2024
dd69b0e
Translate README.md via GitLocalize
coji Feb 29, 2024
e8ff32f
Translate overview.md via GitLocalize
coji Feb 29, 2024
01c6ffd
Translate tutorial.md via GitLocalize
coji Feb 29, 2024
d2c9226
Merge pull request #2 from coji/gitlocalize-28489
coji Feb 29, 2024
e121423
Merge pull request #3 from coji/gitlocalize-28490
coji Feb 29, 2024
fc345e7
Merge pull request #4 from coji/gitlocalize-28491
coji Feb 29, 2024
3fa118d
Translate tutorial.md via GitLocalize
coji Feb 29, 2024
892ba6e
Merge pull request #5 from coji/gitlocalize-28492
coji Feb 29, 2024
cc452cd
Translate tutorial.md via GitLocalize
coji Mar 1, 2024
d0dcd3d
Merge pull request #6 from coji/gitlocalize-28496
coji Mar 1, 2024
e030a21
Translate upgrading-v1.md via GitLocalize
coji Mar 1, 2024
2ac1124
Merge pull request #7 from coji/gitlocalize-28531
coji Mar 1, 2024
24e42d7
Merge branch 'edmundhung:main' into feat/guide-in-ja-JP
coji Mar 1, 2024
9c8e887
fix: tab to space
coji Mar 1, 2024
5acc7df
Translate validation.md via GitLocalize
coji Mar 1, 2024
edd48be
Merge pull request #8 from coji/gitlocalize-28535
coji Mar 1, 2024
863e3c2
Translate validation.md via GitLocalize
coji Mar 1, 2024
44dcbf0
Merge pull request #9 from coji/gitlocalize-28536
coji Mar 1, 2024
ea42116
convert tab to 2 spaces.
coji Mar 1, 2024
74cfc80
Translate complex-structures.md via GitLocalize
coji Mar 1, 2024
9a2b0c5
Merge pull request #10 from coji/gitlocalize-28537
coji Mar 1, 2024
4a87049
Translate intent-button.md via GitLocalize
coji Mar 1, 2024
c11ffb5
Merge pull request #11 from coji/gitlocalize-28538
coji Mar 1, 2024
35ca913
Translate accessibility.md via GitLocalize
coji Mar 1, 2024
5a325f1
Merge pull request #12 from coji/gitlocalize-28539
coji Mar 1, 2024
009cb1d
Translate checkbox-and-radio-group.md via GitLocalize
coji Mar 1, 2024
3929f40
Merge pull request #13 from coji/gitlocalize-28540
coji Mar 1, 2024
65cb677
Translate file-upload.md via GitLocalize
coji Mar 1, 2024
f9689c2
Merge pull request #14 from coji/gitlocalize-28541
coji Mar 1, 2024
55a970f
Translate nextjs.md via GitLocalize
coji Mar 1, 2024
340f322
Translate remix.md via GitLocalize
coji Mar 1, 2024
2b8ba18
Merge pull request #16 from coji/gitlocalize-28543
coji Mar 1, 2024
237eedc
Merge pull request #15 from coji/gitlocalize-28542
coji Mar 1, 2024
34a61f1
Fix typos and improve readability in Japanese documentation
coji Mar 1, 2024
b8c9c1b
Translate ui-libraries.md via GitLocalize
coji Mar 2, 2024
db631e3
Merge pull request #17 from coji/gitlocalize-28555
coji Mar 2, 2024
25f32a6
Translate useForm.md via GitLocalize
coji Mar 2, 2024
1981026
Translate getFormProps.md via GitLocalize
coji Mar 2, 2024
e456f4a
Merge pull request #19 from coji/gitlocalize-28557
coji Mar 2, 2024
a3f6fae
Merge pull request #18 from coji/gitlocalize-28556
coji Mar 2, 2024
1f7d767
Translate getInputProps.md via GitLocalize
coji Mar 2, 2024
491bfbd
Merge pull request #20 from coji/gitlocalize-28558
coji Mar 2, 2024
87bcd76
Translate getTextareaProps.md via GitLocalize
coji Mar 2, 2024
470ecd3
Merge pull request #21 from coji/gitlocalize-28559
coji Mar 2, 2024
b001133
Translate getSelectProps.md via GitLocalize
coji Mar 2, 2024
95045cd
Merge pull request #22 from coji/gitlocalize-28560
coji Mar 2, 2024
9ad6990
Translate parseWithZod.md via GitLocalize
coji Mar 2, 2024
ab0ccdb
Merge pull request #23 from coji/gitlocalize-28561
coji Mar 2, 2024
146461a
Fix typos and formatting in Japanese documentation
coji Mar 2, 2024
b135740
Translate tutorial.md via GitLocalize
coji Mar 2, 2024
85b202e
Merge pull request #24 from coji/gitlocalize-28562
coji Mar 2, 2024
5f7e342
Translate getZodConstraint.md via GitLocalize
coji Mar 2, 2024
d36595f
Merge pull request #25 from coji/gitlocalize-28563
coji Mar 2, 2024
f2766d8
Translate conformZodMessage.md via GitLocalize
coji Mar 2, 2024
1b8fef5
Merge pull request #26 from coji/gitlocalize-28564
coji Mar 2, 2024
d177a71
Translate getFieldsetProps.md via GitLocalize
coji Mar 2, 2024
41cf573
Merge pull request #27 from coji/gitlocalize-28565
coji Mar 2, 2024
ac4b587
Translate getCollectionProps.md via GitLocalize
coji Mar 2, 2024
1a9a119
Merge pull request #28 from coji/gitlocalize-28566
coji Mar 2, 2024
2d9c4bf
Translate FormProvider.md via GitLocalize
coji Mar 2, 2024
ba8293a
Merge pull request #29 from coji/gitlocalize-28567
coji Mar 2, 2024
35fce07
Merge branch 'edmundhung:main' into feat/guide-in-ja-JP
coji Mar 2, 2024
f4a9c08
Translate parseWithZod.md via GitLocalize
coji Mar 2, 2024
de19348
Merge pull request #30 from coji/gitlocalize-28568
coji Mar 2, 2024
5edfc54
Translate tutorial.md via GitLocalize
coji Mar 2, 2024
d4bd3a6
Merge pull request #31 from coji/gitlocalize-28569
coji Mar 2, 2024
a318deb
Translate FormStateInput.md via GitLocalize
coji Mar 2, 2024
ad3de15
Merge pull request #32 from coji/gitlocalize-28570
coji Mar 2, 2024
20ccc79
Fix typos and formatting in Japanese API documentation
coji Mar 2, 2024
df3d529
Translate useField.md via GitLocalize
coji Mar 2, 2024
e0aab53
Merge pull request #33 from coji/gitlocalize-28571
coji Mar 2, 2024
03a3c23
Translate useInputControl.md via GitLocalize
coji Mar 2, 2024
0e3968c
Merge pull request #34 from coji/gitlocalize-28572
coji Mar 2, 2024
897982f
Translate useFormMetadata.md via GitLocalize
coji Mar 2, 2024
b98777f
Merge pull request #35 from coji/gitlocalize-28573
coji Mar 2, 2024
ea9363c
Translate getYupConstraint.md via GitLocalize
coji Mar 2, 2024
724ebee
Translate parseWithYup.md via GitLocalize
coji Mar 2, 2024
e076151
Translate validitystate.md via GitLocalize
coji Mar 2, 2024
c4544ba
Merge pull request #38 from coji/gitlocalize-28576
coji Mar 2, 2024
1a48710
Merge pull request #37 from coji/gitlocalize-28575
coji Mar 2, 2024
4384ff0
Merge pull request #36 from coji/gitlocalize-28574
coji Mar 2, 2024
fd7c8ce
Translate tutorial.md via GitLocalize
coji Mar 2, 2024
2cb5db1
Merge pull request #39 from coji/gitlocalize-28577
coji Mar 2, 2024
c9b7a51
Fix typos and formatting in Japanese API documentation
coji Mar 2, 2024
deb1681
Translate README.md via GitLocalize
coji Mar 2, 2024
26d1328
Merge pull request #40 from coji/gitlocalize-28578
coji Mar 2, 2024
baa22bc
Update intent button label
coji Mar 2, 2024
e4ef5bf
Update documentation links
coji Mar 2, 2024
4407038
Update integration descriptions in Japanese documentation
coji Mar 2, 2024
76d769f
Fix typo in getCollectionProps link
coji Mar 2, 2024
791b01d
Update FormData link to Japanese documentation
coji Mar 2, 2024
8269410
Fix typos in Japanese README and API documentation
coji Mar 2, 2024
4808d17
English version was changed incorrectly and will be reverted.
coji Mar 3, 2024
a4bcd3e
Update login form example integration with Remix
coji Mar 5, 2024
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
38 changes: 38 additions & 0 deletions docs/ja/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Documentation

- はじめに
- [概要](./overview.md)
- [チュートリアル](./tutorial.md)
- [v1 へのアップグレード](./upgrading-v1.md)
- ガイド
- [バリデーション](./validation.md)
- [ネストされたオブジェクトと配列](./complex-structures.md)
- [インテントボタン](./intent-button.md)
- [チェックボックスとラジオグループ](./checkbox-and-radio-group.md)
- [ファイルのアップロード](./file-upload.md)
- [アクセシビリティ](./accessibility.md)
- インテグレーション
- [UI ライブラリ](./integration/ui-libraries.md)
- [Remix](./integration/remix.md)
- [Next.js](./integration/nextjs.md)
- API リファレンス
- @conform-to/react
- [useForm](./api/react/useForm.md)
- [useField](./api/react/useField.md)
- [useFormMetadata](./api/react/useFormMetadata.md)
- [useInputControl](./api/react/useInputControl.md)
- [FormProvider](./api/react/FormProvider.md)
- [FormStateInput](./api/react/FormStateInput.md)
- [getFormProps](./api/react/getFormProps.md)
- [getFieldsetProps](./api/react/getFieldsetProps.md)
- [getInputProps](./api/react/getInputProps.md)
- [getSelectProps](./api/react/getSelectProps.md)
- [getTextareaProps](./api/react/getTextareaProps.md)
- [getCollectionProps](./api/react/getCollectionProps.md)
- @conform-to/yup
- [parseWithYup](./api/yup/parseWithYup.md)
- [getYupConstraint](./api/yup/getYupConstraint.md)
- @conform-to/zod
- [parseWithZod](./api/zod/parseWithZod.md)
- [getZodConstraint](./api/zod/getZodConstraint.md)
- [conformZodMessage](./api/zod/conformZodMessage.md)
183 changes: 183 additions & 0 deletions docs/ja/accessibility.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,183 @@
# アクセシビリティ

フォームをアクセシブルにするには、各フォーム要素を適切な属性で設定する必要がありますが、 Conform がその手助けをします。

## Aria 属性

アクセシビリティに関しては、通常、異なる要素を関連付けるために一意の ID が必要になる Aria 属性が最初に思い浮かびます。Conform は、必要なすべての ID を生成してくれることで、この点でのサポートを提供します。

```tsx
import { useForm } from '@conform-to/react';

function Example() {
const [form, fields] = useForm();

return (
<form id={form.id}>
<label htmlFor={fields.message.id}>Message</label>
<input
type="text"
id={fields.message.id}
name={fields.message.name}
aria-invalid={!fields.message.valid ? true : undefined}
aria-describedby={
!fields.message.valid
? `${fields.message.errorId} ${fields.message.descriptionId}`
: fields.message.descriptionId
}
/>
<div id={fields.message.descriptionId}>The message you want to send</div>
<div id={fields.message.errorId}>{fields.message.errors}</div>
<button>Send</button>
</form>
);
}
```

## バリデーション属性

バリデーション属性も、スクリーンリーダーのヒントを改善するなど、アクセシビリティにおいて重要な役割を果たします。 Conform を使用すると、 zod や yup スキーマからバリデーション属性を導出し、各フィールドのメタデータにそれらを反映させることができます。

```tsx
import { parseWithZod, getZodConstraint } from '@conform-to/zod';
import { useForm } from '@conform-to/react';
import { z } from 'zod';

const schema = z.object({
message: z
.string()
.min(10)
.max(100)
.regex(/^[A-Za-z0-9 ]{10-100}$/),
});

function Example() {
const [form, fields] = useForm({
constraint: getZodConstraint(schema),
onValidate({ formData }) {
return parseWithZod(formData, { schema });
},
});

return (
<form id={form.id}>
<input
type="text"
name={fields.message.name}
required={fields.message.required}
minLength={fields.message.minLength}
maxLength={fields.message.maxLength}
pattern={fields.message.pattern}
/>
<button>Send</button>
</form>
);
}
```

## プログレッシブエンハンスメント

プログレッシブエンハンスメントも、一時的なネットワークの問題の影響を最小限に抑えるなど、アクセシビリティを支援します。たとえば、 Conform を使用すると、ページのリフレッシュをまたいでもフォームデータと状態が保持されるように、フィールドリストを操作できます。

```tsx
import { useForm } from '@conform-to/react';

export default function Example() {
const [form, fields] = useForm();

return (
<form id={form.id}>
<ul>
{tasks.map((task) => (
<li key={task.key}>
<input name={task.name} defaultValue={task.initialValue} />
<button
{...form.remove.getButtonProps({
name: fields.tasks.name,
index,
})}
>
Delete
</button>
</li>
))}
</ul>
<button
{...form.insert.getButtonProps({
name: fields.tasks.name,
})}
>
Add task
</button>
<button>Save</button>
</form>
);
}
```

## ボイラープレートの削減

上記で述べたすべての属性を設定することは、面倒でエラーが発生しやすい作業です。 Conform は 、関連するすべての属性を導出する一連のヘルパーを提供することで、この作業を支援しようとしています。

> 注意: これらすべてのヘルパーはネイティブ HTML 要素用に設計されています。 react-aria-components や Radix UI のようなカスタム UI コンポーネントを使用している場合、それらの API を通じて既に属性が設定されている可能性があるため、これらのヘルパーが不要になるかもしれません。

- [getFormProps](./api/react/getFormProps.md)
- [getFieldsetProps](./api/react/getFieldsetProps.md)
- [getInputProps](./api/react/getInputProps.md)
- [getSelectProps](./api/react/getSelectProps.md)
- [getTextareaProps](./api/react/getTextareaProps.md)
- [getCollectionProps](./api/react/getButtonProps.md)

以下は、手動設定と比較した場合の例です。ヘルパーについて詳しく知りたい場合は、上記リンクの対応するドキュメントを確認してください。

```tsx
import { parseWithZod, getZodConstraint } from '@conform-to/zod';
import { useForm } from '@conform-to/react';
import { z } from 'zod';

const schema = z.object({
message: z
.string()
.min(10)
.max(100)
.regex(/^[A-Za-z0-9 ]{10-100}$/),
});

function Example() {
const [form, fields] = useForm({
constraint: getZodConstraint(schema),
onValidate({ formData }) {
return parseWithZod(formData, { schema });
},
});

return (
<form id={form.id}>
{/* ビフォー */}
<input
type="text"
id={fields.message.id}
name={fields.message.name}
required={fields.message.required}
minLength={fields.message.minLength}
maxLength={fields.message.maxLength}
pattern={fields.message.pattern}
aria-invalid={!fields.message.valid ? true : undefined}
aria-describedby={
!fields.message.valid
? `${fields.message.errorId} ${fields.message.descriptionId}`
: fields.message.descriptionId
}
/>
{/* アフター */}
<input
{...getInputProps(fields.message, {
type: 'text',
ariaDescribedBy: fields.message.descriptionId,
})}
/>
<button>Send</button>
</form>
);
}
```
82 changes: 82 additions & 0 deletions docs/ja/api/react/FormProvider.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# FormProvider

フォームコンテキストのための [Context Provider](https://react.dev/reference/react/createContext#provider) をレンダリングする React コンポーネントです。 [useField](./useField.md) や [useFormMetadata](./useFormMetadata.md) フックを使用したい場合には必須です。

```tsx
import { FormProvider, useForm } from '@conform-to/react';

export default function SomeParent() {
const [form, fields] = useForm();

return <FormProvider context={form.context}>{/* ... */}</FormProvider>;
}
```

## プロパティ

### `context`

フォームコンテキストです。これは [useForm](./useForm.md) で作成され、 `form.context` を通じてアクセスできます。

## Tips

### FormProvider は、フォームの直接の親である必要はありません。

入力が [form 属性](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement#instance_properties_related_to_the_parent_form) を通じて関連付けられている限り、フォームの外部のどこにでも自由に入力を配置できます。

```tsx
function Example() {
const [form, fields] = useForm();
return (
<FormProvider context={form.context}>
<div>
<form id={form.id} />
</div>
<div>
<input name={fields.title.name} form={form.id} />
</div>
</FormProvider>
);
}
```

### FormProvider はネストすることができます

これは、レイアウトの制約のために 1 つのフォームを別のフォームの内部に配置する必要がある場合に便利です。

```tsx
import { FormProvider, useForm } from '@conform-to/react';

function Field({ name, formId }) {
// formId が指定されていない場合、 useField は最も近い FormContext を探します。
const [meta] = useField(name, { formId });

return <input name={meta.name} form={meta.form} />;
}

function Parent() {
const [form, fields] = useForm({ id: 'parent' });
return (
<FormProvider context={form.context}>
<form id={form.id} />

<Field name={fields.category.name} />
<Child />
</FormProvider>
);
}

function Child() {
const [form, fields] = useForm({ id: 'child' });

return (
<FormProvider context={form.context}>
<form id={form.id} />
<Field name={fields.title.name} />

{/* これは代わりに 'id' が 'parent' のフォームコンテキストを探します。 */}
<Field name={fields.bar.name} formId="parent" />
</FormProvider>
);
}
```
27 changes: 27 additions & 0 deletions docs/ja/api/react/FormStateInput.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# FormStateInput

ドキュメントの再読み込みが発生した場合にフォームの状態を維持するために、非表示の入力をレンダリングする React コンポーネントです。

```tsx
import { FormProvider, FormStateInput, useForm } from '@conform-to/react';

export default function SomeParent() {
const [form, fields] = useForm();

return (
<FormProvider context={form.context}>
<FormStateInput />
</FormProvider>
);
}
```

## プロパティ

このコンポーネントはプロパティを受け入れません。

## Tips

### 完全なプログレッシブエンハンスメントを求めている場合にのみ、これが必要です。

ドキュメントが再読み込みされると、フォームの状態の一部が失われます。例えば、 Conform は検証されたフィールドのエラーのみを表示しますが、新しいフィールドをリストに挿入するなど、サブミット以外の意図でフォームを送信している場合、この情報は失われます。 FormStateInput をレンダリングすることで、 Conform はフォームの状態を復元し、検証されたすべてのフィールドのエラーが引き続き表示されることを保証できます。
Loading
Loading