Skip to content

Commit 79ff63a

Browse files
committedFeb 26, 2025·
認可まで翻訳。
1 parent 56f7ec6 commit 79ff63a

File tree

3 files changed

+76
-76
lines changed

3 files changed

+76
-76
lines changed
 

‎translation-ja/artisan.md

+20-20
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,14 @@ class SendEmails extends Command
145145
protected $signature = 'mail:send {user}';
146146

147147
/**
148-
* The console command description.
148+
* コンソールコマンドの説明
149149
*
150150
* @var string
151151
*/
152152
protected $description = 'Send a marketing email to a user';
153153

154154
/**
155-
* consoleコマンドの実行
155+
* コンソールコマンドの実行
156156
*/
157157
public function handle(DripEmailer $drip): void
158158
{
@@ -300,7 +300,7 @@ public function isolationLockExpiresAt(): DateTimeInterface|DateInterval
300300

301301
```php
302302
/**
303-
* The name and signature of the console command.
303+
* コンソールコマンドの名前と使用法
304304
*
305305
* @var string
306306
*/
@@ -310,10 +310,10 @@ protected $signature = 'mail:send {user}';
310310
引数をオプションにしたり、引数のデフォルト値を定義したりもできます。
311311

312312
```php
313-
// Optional argument...
313+
// オブションの引数
314314
'mail:send {user?}'
315315

316-
// Optional argument with default value...
316+
// デフォル値のあるオプションの引数
317317
'mail:send {user=foo}'
318318
```
319319

@@ -324,7 +324,7 @@ protected $signature = 'mail:send {user}';
324324

325325
```php
326326
/**
327-
* The name and signature of the console command.
327+
* コンソールコマンドの名前と使用法
328328
*
329329
* @var string
330330
*/
@@ -344,7 +344,7 @@ php artisan mail:send 1 --queue
344344

345345
```php
346346
/**
347-
* The name and signature of the console command.
347+
* コンソールコマンドの名前と使用法
348348
*
349349
* @var string
350350
*/
@@ -421,7 +421,7 @@ php artisan mail:send --id=1 --id=2
421421

422422
```php
423423
/**
424-
* The name and signature of the console command.
424+
* コンソールコマンドの名前と使用法
425425
*
426426
* @var string
427427
*/
@@ -460,7 +460,7 @@ Laravelが必要な引数をユーザーから収集する必要がある場合
460460

461461
```php
462462
/**
463-
* Prompt for missing input arguments using the returned questions.
463+
* 引数が不足していたときの質問を返す
464464
*
465465
* @return array<string, string>
466466
*/
@@ -512,7 +512,7 @@ use function Laravel\Prompts\confirm;
512512
// ...
513513

514514
/**
515-
* Perform actions after the user was prompted for missing arguments.
515+
* 不足していた引数をユーザーへ促した後に実行するアクション
516516
*/
517517
protected function afterPromptingForMissingArguments(InputInterface $input, OutputInterface $output): void
518518
{
@@ -533,7 +533,7 @@ protected function afterPromptingForMissingArguments(InputInterface $input, Outp
533533

534534
```php
535535
/**
536-
* Execute the console command.
536+
* コンソールコマンドの実行
537537
*/
538538
public function handle(): void
539539
{
@@ -550,10 +550,10 @@ $arguments = $this->arguments();
550550
オプションは、`option`メソッドを使用して引数と同じように簡単に取得できます。すべてのオプションを配列として取得するには、`options`メソッドを呼び出します。
551551

552552
```php
553-
// Retrieve a specific option...
553+
// 特定のオプションを取得
554554
$queueName = $this->option('queue');
555555

556-
// Retrieve all options as an array...
556+
// 全オプションを配列で取得
557557
$options = $this->options();
558558
```
559559

@@ -567,7 +567,7 @@ $options = $this->options();
567567

568568
```php
569569
/**
570-
* Execute the console command.
570+
* コンソールコマンドの実行
571571
*/
572572
public function handle(): void
573573
{
@@ -621,7 +621,7 @@ $name = $this->anticipate('What is your name?', ['Taylor', 'Dayle']);
621621

622622
```php
623623
$name = $this->anticipate('What is your address?', function (string $input) {
624-
// Return auto-completion options...
624+
// 自動補完オプションを返す
625625
});
626626
```
627627

@@ -657,7 +657,7 @@ $name = $this->choice(
657657

658658
```php
659659
/**
660-
* Execute the console command.
660+
* コンソールコマンドの実行
661661
*/
662662
public function handle(): void
663663
{
@@ -682,10 +682,10 @@ $this->line('Display this on the screen');
682682
`newLine`メソッドを使用して空白行を表示できます。
683683

684684
```php
685-
// Write a single blank line...
685+
// 1行空白行を書き出す
686686
$this->newLine();
687687

688-
// Write three blank lines...
688+
// 3行空白行を書き出す
689689
$this->newLine(3);
690690
```
691691

@@ -842,7 +842,7 @@ Artisanコマンドから他のコマンドを呼び出したい場合があり
842842

843843
```php
844844
/**
845-
* Execute the console command.
845+
* コンソールコマンドの実行
846846
*/
847847
public function handle(): void
848848
{
@@ -869,7 +869,7 @@ $this->callSilently('mail:send', [
869869

870870
```php
871871
/**
872-
* Execute the console command.
872+
* コンソールコマンドの実行
873873
*/
874874
public function handle(): void
875875
{

‎translation-ja/authentication.md

+24-24
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Laravelの認証機能は、基本的に「ガード」と「プロバイダ」
4848

4949
さっそく始めたいですか?新しいLaravelアプリケーションに[Laravelアプリケーションスターターキット](/docs/{{version}}/starter-kits)をインストールしてください。データベースをマイグレーションした後に、ブラウザで`/register`やアプリケーションに割り当てた他のURLへアクセスしてください。スターターキットは、認証システム全体のスカフォールドの面倒を見ます。
5050

51-
**Even if you choose not to use a starter kit in your final Laravel application, installing a [starter kit](/docs/{{version}}/starter-kits) can be a wonderful opportunity to learn how to implement all of Laravel's authentication functionality in an actual Laravel project.** Since the Laravel starter kits contain authentication controllers, routes, and views for you, you can examine the code within these files to learn how Laravel's authentication features may be implemented.
51+
**最終的なLaravelアプリケーションでスターターキットを使用しないことを選択する場合でも、[スターターキット](/docs/{{version}}/starter-kits)をインストールすることは、実際のLaravelプロジェクトでLaravelのすべての認証機能を実装する方法を学ぶ素晴らしい機会になります。**Laravelスターターキットには認証コントローラ、ルート、およびビューが含まれているため、これらのファイル内のコードを調べて、Laravelの認証機能をどのように実装するかを学べます。
5252

5353
<a name="introduction-database-considerations"></a>
5454
### データベースの検討
@@ -77,7 +77,7 @@ Laravelは、通常`Auth`もしくは`Session`ファサードを介してアク
7777

7878
**アプリケーションスターターキット**
7979

80-
As discussed in this documentation, you can interact with these authentication services manually to build your application's own authentication layer. However, to help you get started more quickly, we have released [free starter kits](/docs/{{version}}/starter-kits) that provide robust, modern scaffolding of the entire authentication layer.
80+
このドキュメントで説明するように、こうした認証サービスを手作業で操作し、アプリケーション独自の認証レイヤーを構築することもできます。しかし、より手早く始められるように、私たちは [無料のスターターキット](/docs/{{version}}/starter-kits)を公開しています。
8181

8282
<a name="laravels-api-authentication-services"></a>
8383
#### Laravel API認証サービス
@@ -105,7 +105,7 @@ Laravelをバックエンドで利用するシングルページアプリケー
105105

106106
パスポートは、アプリケーションがOAuth2仕様によって提供されるすべての機能を絶対に必要とする場合に選択できます。
107107

108-
And, if you would like to get started quickly, we are pleased to recommend [our application starter kits](/docs/{{version}}/starter-kits) as a quick way to start a new Laravel application that already uses our preferred authentication stack of Laravel's built-in authentication services.
108+
また、すぐに始めたい場合は、[アプリケーションスターターキット](/docs/{{version}}/starter-kits)をお勧めします。これは、Laravelの私達が使用しているお好みの組み込み認証サービススタックを新しいLaravelアプリケーションですばやく開始する方法です。
109109

110110
<a name="authentication-quickstart"></a>
111111
## 認証クイックスタート
@@ -116,20 +116,20 @@ And, if you would like to get started quickly, we are pleased to recommend [our
116116
<a name="install-a-starter-kit"></a>
117117
### スターターキットのインストール
118118

119-
First, you should [install a Laravel application starter kit](/docs/{{version}}/starter-kits). Our starter kits offer beautifully designed starting points for incorporating authentication into your fresh Laravel application.
119+
まず、[Laravelアプリケーションスターターキットをインストール](/docs/{{version}}/starter-kits)する必要があります。私たちのスターターキットは、新しいLaravelアプリケーションに認証を組み込むための美しいデザインの出発点を提供します。
120120

121121
<a name="retrieving-the-authenticated-user"></a>
122122
### 認証済みユーザー取得
123123

124-
After creating an application from a starter kit and allowing users to register and authenticate with your application, you will often need to interact with the currently authenticated user. While handling an incoming request, you may access the authenticated user via the `Auth` facade's `user` method:
124+
スターターキットからアプリケーションを作成し、ユーザーがアプリケーションに登録して認証できるようにした後、多くの場合、現在認証済みのユーザーを操作する必要があります。受信リクエストを処理している間、`Auth`ファサードの`user`メソッドを介して認証されたユーザーにアクセスできます。
125125

126126
```php
127127
use Illuminate\Support\Facades\Auth;
128128

129-
// Retrieve the currently authenticated user...
129+
// 現在認証済みのユーザーを取得
130130
$user = Auth::user();
131131

132-
// Retrieve the currently authenticated user's ID...
132+
// 現在認証済みのユーザーのidを取得
133133
$id = Auth::id();
134134
```
135135

@@ -146,7 +146,7 @@ use Illuminate\Http\Request;
146146
class FlightController extends Controller
147147
{
148148
/**
149-
* Update the flight information for an existing flight.
149+
* 存在しているフライトの情報を更新
150150
*/
151151
public function update(Request $request): RedirectResponse
152152
{
@@ -182,7 +182,7 @@ if (Auth::check()) {
182182

183183
```php
184184
Route::get('/flights', function () {
185-
// Only authenticated users may access this route...
185+
// このルートは、認証済みユーザーのみアクセス可能
186186
})->middleware('auth');
187187
```
188188

@@ -197,7 +197,7 @@ use Illuminate\Http\Request;
197197
->withMiddleware(function (Middleware $middleware) {
198198
$middleware->redirectGuestsTo('/login');
199199

200-
// Using a closure...
200+
// クロージャを使用
201201
$middleware->redirectGuestsTo(fn (Request $request) => route('login'));
202202
})
203203
```
@@ -209,14 +209,14 @@ use Illuminate\Http\Request;
209209

210210
```php
211211
Route::get('/flights', function () {
212-
// Only authenticated users may access this route...
212+
// 認証済みユーザーのみこのルートにアクセス可能
213213
})->middleware('auth:admin');
214214
```
215215

216216
<a name="login-throttling"></a>
217217
### ログイン回数制限
218218

219-
If you are using one of our [application starter kits](/docs/{{version}}/starter-kits), rate limiting will automatically be applied to login attempts. By default, the user will not be able to login for one minute if they fail to provide the correct credentials after several attempts. The throttling is unique to the user's username / email address and their IP address.
219+
[アプリケーションスターターキット](/docs/{{version}}/starter-kits)のうちのどれかを使用している場合は、ログイン試行に対して自動的にレート制限が適用されます。デフォルトでは、ユーザーが数回試行した後に正しい資格情報を提供できなかった場合、1分間ログインできません。回数制限は、ユーザーのユーザー名/電子メールアドレス、IPアドレスで一意とします。
220220

221221
> [!NOTE]
222222
> アプリケーション内の他のルートのレート制限を希望する場合は、[レート制限のドキュメント](/docs/{{version}}/routing#rate-limiting)を確認してください。
@@ -240,7 +240,7 @@ use Illuminate\Support\Facades\Auth;
240240
class LoginController extends Controller
241241
{
242242
/**
243-
* Handle an authentication attempt.
243+
* 認証の試みを処理
244244
*/
245245
public function authenticate(Request $request): RedirectResponse
246246
{
@@ -277,7 +277,7 @@ Laravelのリダイレクタが提供する`intended`メソッドは、認証ミ
277277

278278
```php
279279
if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) {
280-
// Authentication was successful...
280+
// 認証成功
281281
}
282282
```
283283

@@ -291,7 +291,7 @@ if (Auth::attempt([
291291
'password' => $password,
292292
fn (Builder $query) => $query->has('activeSubscription'),
293293
])) {
294-
// Authentication was successful...
294+
// 認証成功
295295
}
296296
```
297297

@@ -307,7 +307,7 @@ if (Auth::attemptWhen([
307307
], function (User $user) {
308308
return $user->isNotBanned();
309309
})) {
310-
// Authentication was successful...
310+
// 認証成功
311311
}
312312
```
313313

@@ -335,7 +335,7 @@ if (Auth::guard('admin')->attempt($credentials)) {
335335
use Illuminate\Support\Facades\Auth;
336336

337337
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
338-
// The user is being remembered...
338+
// このユーザーは覚えられた
339339
}
340340
```
341341

@@ -408,7 +408,7 @@ if (Auth::once($credentials)) {
408408

409409
```php
410410
Route::get('/profile', function () {
411-
// Only authenticated users may access this route...
411+
// 認証済みユーザーのみこのルートにアクセス可能
412412
})->middleware('auth.basic');
413413
```
414414

@@ -442,7 +442,7 @@ use Symfony\Component\HttpFoundation\Response;
442442
class AuthenticateOnceWithBasicAuth
443443
{
444444
/**
445-
* Handle an incoming request.
445+
* 受信リクエストの処理
446446
*
447447
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
448448
*/
@@ -454,11 +454,11 @@ class AuthenticateOnceWithBasicAuth
454454
}
455455
```
456456

457-
Next, attach the middleware to a route:
457+
次に、ルートへミドルウエアを指定します。
458458

459459
```php
460460
Route::get('/api/user', function () {
461-
// Only authenticated users may access this route...
461+
// 認証済みユーザーのみこのルートにアクセス可能
462462
})->middleware(AuthenticateOnceWithBasicAuth::class);
463463
```
464464

@@ -475,7 +475,7 @@ use Illuminate\Http\RedirectResponse;
475475
use Illuminate\Support\Facades\Auth;
476476

477477
/**
478-
* Log the user out of the application.
478+
* アプリケーションからユーザーをログアウト
479479
*/
480480
public function logout(Request $request): RedirectResponse
481481
{
@@ -640,7 +640,7 @@ use Illuminate\Http\Request;
640640
use Illuminate\Support\Facades\Auth;
641641

642642
/**
643-
* Bootstrap any application services.
643+
* 全アプリケーションサービスの初期起動処理
644644
*/
645645
public function boot(): void
646646
{
@@ -693,7 +693,7 @@ class AppServiceProvider extends ServiceProvider
693693
public function boot(): void
694694
{
695695
Auth::provider('mongo', function (Application $app, array $config) {
696-
// Return an instance of Illuminate\Contracts\Auth\UserProvider...
696+
// Illuminate\Contracts\Auth\UserProviderインスタンスを返す
697697

698698
return new MongoUserProvider($app->make('mongo.connection'));
699699
});

‎translation-ja/authorization.md

+32-32
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ use App\Models\User;
5252
use Illuminate\Support\Facades\Gate;
5353

5454
/**
55-
* Bootstrap any application services.
55+
* 全アプリケーションサービスの初期起動処理
5656
*/
5757
public function boot(): void
5858
{
@@ -69,7 +69,7 @@ use App\Policies\PostPolicy;
6969
use Illuminate\Support\Facades\Gate;
7070

7171
/**
72-
* Bootstrap any application services.
72+
* 全アプリケーションサービスの初期起動処理
7373
*/
7474
public function boot(): void
7575
{
@@ -96,15 +96,15 @@ use Illuminate\Support\Facades\Gate;
9696
class PostController extends Controller
9797
{
9898
/**
99-
* Update the given post.
99+
* 指定ポストの更新
100100
*/
101101
public function update(Request $request, Post $post): RedirectResponse
102102
{
103103
if (! Gate::allows('update-post', $post)) {
104104
abort(403);
105105
}
106106

107-
// Update the post...
107+
// ポストの更新処理…
108108

109109
return redirect('/posts');
110110
}
@@ -115,23 +115,23 @@ class PostController extends Controller
115115

116116
```php
117117
if (Gate::forUser($user)->allows('update-post', $post)) {
118-
// The user can update the post...
118+
// ユーザーはポストを更新できる
119119
}
120120

121121
if (Gate::forUser($user)->denies('update-post', $post)) {
122-
// The user can't update the post...
122+
// ユーザーはポストを更新できない
123123
}
124124
```
125125

126126
`any`または`none`メソッドを使用して、一度に複数のアクション認可を確認できます。
127127

128128
```php
129129
if (Gate::any(['update-post', 'delete-post'], $post)) {
130-
// The user can update or delete the post...
130+
// ユーザーはポストを更新及び削除できる
131131
}
132132

133133
if (Gate::none(['update-post', 'delete-post'], $post)) {
134-
// The user can't update or delete the post...
134+
// ユーザーはポストを更新及び削除できない
135135
}
136136
```
137137

@@ -143,7 +143,7 @@ if (Gate::none(['update-post', 'delete-post'], $post)) {
143143
```php
144144
Gate::authorize('update-post', $post);
145145

146-
// The action is authorized...
146+
// アクションは認可された
147147
```
148148

149149
<a name="gates-supplying-additional-context"></a>
@@ -167,7 +167,7 @@ Gate::define('create-post', function (User $user, Category $category, bool $pinn
167167
});
168168

169169
if (Gate::check('create-post', [$category, $pinned])) {
170-
// The user can create the post...
170+
// ユーザーはポストを作成できる
171171
}
172172
```
173173

@@ -205,7 +205,7 @@ if ($response->allowed()) {
205205
```php
206206
Gate::authorize('edit-settings');
207207

208-
// The action is authorized...
208+
// アクションは認可されている
209209
```
210210

211211
<a name="customizing-gate-response-status"></a>
@@ -321,7 +321,7 @@ php artisan make:policy PostPolicy --model=Post
321321
use Illuminate\Support\Facades\Gate;
322322

323323
Gate::guessPolicyNamesUsing(function (string $modelClass) {
324-
// Return the name of the policy class for the given model...
324+
// 指定モデルのポリシークラス名を返す…
325325
});
326326
```
327327

@@ -336,7 +336,7 @@ use App\Policies\OrderPolicy;
336336
use Illuminate\Support\Facades\Gate;
337337

338338
/**
339-
* Bootstrap any application services.
339+
* 全アプリケーションサービスの初期起動処理
340340
*/
341341
public function boot(): void
342342
{
@@ -392,7 +392,7 @@ use App\Models\User;
392392
use Illuminate\Auth\Access\Response;
393393

394394
/**
395-
* Determine if the given post can be updated by the user.
395+
* 指定ポストがユーザーにより更新可能か判断
396396
*/
397397
public function update(User $user, Post $post): Response
398398
{
@@ -421,7 +421,7 @@ if ($response->allowed()) {
421421
```php
422422
Gate::authorize('update', $post);
423423

424-
// The action is authorized...
424+
// アクションは認可されている
425425
```
426426

427427
<a name="customizing-policy-response-status"></a>
@@ -435,7 +435,7 @@ use App\Models\User;
435435
use Illuminate\Auth\Access\Response;
436436

437437
/**
438-
* Determine if the given post can be updated by the user.
438+
* 指定ポストがユーザーにより更新可能か判断
439439
*/
440440
public function update(User $user, Post $post): Response
441441
{
@@ -453,7 +453,7 @@ use App\Models\User;
453453
use Illuminate\Auth\Access\Response;
454454

455455
/**
456-
* Determine if the given post can be updated by the user.
456+
* 指定ポストがユーザーにより更新可能か判断
457457
*/
458458
public function update(User $user, Post $post): Response
459459
{
@@ -470,7 +470,7 @@ public function update(User $user, Post $post): Response
470470

471471
```php
472472
/**
473-
* Determine if the given user can create posts.
473+
* 指定ユーザーがポストを作成可能か判断
474474
*/
475475
public function create(User $user): bool
476476
{
@@ -512,7 +512,7 @@ class PostPolicy
512512
use App\Models\User;
513513

514514
/**
515-
* Perform pre-authorization checks.
515+
* 事前認可チェックの実行
516516
*/
517517
public function before(User $user, string $ability): bool|null
518518
{
@@ -550,15 +550,15 @@ use Illuminate\Http\Request;
550550
class PostController extends Controller
551551
{
552552
/**
553-
* Update the given post.
553+
* 指定ポストの更新
554554
*/
555555
public function update(Request $request, Post $post): RedirectResponse
556556
{
557557
if ($request->user()->cannot('update', $post)) {
558558
abort(403);
559559
}
560560

561-
// Update the post...
561+
// ポストの更新処理…
562562

563563
return redirect('/posts');
564564
}
@@ -585,15 +585,15 @@ use Illuminate\Http\Request;
585585
class PostController extends Controller
586586
{
587587
/**
588-
* Create a post.
588+
* ポスト作成
589589
*/
590590
public function store(Request $request): RedirectResponse
591591
{
592592
if ($request->user()->cannot('create', Post::class)) {
593593
abort(403);
594594
}
595595

596-
// Create the post...
596+
// ポストの作成処理…
597597

598598
return redirect('/posts');
599599
}
@@ -648,15 +648,15 @@ use Illuminate\Http\Request;
648648
use Illuminate\Support\Facades\Gate;
649649

650650
/**
651-
* Create a new blog post.
651+
* 新規ブログポストの作成
652652
*
653653
* @throws \Illuminate\Auth\Access\AuthorizationException
654654
*/
655655
public function create(Request $request): RedirectResponse
656656
{
657657
Gate::authorize('create', Post::class);
658658

659-
// The current user can create blog posts...
659+
// 現在のユーザーはブログポストを作成できる
660660

661661
return redirect('/posts');
662662
}
@@ -671,7 +671,7 @@ Laravelは、リクエストがルートやコントローラに到達する前
671671
use App\Models\Post;
672672

673673
Route::put('/post/{post}', function (Post $post) {
674-
// The current user may update the post...
674+
// 現在のユーザーはポストの更新処理が可能
675675
})->middleware('can:update,post');
676676
```
677677

@@ -683,7 +683,7 @@ Route::put('/post/{post}', function (Post $post) {
683683
use App\Models\Post;
684684

685685
Route::put('/post/{post}', function (Post $post) {
686-
// The current user may update the post...
686+
// 現在のユーザーはポストの更新処理が可能
687687
})->can('update', 'post');
688688
```
689689

@@ -694,7 +694,7 @@ Route::put('/post/{post}', function (Post $post) {
694694

695695
```php
696696
Route::post('/post', function () {
697-
// The current user may create posts...
697+
// 現在のユーザーはポストを作成可能
698698
})->middleware('can:create,App\Models\Post');
699699
```
700700

@@ -704,7 +704,7 @@ Route::post('/post', function () {
704704
use App\Models\Post;
705705

706706
Route::post('/post', function () {
707-
// The current user may create posts...
707+
// 現在のユーザーはポストを作成可能
708708
})->can('create', Post::class);
709709
```
710710

@@ -773,7 +773,7 @@ Bladeテンプレートを作成するとき、ユーザーが特定のアクシ
773773

774774
```php
775775
/**
776-
* Determine if the given post can be updated by the user.
776+
* 指定ポストがユーザーにより更新可能か判断
777777
*/
778778
public function update(User $user, Post $post, int $category): bool
779779
{
@@ -786,15 +786,15 @@ public function update(User $user, Post $post, int $category): bool
786786

787787
```php
788788
/**
789-
* Update the given blog post.
789+
* 指定ブログポストの更新
790790
*
791791
* @throws \Illuminate\Auth\Access\AuthorizationException
792792
*/
793793
public function update(Request $request, Post $post): RedirectResponse
794794
{
795795
Gate::authorize('update', [$post, $request->category]);
796796

797-
// The current user can update the blog post...
797+
// 現在のユーザーはブログポストを更新可能
798798

799799
return redirect('/posts');
800800
}

0 commit comments

Comments
 (0)
Please sign in to comment.