diff --git a/config/languages.php b/config/languages.php
index 811d97513..1e82786cc 100644
--- a/config/languages.php
+++ b/config/languages.php
@@ -25,4 +25,8 @@
'display' => 'Portuguese (Brazilian)',
'flag-icon' => 'br',
],
+ 'jp' => [
+ 'display' => 'Japanese (日本語)',
+ 'flag-icon' => 'jp',
+ ],
];
diff --git a/resources/lang/jp/aircraft.php b/resources/lang/jp/aircraft.php
new file mode 100644
index 000000000..543b287e6
--- /dev/null
+++ b/resources/lang/jp/aircraft.php
@@ -0,0 +1,12 @@
+ [
+ 'active' => '使用可能',
+ 'maintenance' => 'メンテナンス中',
+ 'stored' => '倉庫にて管理中',
+ 'retired' => '引退機体',
+ 'scrapped' => '解体済み',
+ 'written' => '解約済み',
+ ],
+];
diff --git a/resources/lang/jp/airports.php b/resources/lang/jp/airports.php
new file mode 100644
index 000000000..f2409ed7a
--- /dev/null
+++ b/resources/lang/jp/airports.php
@@ -0,0 +1,9 @@
+ 'ID',
+ 'home' => '実家空港',
+ 'current' => '現在地',
+ 'departure' => '出発地',
+ 'arrival' => '目的地',
+];
diff --git a/resources/lang/jp/auth.php b/resources/lang/jp/auth.php
new file mode 100644
index 000000000..355592320
--- /dev/null
+++ b/resources/lang/jp/auth.php
@@ -0,0 +1,25 @@
+ '記録された情報に一致していません。',
+ 'throttle' => '多数のログイン、:seconds 秒後に再度ログインしてください。',
+ 'password' => 'パスワード',
+ 'createaccount' => 'アカウントの新規登録',
+ 'forgotpassword' => 'パスワード忘れ方はこちら',
+ 'fullname' => '氏名(フルネーム)',
+ 'emailaddress' => 'メールアドレス',
+ 'fillcaptcha' => 'Fill out the captcha',
+ 'tocaccept' => '登録することで, あなたは規約に同意する。',
+ 'register' => '新規登録',
+ 'registrationpending' => '登録待機中',
+ 'pendingmessage' => 'ANAバーチャルグループへの新規登録誠にありがとうございます。私たちの管理員がアカウントの確認をしています。少々お待ちください!(1300z ~ 2200zは管理員の休憩時間です。多少の遅れが生じます)',
+ 'registrationsubmitted' => '登録提出済み',
+ 'registrationconfirmation' => '登録の確認',
+ 'confirmationmessage' => 'ANAバーチャルグループへの新規登録誠にありがとうございます。私たちの管理員がアカウントの確認をしています。少々お待ちください!(1300z ~ 2200zは管理員の休憩時間です。多少の遅れが生じます)',
+ 'registrationdenied' => '登録は拒否されました。',
+ 'deniedmessage' => '登録が拒否されました。管理員にお問い合わせください。',
+ 'accountsuspended' => 'アカウント停止状態です。',
+ 'suspendedmessage' => 'アカウント停止状態です。管理員にお問い合わせください。',
+ 'transferhours' => '転入時間',
+ 'loginwith' => ':provider でログイン',
+];
diff --git a/resources/lang/jp/common.php b/resources/lang/jp/common.php
new file mode 100644
index 000000000..68f6c4777
--- /dev/null
+++ b/resources/lang/jp/common.php
@@ -0,0 +1,67 @@
+ 'ホーム',
+ 'administration' => '管理員',
+ 'flight' => 'フライト',
+ 'livemap' => 'ライブマップ',
+ 'pilot' => 'パイロット',
+ 'pirep' => 'レポート',
+ 'newestpilots' => '最新パイロット',
+ 'profile' => 'プロフィール',
+ 'email' => 'メールアドレス',
+ 'pilot_id' => 'パイロットID',
+ 'register' => '新規登録',
+ 'login' => 'ログイン',
+ 'logout' => 'ログアウト',
+ 'timezone' => '時間帯',
+ 'country' => '国',
+ 'download' => 'ダウンロード',
+ 'from' => 'から',
+ 'to' => 'へ',
+ 'state' => '状態',
+ 'status' => '状態',
+ 'departure' => '出発地',
+ 'arrival' => '目的地',
+ 'aircraft' => '機体',
+ 'airline' => 'エアライン',
+ 'subfleet' => '機体種',
+ 'distance' => '距離',
+ 'fuel' => '燃料',
+ 'metar' => 'METAR',
+ 'hour' => '時間',
+ 'minute' => '分',
+ 'note' => '備考',
+ 'field' => '欄',
+ 'name' => '名前',
+ 'value' => '値',
+ 'remark' => '備考',
+ 'find' => '検索',
+ 'reset' => 'リセット',
+ 'submit' => '提出',
+ 'edit' => '編集',
+ 'close' => '閉じる',
+ 'whoops' => 'あら?',
+ 'hello' => 'こんにちは、',
+ 'regards' => 'よろしくお願いします。',
+ 'rightsreserved' => 'All Rights Reserved',
+ 'active' => 'アクティブ',
+ 'inactive' => '非アクティブ',
+ 'yes' => 'はい',
+ 'no' => 'いいえ',
+ 'or' => 'または',
+ 'days' => [
+ 'mon' => '月',
+ 'tues' => '火',
+ 'wed' => '水',
+ 'thurs' => '木',
+ 'fri' => '金',
+ 'sat' => '土',
+ 'sun' => '日',
+ ],
+ 'external_redirection' => '外部ページへのリンク',
+ 'abouttoleave' => 'このページから離れます。',
+ 'wanttocontinue' => '続けますか?',
+ 'continue' => '続ける',
+ 'alwaystrustdomain' => 'このドメインを信用する',
+];
diff --git a/resources/lang/jp/dashboard.php b/resources/lang/jp/dashboard.php
new file mode 100644
index 000000000..29583976b
--- /dev/null
+++ b/resources/lang/jp/dashboard.php
@@ -0,0 +1,11 @@
+ '合計飛行時間',
+ 'yourbalance' => '残金',
+ 'yourlastreport' => '最終レポート',
+ 'noreportsyet' => '提出済みのレポートはありません。',
+ 'fileonenow' => '今すぐ提出。',
+ 'weatherat' => ':ICAO の天気',
+ 'recentreports' => '最近のレポート',
+];
diff --git a/resources/lang/jp/downloads.php b/resources/lang/jp/downloads.php
new file mode 100644
index 000000000..a197357a8
--- /dev/null
+++ b/resources/lang/jp/downloads.php
@@ -0,0 +1,5 @@
+ 'ダウンロードできるものはありません!',
+];
diff --git a/resources/lang/jp/email.php b/resources/lang/jp/email.php
new file mode 100644
index 000000000..c4713d565
--- /dev/null
+++ b/resources/lang/jp/email.php
@@ -0,0 +1,6 @@
+ 'ボタンのことでお困りの方は ":actiontext", '.
+ '下記のURLを貼り付けてください:',
+];
diff --git a/resources/lang/jp/errors.php b/resources/lang/jp/errors.php
new file mode 100644
index 000000000..6d6b5b8e7
--- /dev/null
+++ b/resources/lang/jp/errors.php
@@ -0,0 +1,18 @@
+ [
+ 'title' => '不適切なアクセス',
+ 'message' => 'この操作を行う権限はありません。 '.
+ 'ここ をクリックしてホームに戻る。',
+ ],
+ 404 => [
+ 'title' => 'ページが存在しません',
+ 'message' => 'このページは存在していないみたいです。'.
+ 'ここ をクリックしてホームに戻る。',
+ ],
+ 503 => [
+ 'title' => 'サーバーエラー',
+ 'message' => 'エラーが発生しました',
+ ],
+];
diff --git a/resources/lang/jp/expenses.php b/resources/lang/jp/expenses.php
new file mode 100644
index 000000000..ecd59e9a2
--- /dev/null
+++ b/resources/lang/jp/expenses.php
@@ -0,0 +1,9 @@
+ [
+ 'flight' => 'フライトごと',
+ 'daily' => '一日ごと',
+ 'monthly' => '月ごと',
+ ],
+];
diff --git a/resources/lang/jp/flights.php b/resources/lang/jp/flights.php
new file mode 100644
index 000000000..d2b1a1732
--- /dev/null
+++ b/resources/lang/jp/flights.php
@@ -0,0 +1,51 @@
+ 'フライトナンバー',
+ 'flighttime' => '飛行時間',
+ 'flighttype' => 'フライト種類',
+ 'flighthours' => 'フライト時間',
+ 'code' => 'コード',
+ 'callsign' => 'コールサイン',
+ 'route' => '経路',
+ 'mybid' => '私の予約',
+ 'search' => '検索',
+ 'addremovebid' => '予約 追加/取消',
+ 'bidremoved' => '予約が取り消されました。',
+ 'bidadded' => '予約が追加されました。',
+ 'dep' => '出発地',
+ 'arr' => '目的地',
+ 'level' => '巡行高度',
+ 'alternateairport' => '代替空港',
+ 'inbound' => '到着機',
+ 'outbound' => '出発機',
+ 'none' => 'フライトが見つかりません。',
+ 'departuretime' => '出発時間',
+ 'arrivaltime' => '到着時間',
+ 'type' => [
+ 'pass_scheduled' => '旅客機 (定期)',
+ 'pass_addtl' => '旅客機 (追加)',
+ 'charter_pass_only' => '旅客機 (自由)',
+ 'charter_special' => '旅客機 (特別自由)',
+ 'cargo_scheduled' => '貨物機 (定期)',
+ 'addtl_cargo_mail' => '貨物機 (増便)',
+ 'charter_cargo' => '貨物機 (自由)',
+ 'mail_service' => 'メールサービス',
+ 'special_vip' => 'VIPフライト',
+ 'ambulance' => '救急車',
+ 'training_flight' => '訓練機',
+ 'military' => '軍機',
+ 'positioning' => '配置',
+ 'technical_test' => '整備試行',
+ 'technical_stop' => '整備停止',
+ 'shuttle' => 'シャトル (定期)',
+ 'addtl_shuttle' => 'シャトル (増便)',
+ 'cargo_in_cabin' => '旅客/機内貨物 (定期)',
+ 'addtl_cargo_in_cabin' => '旅客/機内貨物 (増便)',
+ 'charter_cargo_in_cabin' => '旅客/機内貨物 (自由)',
+ 'general_aviation' => 'GA機',
+ 'air_taxi' => 'ビジネスタクシー',
+ 'company_specific' => '会社特別 (非標準)',
+ 'other' => 'その他 (非標準)',
+ ],
+];
diff --git a/resources/lang/jp/home.php b/resources/lang/jp/home.php
new file mode 100644
index 000000000..ac15984f2
--- /dev/null
+++ b/resources/lang/jp/home.php
@@ -0,0 +1,8 @@
+ [
+ 'title' => 'ようこそ!',
+ 'message' => 'ようこそ :appname へ',
+ ],
+];
diff --git a/resources/lang/jp/installer.php b/resources/lang/jp/installer.php
new file mode 100644
index 000000000..eada5694e
--- /dev/null
+++ b/resources/lang/jp/installer.php
@@ -0,0 +1,245 @@
+ 'phpVMS Installer',
+ 'next' => 'Next Step',
+ 'back' => 'Previous',
+ 'finish' => 'Install',
+ 'forms' => [
+ 'errorTitle' => 'The Following errors occurred:',
+ ],
+
+ /*
+ *
+ * Home page translations.
+ *
+ */
+ 'welcome' => [
+ 'templateTitle' => 'Welcome',
+ 'title' => 'phpVMS Installer',
+ 'message' => 'Easy Installation and Setup Wizard.',
+ 'next' => 'Check Requirements',
+ ],
+
+ /*
+ *
+ * Requirements page translations.
+ *
+ */
+ 'requirements' => [
+ 'templateTitle' => 'Step 1 | Server Requirements',
+ 'title' => 'Server Requirements',
+ 'next' => 'Check Permissions',
+ ],
+
+ /*
+ *
+ * Permissions page translations.
+ *
+ */
+ 'permissions' => [
+ 'templateTitle' => 'Step 2 | Permissions',
+ 'title' => 'Permissions',
+ 'next' => 'Configure Environment',
+ ],
+
+ /*
+ *
+ * Environment page translations.
+ *
+ */
+ 'environment' => [
+ 'menu' => [
+ 'templateTitle' => 'Step 3 | Environment Settings',
+ 'title' => 'Environment Settings',
+ 'desc' => 'Please select how you want to configure the apps .env
file.',
+ 'wizard-button' => 'Form Wizard Setup',
+ 'classic-button' => 'Classic Text Editor',
+ ],
+ 'wizard' => [
+ 'templateTitle' => 'Step 3 | Environment Settings | Guided Wizard',
+ 'title' => 'Guided .env
Wizard',
+ 'tabs' => [
+ 'environment' => 'Environment',
+ 'database' => 'Database',
+ 'application' => 'Application',
+ ],
+ 'form' => [
+ 'name_required' => 'An environment name is required.',
+ 'app_name_label' => 'App Name',
+ 'app_name_placeholder' => 'App Name',
+ 'app_environment_label' => 'App Environment',
+ 'app_environment_label_local' => 'Local',
+ 'app_environment_label_developement' => 'Development',
+ 'app_environment_label_qa' => 'Qa',
+ 'app_environment_label_production' => 'Production',
+ 'app_environment_label_other' => 'Other',
+ 'app_environment_placeholder_other' => 'Enter your environment...',
+ 'app_debug_label' => 'App Debug',
+ 'app_debug_label_true' => 'True',
+ 'app_debug_label_false' => 'False',
+ 'app_log_level_label' => 'App Log Level',
+ 'app_log_level_label_debug' => 'debug',
+ 'app_log_level_label_info' => 'info',
+ 'app_log_level_label_notice' => 'notice',
+ 'app_log_level_label_warning' => 'warning',
+ 'app_log_level_label_error' => 'error',
+ 'app_log_level_label_critical' => 'critical',
+ 'app_log_level_label_alert' => 'alert',
+ 'app_log_level_label_emergency' => 'emergency',
+ 'app_url_label' => 'App Url',
+ 'app_url_placeholder' => 'App Url',
+ 'db_connection_label' => 'Database Connection',
+ 'db_connection_label_mysql' => 'mysql',
+ 'db_connection_label_sqlite' => 'sqlite',
+ 'db_connection_label_pgsql' => 'pgsql',
+ 'db_connection_label_sqlsrv' => 'sqlsrv',
+ 'db_host_label' => 'Database Host',
+ 'db_host_placeholder' => 'Database Host',
+ 'db_port_label' => 'Database Port',
+ 'db_port_placeholder' => 'Database Port',
+ 'db_name_label' => 'Database Name',
+ 'db_name_placeholder' => 'Database Name',
+ 'db_username_label' => 'Database User Name',
+ 'db_username_placeholder' => 'Database User Name',
+ 'db_password_label' => 'Database Password',
+ 'db_password_placeholder' => 'Database Password',
+
+ 'app_tabs' => [
+ 'more_info' => 'More Info',
+ 'broadcasting_title' => 'Broadcasting, Caching, Session, & Queue',
+ 'broadcasting_label' => 'Broadcast Driver',
+ 'broadcasting_placeholder' => 'Broadcast Driver',
+ 'cache_label' => 'Cache Driver',
+ 'cache_placeholder' => 'Cache Driver',
+ 'session_label' => 'Session Driver',
+ 'session_placeholder' => 'Session Driver',
+ 'queue_label' => 'Queue Driver',
+ 'queue_placeholder' => 'Queue Driver',
+ 'redis_label' => 'Redis Driver',
+ 'redis_host' => 'Redis Host',
+ 'redis_password' => 'Redis Password',
+ 'redis_port' => 'Redis Port',
+
+ 'mail_label' => 'Mail',
+ 'mail_driver_label' => 'Mail Driver',
+ 'mail_driver_placeholder' => 'Mail Driver',
+ 'mail_host_label' => 'Mail Host',
+ 'mail_host_placeholder' => 'Mail Host',
+ 'mail_port_label' => 'Mail Port',
+ 'mail_port_placeholder' => 'Mail Port',
+ 'mail_username_label' => 'Mail Username',
+ 'mail_username_placeholder' => 'Mail Username',
+ 'mail_password_label' => 'Mail Password',
+ 'mail_password_placeholder' => 'Mail Password',
+ 'mail_encryption_label' => 'Mail Encryption',
+ 'mail_encryption_placeholder' => 'Mail Encryption',
+
+ 'pusher_label' => 'Pusher',
+ 'pusher_app_id_label' => 'Pusher App Id',
+ 'pusher_app_id_palceholder' => 'Pusher App Id',
+ 'pusher_app_key_label' => 'Pusher App Key',
+ 'pusher_app_key_palceholder' => 'Pusher App Key',
+ 'pusher_app_secret_label' => 'Pusher App Secret',
+ 'pusher_app_secret_palceholder' => 'Pusher App Secret',
+ ],
+ 'buttons' => [
+ 'setup_database' => 'Setup Database',
+ 'setup_application' => 'Setup Application',
+ 'install' => 'Install',
+ ],
+ ],
+ ],
+ 'classic' => [
+ 'templateTitle' => 'Step 3 | Environment Settings | Classic Editor',
+ 'title' => 'Classic Environment Editor',
+ 'save' => 'Save .env',
+ 'back' => 'Use Form Wizard',
+ 'install' => 'Save and Install',
+ ],
+ 'success' => 'Your .env file settings have been saved.',
+ 'errors' => 'Unable to save the .env file, Please create it manually.',
+ ],
+
+ 'install' => 'Install',
+
+ /*
+ *
+ * Installed Log translations.
+ *
+ */
+ 'installed' => [
+ 'success_log_message' => 'Laravel Installer successfully INSTALLED on ',
+ ],
+
+ /*
+ *
+ * Final page translations.
+ *
+ */
+ 'final' => [
+ 'title' => 'Installation Finished',
+ 'templateTitle' => 'Installation Finished',
+ 'finished' => 'Application has been successfully installed.',
+ 'migration' => 'Migration & Seed Console Output:',
+ 'console' => 'Application Console Output:',
+ 'log' => 'Installation Log Entry:',
+ 'env' => 'Final .env File:',
+ 'exit' => 'Click here to exit',
+ ],
+
+ /*
+ *
+ * Update specific translations
+ *
+ */
+ 'updater' => [
+ /*
+ *
+ * Shared translations.
+ *
+ */
+ 'title' => 'Laravel Updater',
+
+ /*
+ *
+ * Welcome page translations for update feature.
+ *
+ */
+ 'welcome' => [
+ 'title' => 'Welcome To The Updater',
+ 'message' => 'Welcome to the update wizard.',
+ ],
+
+ /*
+ *
+ * Welcome page translations for update feature.
+ *
+ */
+ 'overview' => [
+ 'title' => 'Overview',
+ 'message' => 'There is 1 update.|There are :number updates.',
+ 'install_updates' => 'Install Updates',
+ ],
+
+ /*
+ *
+ * Final page translations.
+ *
+ */
+ 'final' => [
+ 'title' => 'Finished',
+ 'finished' => 'Application\'s database has been successfully updated.',
+ 'exit' => 'Click here to exit',
+ ],
+
+ 'log' => [
+ 'success_message' => 'Laravel Installer successfully UPDATED on ',
+ ],
+ ],
+];
diff --git a/resources/lang/jp/pagination.php b/resources/lang/jp/pagination.php
new file mode 100644
index 000000000..5054c2744
--- /dev/null
+++ b/resources/lang/jp/pagination.php
@@ -0,0 +1,18 @@
+ '« 前',
+ 'next' => '次 »',
+
+];
diff --git a/resources/lang/jp/passwords.php b/resources/lang/jp/passwords.php
new file mode 100644
index 000000000..bc785cf4b
--- /dev/null
+++ b/resources/lang/jp/passwords.php
@@ -0,0 +1,21 @@
+ 'パスワードは6字以上のもので再確認も適切なもの。',
+ 'reset' => 'パスワードが変更されました!',
+ 'sent' => '登録したメールアドレスにパスワード変更のリンクを送りました!',
+ 'token' => 'このパスワードのトークンが異なっています',
+ 'user' => 'このメールアドレスで登録したユーザーが見つかりません。',
+ 'confirm' => 'パスワード確認',
+];
diff --git a/resources/lang/jp/pireps.php b/resources/lang/jp/pireps.php
new file mode 100644
index 000000000..6cb839b49
--- /dev/null
+++ b/resources/lang/jp/pireps.php
@@ -0,0 +1,72 @@
+ '新フライトレポート',
+ 'editflightreport' => 'フライトレポート編集',
+ 'savepirep' => 'PIREP保存',
+ 'submitpirep' => 'PIREP提出',
+ 'fileflightreport' => '新しいレポートを提出',
+ 'filenewpirep' => '新しいPIREPを提出',
+ 'newpirep' => '新PIREP',
+ 'pilotreport' => 'パイロットレポート',
+ 'arrived' => '到着しました',
+ 'source' => '資料',
+ 'flightlog' => 'フライトログ',
+ 'filedroute' => '提出済みの経路',
+ 'filedon' => 'に提出済み',
+ 'fare' => '料金',
+ 'class' => 'クラス',
+ 'count' => '数',
+ 'flighttime' => '飛行時間',
+ 'flightlevel' => '巡行高度',
+ 'fieldsreadonly' => 'PIREP提出後のいくつかの欄は既読のみとなります',
+ 'flightinformations' => 'フライト情報',
+ 'flightident' => 'フライトナンバー/コード/路',
+ 'block_fuel' => 'ブロック燃料',
+ 'fuel_used' => '消費燃料',
+ 'codeoptional' => 'コード (任意)',
+ 'legoptional' => '路 (任意)',
+ 'deparrinformations' => '出発/到着情報',
+ 'aircraftinformations' => '機体情報',
+ 'dateflown' => '飛行日',
+ 'deletepirep' => 'PIREP削除',
+ 'submitted' => '提出済み',
+ 'source_types' => [
+ 'manual' => 'マニュアル',
+ 'acars' => 'ACARS(自動追跡機)',
+ ],
+ 'state' => [
+ 'accepted' => '承認済み',
+ 'pending' => '承認待ち',
+ 'rejected' => '拒否されました',
+ 'in_progress' => 'プログレス中',
+ 'cancelled' => '取り消済み',
+ 'deleted' => '削除済み',
+ 'draft' => '下書きに保存',
+ 'paused' => '一時停止中',
+ ],
+ 'status' => [
+ 'initialized' => '開始済み',
+ 'scheduled' => '予定済み',
+ 'boarding' => '搭乗中',
+ 'ready_start' => '開始の準備完了',
+ 'push_tow' => 'プッシュバック中',
+ 'departed' => '離陸済み',
+ 'ready_deice' => '除氷の準備完了',
+ 'deicing' => '除氷中',
+ 'ground_ret' => '地上帰還',
+ 'taxi' => 'タクシング',
+ 'takeoff' => '離陸',
+ 'initial_clb' => '上昇中',
+ 'enroute' => '巡行中',
+ 'diverted' => 'ダイバートした',
+ 'approach' => 'アプローチ',
+ 'final_appr' => 'ファイナルアプローチ',
+ 'landing' => '着陸',
+ 'landed' => '着陸済み',
+ 'arrived' => '到着済み',
+ 'cancelled' => 'キャンセルされた',
+ 'emerg_decent' => '緊急降下中',
+ 'paused' => '一時停止中',
+ ],
+];
diff --git a/resources/lang/jp/profile.php b/resources/lang/jp/profile.php
new file mode 100644
index 000000000..3caed8128
--- /dev/null
+++ b/resources/lang/jp/profile.php
@@ -0,0 +1,21 @@
+ 'This avatar will be resized to :width x :height pixels',
+
+ 'newapikey' => '新しいAPIキー',
+ 'your-profile' => 'あなたのプロフィール',
+ 'your-awards' => 'あなたの賞',
+ 'apikey' => 'APIキー',
+ 'apikey-show' => 'APIキー表示',
+ 'dontshare' => '他社に共有禁止',
+ 'changepassword' => 'パスワード変更',
+ 'newpassword' => '新しいパスワード',
+ 'avatar' => 'アバター',
+ 'updateprofile' => 'プロフィールアップデート',
+ 'editprofile' => 'プロフィール変更',
+ 'edityourprofile' => 'あなたのプロフィールを変更する',
+ 'transferhours' => '転入時間',
+ 'opt-in' => '告知',
+ 'opt-in-descrip' => 'はい、すべての告知を受け取ります',
+];
diff --git a/resources/lang/jp/toc.php b/resources/lang/jp/toc.php
new file mode 100644
index 000000000..c29d2ee7f
--- /dev/null
+++ b/resources/lang/jp/toc.php
@@ -0,0 +1,5 @@
+ '利用規約',
+];
diff --git a/resources/lang/jp/user.php b/resources/lang/jp/user.php
new file mode 100644
index 000000000..05a70b849
--- /dev/null
+++ b/resources/lang/jp/user.php
@@ -0,0 +1,13 @@
+ '位置',
+ 'state' => [
+ 'pending' => '保留中',
+ 'active' => 'アクティブ',
+ 'rejected' => '拒否された',
+ 'on_leave' => '休暇中',
+ 'suspended' => '停止された',
+ 'deleted' => '削除された',
+ ],
+];
diff --git a/resources/lang/jp/validation.php b/resources/lang/jp/validation.php
new file mode 100644
index 000000000..9952b398b
--- /dev/null
+++ b/resources/lang/jp/validation.php
@@ -0,0 +1,119 @@
+ 'The :attribute must be accepted.',
+ 'active_url' => 'The :attribute is not a valid URL.',
+ 'after' => 'The :attribute must be a date after :date.',
+ 'alpha' => 'The :attribute may only contain letters.',
+ 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
+ 'alpha_num' => 'The :attribute may only contain letters and numbers.',
+ 'array' => 'The :attribute must be an array.',
+ 'before' => 'The :attribute must be a date before :date.',
+ 'between' => [
+ 'numeric' => 'The :attribute must be between :min and :max.',
+ 'file' => 'The :attribute must be between :min and :max kilobytes.',
+ 'string' => 'The :attribute must be between :min and :max characters.',
+ 'array' => 'The :attribute must have between :min and :max items.',
+ ],
+ 'boolean' => 'The :attribute field must be true or false.',
+ 'confirmed' => 'The :attribute confirmation does not match.',
+ 'date' => 'The :attribute is not a valid date.',
+ 'date_format' => 'The :attribute does not match the format :format.',
+ 'different' => 'The :attribute and :other must be different.',
+ 'digits' => 'The :attribute must be :digits digits.',
+ 'digits_between' => 'The :attribute must be between :min and :max digits.',
+ 'dimensions' => 'The :attribute has invalid image dimensions.',
+ 'distinct' => 'The :attribute field has a duplicate value.',
+ 'email' => 'The :attribute must be a valid email address.',
+ 'exists' => 'The selected :attribute is invalid.',
+ 'file' => 'The :attribute must be a file.',
+ 'filled' => 'The ":attribute" is required.',
+ 'image' => 'The :attribute must be an image.',
+ 'in' => 'The selected :attribute is invalid.',
+ 'in_array' => 'The :attribute field does not exist in :other.',
+ 'integer' => 'The :attribute must be an integer.',
+ 'ip' => 'The :attribute must be a valid IP address.',
+ 'json' => 'The :attribute must be a valid JSON string.',
+ 'max' => [
+ 'numeric' => 'The :attribute may not be greater than :max.',
+ 'file' => 'The :attribute may not be greater than :max kilobytes.',
+ 'string' => 'The :attribute may not be greater than :max characters.',
+ 'array' => 'The :attribute may not have more than :max items.',
+ ],
+ 'mimes' => 'The :attribute must be a file of type: :values.',
+ 'min' => [
+ 'numeric' => 'The :attribute must be at least :min.',
+ 'file' => 'The :attribute must be at least :min kilobytes.',
+ 'string' => 'The :attribute must be at least :min characters.',
+ 'array' => 'The :attribute must have at least :min items.',
+ ],
+ 'not_in' => 'The selected :attribute is invalid.',
+ 'numeric' => 'The :attribute must be a number.',
+ 'present' => 'The :attribute field must be present.',
+ 'regex' => 'The :attribute format is invalid.',
+ 'required' => 'The ":attribute" field is required.',
+ 'required_if' => 'The :attribute field is required when :other is :value.',
+ 'required_unless' => 'The :attribute field is required unless :other is in :values.',
+ 'required_with' => 'The :attribute field is required when :values is present.',
+ 'required_with_all' => 'The :attribute field is required when :values is present.',
+ 'required_without' => 'The :attribute field is required when :values is not present.',
+ 'required_without_all' => 'The :attribute field is required when none of :values are present.',
+ 'same' => 'The :attribute and :other must match.',
+ 'size' => [
+ 'numeric' => 'The :attribute must be :size.',
+ 'file' => 'The :attribute must be :size kilobytes.',
+ 'string' => 'The :attribute must be :size characters.',
+ 'array' => 'The :attribute must contain :size items.',
+ ],
+ 'string' => 'The :attribute must be a string.',
+ 'timezone' => 'The :attribute must be a valid zone.',
+ 'unique' => 'The :attribute has already been taken.',
+ 'url' => 'The :attribute format is invalid.',
+
+ /*
+ * Custom Validation Language Lines
+ */
+
+ 'custom' => [
+ 'airline_id' => [
+ 'required' => 'An airline is required',
+ 'exists' => 'The airline doesn\'t exist',
+ ],
+ 'aircraft_id' => [
+ 'required' => 'An aircraft is required',
+ 'exists' => 'The aircraft doesn\'t exist',
+ ],
+ 'arr_airport_id' => [
+ 'required' => 'An arrival airport is required',
+ ],
+ 'dpt_airport_id' => [
+ 'required' => 'A departure airport is required',
+ ],
+ 'flight_time' => [
+ 'required' => 'Flight time, in minutes, is required',
+ 'integer' => 'Flight time, in minutes, is required',
+ ],
+ 'planned_flight_time' => [
+ 'required' => 'Flight time, in minutes, is required',
+ 'integer' => 'Flight time, in minutes, is required',
+ ],
+ 'source_name' => [
+ 'required' => 'PIREP Source is required',
+ ],
+ 'g-recaptcha-response' => [
+ 'required' => 'Please verify that you are not a robot.',
+ 'captcha' => 'Captcha error! try again later or contact site admin.',
+ ],
+ ],
+
+ /*
+ * Custom Validation Attributes
+ */
+
+ 'attributes' => [],
+
+];
diff --git a/resources/lang/jp/widgets.php b/resources/lang/jp/widgets.php
new file mode 100644
index 000000000..8e7287c50
--- /dev/null
+++ b/resources/lang/jp/widgets.php
@@ -0,0 +1,34 @@
+ [
+ 'news' => 'ニュース',
+ 'nonewsfound' => 'ニュースが見つかりません',
+ ],
+
+ 'livemap' => [
+ 'groundspeed' => '地上速度',
+ 'altitude' => '高度',
+ 'heading' => '針路',
+ 'distance' => '距離',
+ 'noflights' => 'フライトが見つかりません。',
+ 'gs' => 'GS',
+ ],
+
+ 'weather' => [
+ 'nometar' => 'METAR/TAF 情報入手不可',
+ 'conditions' => '状況',
+ 'visibility' => '視界',
+ 'temp' => '温度',
+ 'humidity' => '湿度',
+ 'dewpoint' => '氷点下',
+ 'barometer' => '気圧計',
+ 'clouds' => '雲',
+ 'wind' => '風',
+ 'remarks' => '備考',
+ 'guststo' => '突風の',
+ 'updated' => '変更済み',
+ 'hrago' => '時間前',
+ 'minago' => '分前',
+ ],
+];