diff --git a/README.md b/README.md
index ec5edd2b..09b52a35 100644
--- a/README.md
+++ b/README.md
@@ -18,7 +18,7 @@ But it adapts the same ideas and a clean & simple UI for your time-tracking expe
By now it is in an almost-stable development phase, usable and with most advanced features from Kimai 1.
You can even [import your data](https://www.kimai.org/documentation/migration-v1.html) and start testing and using it today.
-Kimai is a [multi-language application](https://www.kimai.org/documentation/translations.html) and already translated to english, german, italian, french, spanish, russian, arabic, hungarian, portuguese (brazilian) and swedish.
+Kimai is a [multi-language application](https://www.kimai.org/documentation/translations.html) and already translated to english, german, italian, french, spanish, russian, arabic, hungarian, portuguese (brazilian), swedish and japanese.
### Requirements
diff --git a/config/packages/kimai.yaml b/config/packages/kimai.yaml
index 7dc152ce..992ff132 100644
--- a/config/packages/kimai.yaml
+++ b/config/packages/kimai.yaml
@@ -176,6 +176,12 @@ kimai:
date: 'Y-m-d'
date_time: 'm-d H:i'
duration: '%%h:%%m tim'
+ ja:
+ date_time_type: 'yyyy-MM-dd HH:mm'
+ date_type: 'yyyy-MM-dd'
+ date: 'Y-m-d'
+ date_time: 'm-d H:i'
+ duration: '%%h:%%m tim'
# --------------------------------------------------------------------------------
# timesheet calendar configuration
diff --git a/config/services.yaml b/config/services.yaml
index a3607a23..fc08834c 100644
--- a/config/services.yaml
+++ b/config/services.yaml
@@ -2,7 +2,7 @@
# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: en
- app_locales: en|de|it|fr|es|ru|ar|hu|pt_BR|sv
+ app_locales: en|de|it|fr|es|ru|ar|hu|pt_BR|sv|ja
services:
# default configuration for services in *this* file
diff --git a/translations/about.ja.xliff b/translations/about.ja.xliff
new file mode 100644
index 00000000..14972608
--- /dev/null
+++ b/translations/about.ja.xliff
@@ -0,0 +1,47 @@
+
+
+
+
+
+ about.title
+ Kimai について
+
+
+ about.subtitle
+ システム情報
+
+
+ support
+ サポート
+
+
+ website
+ ホームページ
+
+
+ help
+ ドキュメント
+
+
+ tab.thanks
+ 謝辞
+
+
+ donate
+ Kimai の発展のために寄付を行う
+
+
+ published_under
+ %kimai% は次のもとに公開されています
+
+
+ special_thanks
+ Special thanks go to …
+
+
+ library_authors
+ … これらのソフトウェア・ライブラリなくして Kimai は実現できませんでした。作成者の方々に感謝します 👍
+
+
+
+
diff --git a/translations/daterangepicker.ja.xliff b/translations/daterangepicker.ja.xliff
new file mode 100644
index 00000000..9127aba3
--- /dev/null
+++ b/translations/daterangepicker.ja.xliff
@@ -0,0 +1,51 @@
+
+
+
+
+
+ daterangepicker.apply
+ 適用する
+
+
+ daterangepicker.cancel
+ キャンセル
+
+
+ daterangepicker.today
+ 今日
+
+
+ daterangepicker.yesterday
+ 昨日
+
+
+ daterangepicker.lastWeek
+ 先週
+
+
+ daterangepicker.thisWeek
+ 今週
+
+
+ daterangepicker.lastMonth
+ 先月
+
+
+ daterangepicker.thisMonth
+ 今月
+
+
+ daterangepicker.lastYear
+ 去年
+
+
+ daterangepicker.thisYear
+ 今年
+
+
+ daterangepicker.customRange
+ 期間指定
+
+
+
+
diff --git a/translations/exceptions.ja.xliff b/translations/exceptions.ja.xliff
new file mode 100644
index 00000000..61396b5b
--- /dev/null
+++ b/translations/exceptions.ja.xliff
@@ -0,0 +1,53 @@
+
+
+
+
+
+ access.denied
+ アクセスが拒否されました
+
+
+ stacktrace
+ ここで問題が発生しました
+
+
+ http_error.title
+ エラー
+
+
+ http_error.description
+ Oops! エラーが発生しました。
+
+
+ http_error.suggestion
+
+ 予期せぬエラーが発生しました。再試行してください。
+ バグが存在する可能性があります。
+ もし再試行しても問題が残るようでしたら、サーバーの管理者に連絡してください。
+
+
+
+ http_error_404.description
+ Oops! ページが見付かりませんでした。
+
+
+ http_error_404.suggestion
+
+ お探しのページを見付けることができませんでした。
+ しばらくしてから、ダッシュボードからやり直してください。
+
+
+
+ http_error_403.description
+ このページへのアクセスは制限されています。
+
+
+ http_error_403.suggestion
+
+ 残念ながら、あなたはこのページを表示するのに十分な権限をお持ちではありません。
+ もしもエラーの可能性があるようでしたら、サーバーの管理者に連絡してください。
+
+
+
+
+
diff --git a/translations/flashmessages.ja.xliff b/translations/flashmessages.ja.xliff
new file mode 100644
index 00000000..4aadaf63
--- /dev/null
+++ b/translations/flashmessages.ja.xliff
@@ -0,0 +1,47 @@
+
+
+
+
+
+ timesheet.stop.success
+ 時間の記録を終了しました
+
+
+ timesheet.stop.error
+ 時間の記録を終了できませんでした
+
+
+ timesheet.start.success
+ 時間の記録を開始しました
+
+
+ timesheet.start.error
+ 時間の記録を開始できませんでした: %reason%
+
+
+ timesheet.start.exceeded_limit
+ 時間記録プロセスの制限数に到達しました。先にいずれかの実行中の記録プロセスを終了させてください。
+
+
+ action.update.success
+ 変更を保存しました
+
+
+ action.update.error
+ 変更を保存できませんでした: %reason%
+
+
+ action.delete.success
+ エントリを削除しました
+
+
+ action.delete.error
+ エントリを削除できませんでした: %reason%
+
+
+ invoice.first_template
+ 事前に請求書のテンプレートを作成する必要があります
+
+
+
+
diff --git a/translations/invoice-calculator.ja.xliff b/translations/invoice-calculator.ja.xliff
new file mode 100644
index 00000000..f7a39d7e
--- /dev/null
+++ b/translations/invoice-calculator.ja.xliff
@@ -0,0 +1,27 @@
+
+
+
+
+
+ label.invoice_calculator
+ 合計の計算方法
+
+
+ default
+ エントリ基準 - 時間を記録した個々の明細を出力します (デフォルト)
+
+
+ short
+ 時間の積算 - 結果を 1 行に集約します
+
+
+ user
+ ユーザーでグループ化 - ユーザーごとに 1 行出力します
+
+
+ activity
+ アクティビティでグループ化 - アクティビティごとに 1 行出力します
+
+
+
+
diff --git a/translations/invoice-numbergenerator.ja.xliff b/translations/invoice-numbergenerator.ja.xliff
new file mode 100644
index 00000000..80f36ce3
--- /dev/null
+++ b/translations/invoice-numbergenerator.ja.xliff
@@ -0,0 +1,15 @@
+
+
+
+
+
+ label.invoice_number_generator
+ 請求書番号 ジェネレーター
+
+
+ default
+ 日付 (デフォルト)
+
+
+
+
diff --git a/translations/invoice-renderer.ja.xliff b/translations/invoice-renderer.ja.xliff
new file mode 100644
index 00000000..2c0f9554
--- /dev/null
+++ b/translations/invoice-renderer.ja.xliff
@@ -0,0 +1,39 @@
+
+
+
+
+
+ label.invoice_renderer
+ 請求書
+
+
+ default
+ 請求書 (デフォルト)
+
+
+ timesheet
+ タイムシート
+
+
+ freelancer
+ フリーランサー
+
+
+ open-spreadsheet
+ Calc スプレッドシート
+
+
+ spreadsheet
+ Excel
+
+
+ export
+ データのエクスポート
+
+
+ company
+ 企業の請求書
+
+
+
+
diff --git a/translations/messages.ja.xliff b/translations/messages.ja.xliff
new file mode 100644
index 00000000..e83dfc3a
--- /dev/null
+++ b/translations/messages.ja.xliff
@@ -0,0 +1,999 @@
+
+
+
+
+
+
+ time_tracking
+ タイムトラッキング
+
+
+ yes
+ はい
+
+
+ no
+ いいえ
+
+
+ both
+ 両方
+
+
+ This is a mandatory field
+ 必須
+
+
+ create
+ 新規作成
+
+
+ confirm.delete
+ 本当に削除してもよろしいですか?
+
+
+ confirm.delete_message
+ 本当に削除しても問題無いかどうかを確認してください。紐付けられたオブジェクトが存在しますが、こちらも同時に削除されます。
+
+
+ delete.not_in_use
+ このアイテムは安全に削除できます。
+
+
+
+
+ label.password
+ パスワード
+
+
+ label.password_repeat
+ パスワードをリセットする
+
+
+ label.logout
+ ログアウト
+
+
+ label.user_profile
+ プロフィール
+
+
+ label.api_token
+ API パスワード
+
+
+ label.api_token_repeat
+ API パスワードをリセットする
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ error.no_entries_found
+ 指定されたフィルタ条件に該当するエントリは見付かりませんでした。
+
+
+
+
+ label.date
+ 日付
+
+
+ label.starttime
+ 開始
+
+
+ label.endtime
+ 終了
+
+
+ label.duration
+ 期間
+
+
+ label.user
+ ユーザー
+
+
+ label.username
+ ユーザー ID
+
+
+ label.description
+ 説明
+
+
+ label.name
+ 名前
+
+
+
+ label.id
+ ID
+
+
+ label.visible
+ 公開する
+
+
+ label.budget
+ 予算
+
+
+ label.activity
+ アクティビティ
+
+
+ label.project
+ プロジェクト
+
+
+ label.hourlyRate
+ 時間給
+
+
+ label.hourly_rate
+ 時間給
+
+
+ label.skin
+ Kimai テーマ
+
+
+ label.hours
+ 時間
+
+
+ label.rate
+ 給与
+
+
+ label.language
+ 言語
+
+
+ label.customer
+ 得意先
+
+
+ label.email
+ Email
+
+
+ label.create_more
+ 未来のエントリを作成する
+
+
+
+
+ label.actions
+ 実行する
+
+
+ action.edit
+ 編集する
+
+
+ action.delete
+ 削除する
+
+
+ action.save
+ 保存する
+
+
+ action.back
+ 戻る
+
+
+ action.close
+ 閉じる
+
+
+
+
+ dashboard.title
+ ダッシュボード
+
+
+ dashboard.subtitle
+ Willkommen! (ようこそ!)
+
+
+ dashboard.you
+ 統計情報
+
+
+ dashboard.all
+ 全ユーザー
+
+
+ dashboard.admin
+ 管理者
+
+
+
+
+ more.info.link
+ もっと見る
+
+
+ label.toggle_dropdown
+ メニューを表示する
+
+
+
+
+ timesheet.title
+ 時間記録
+
+
+ timesheet.subtitle
+ 時間記録の管理
+
+
+ timesheet.edit
+ 明細を編集する
+
+
+ label.begin
+ From
+
+
+ label.end
+ To
+
+
+ label.daterange
+ 期間
+
+
+ modal.columns.title
+ 列の公開状態を変更する
+
+
+ modal.columns.description
+ 保存すると、チェックされていない列が非表示になります。この設定はブラウザの Cookie に保存されます。Cookie を削除すると、設定は初期化されます。
+
+
+ label.fixedRate
+ 固定給
+
+
+ label.color
+ 色
+
+
+
+
+ profile.title
+ プロフィール
+
+
+ profile.subtitle
+ 設定の編集
+
+
+ profile.about_me
+ あなたについて
+
+
+ profile.first_entry
+ 登録日
+
+
+ profile.settings
+ プロフィール
+
+
+ profile.password
+ パスワード
+
+
+ profile.api-token
+ API
+
+
+ profile.roles
+ ロール
+
+
+ profile.preferences
+ 設定
+
+
+
+ label.calendar.initial_view
+ カレンダー表示の初期状態
+
+
+ label.login.initial_view
+ ログイン後に表示するページ
+
+
+
+ month
+ 月
+
+
+ agendaWeek
+ 週
+
+
+ agendaDay
+ 日
+
+
+ label.timesheet.daily_stats
+ タイムシートに日次の統計情報を表示する
+
+
+
+
+ calendar.title
+ カレンダー
+
+
+ calendar.subtitle
+ カレンダー上におけるタイムシートの参照・管理
+
+
+
+
+ admin_timesheet.title
+ タイムシート
+
+
+ admin_timesheet.subtitle
+ 全ユーザーの記録
+
+
+
+
+ admin_project.title
+ プロジェクト
+
+
+ admin_project.subtitle
+ プロジェクトは得意先に対するアクティビティをグループ化します。
+
+
+ admin_project.delete_confirm
+
+ これは %project% プロジェクトです。得意先は %customer% です。%activities% 個の
+ アクティビティが登録されており、%records% 件の時間が記録されています。合計すると %duration% になります。
+ これらのアクティビティと時間記録が一緒に削除されます!
+ 削除する代わりに、既存のアクティビティとエントリをすべて、他のプロジェクトに移行することもできます:
+
+
+
+
+
+ admin_activity.title
+ アクティビティ
+
+
+ admin_activity.subtitle
+ 時間記録時に指定するタスクのことです。
+
+
+ admin_activity.delete_confirm
+
+ これは %activity% アクティビティです。得意先が %customer% である %project% プロジェクトに所属しています。
+ %records% 件の時間が記録されています。合計すると %duration% になります。
+ これらの時間記録が一緒に削除されます!
+ 削除する代わりに、既存のエントリをすべて、他のアクティビティに移行することもできます:
+
+
+
+
+
+ admin_customer.title
+ 得意先
+
+
+ admin_customer.subtitle
+ 得意先はプロジェクトとアクティビティを作成するベースになります。
+
+
+ label.number
+ 口座
+
+
+ label.company
+ 会社名
+
+
+ label.vat
+ 税
+
+
+ label.contact
+ コンタクト
+
+
+ label.address
+ 住所
+
+
+ label.country
+ 国
+
+
+ label.phone
+ 電話
+
+
+ label.fax
+ Fax
+
+
+ label.mobile
+ 携帯電話
+
+
+ label.homepage
+ ホームページ
+
+
+ label.timezone
+ タイムゾーン
+
+
+ label.currency
+ 通過
+
+
+ admin_customer.delete_confirm
+
+ これは得意先 %customer% です。%project% 個のプロジェクトと、その配下に %activity% 個のアクティビティが登録されており、
+ すべて合わせて %records% 件の時間が記録されています。合計すると %duration% になります。
+ これらのプロジェクト、アクティビティ、時間記録が一緒に削除されます!
+ 削除する代わりに、すべてのデータを、他のプロジェクトに移行することもできます:
+
+
+
+
+
+ admin_user.title
+ ユーザー
+
+
+ admin_user.subtitle
+ この Kimai サーバーに登録されているすべてのユーザーです。
+
+
+ label.alias
+ 名前
+
+
+ label.title
+ タイトル
+
+
+ label.avatar
+ プロフィール画像
+
+
+ label.active
+ 有効
+
+
+ label.roles
+ ロール
+
+
+ admin_user.delete_confirm
+
+ この %user% ユーザーには %records% 件の時間が記録されています。合計すると %duration% になります。
+ これらの時間記録が一緒に削除されます!
+
+
+
+
+
+ label.version
+ バージョン
+
+
+ label.required_version
+ 適合するもの
+
+
+
+
+ ROLE_SUPER_ADMIN
+ システム管理者
+
+
+ ROLE_ADMIN
+ 管理者
+
+
+ ROLE_TEAMLEAD
+ チームリーダー
+
+
+ ROLE_USER
+ ユーザー
+
+
+
+
+ stats.durationToday
+ 今日の活動時間
+
+
+ stats.durationWeek
+ 今週の活動時間
+
+
+ stats.durationMonth
+ 今月の活動時間
+
+
+ stats.durationYear
+ 今年の活動時間
+
+
+ stats.durationTotal
+ 活動時間の合計
+
+
+ stats.amountToday
+ 今日の収入
+
+
+ stats.amountWeek
+ 今週の収入
+
+
+ stats.amountMonth
+ 今月の収入
+
+
+ stats.amountYear
+ 今年の収入
+
+
+ stats.amountTotal
+ 収入の合計
+
+
+ stats.userActiveToday
+ 今日活動したユーザー数
+
+
+ stats.userActiveWeek
+ 今週活動したユーザー数
+
+
+ stats.userActiveMonth
+ 今月活動したユーザー数
+
+
+ stats.userActiveYear
+ 今年活動したユーザー数
+
+
+ stats.userActiveTotal
+ これまでに活動した全ユーザー数
+
+
+ stats.activeRecordings
+ 進行中の時間記録プロセス数
+
+
+ stats.userTotal
+ ユーザー数の合計
+
+
+ stats.activityTotal
+ アクティビティ数の合計
+
+
+ stats.projectTotal
+ プロジェクト数の合計
+
+
+ stats.customerTotal
+ 得意先数の合計
+
+
+
+
+ admin_invoice_template.title
+ 請求書のテンプレート
+
+
+ admin_invoice_template.subtitle
+ 請求書のテンプレートはデータのエクスポート時に利用できます。
+
+
+ invoice.title
+ 請求書
+
+
+ invoice.subtitle
+ タイムシートに記録したエントリから請求書を作成します。
+
+
+ invoice.preview
+ これは請求書に出力されるデータのプレビューです。
+
+
+ button.print
+ 出力
+
+
+ button.csv
+ CSV
+
+
+ button.xlsx
+ Excel
+
+
+ button.pdf
+ PDF
+
+
+ button.ods
+ ODS
+
+
+ invoice_print
+ 請求書
+
+
+ label.template
+ テンプレート
+
+
+ label.due_days
+ 請求対象期間
+
+
+ invoice.due_days
+ 請求対象
+
+
+ invoice.from
+ From
+
+
+ invoice.to
+ To
+
+
+ invoice.number
+ 請求書番号
+
+
+ invoice.subtotal
+ 小計
+
+
+ invoice.tax
+ 税
+
+
+ invoice.total
+ 合計
+
+
+ invoice.service_date
+ サービス日
+
+
+ label.amount
+ 量
+
+
+ label.total_rate
+ 合計金額
+
+
+ label.unit_price
+ 単価
+
+
+ label.payment_terms
+ 支払条件
+
+
+ invoice.signature_user
+ ご確認: 日付 / 当方 / 署名
+
+
+ invoice.signature_customer
+ ご確認: 日付 / 貴方 / 署名
+
+
+ invoice.total_working_time
+ 合計期間
+
+
+ label.orderNumber
+ 注文番号
+
+
+ label.invoice_tax_number
+ VAT (付加価値税) no.:
+
+
+ label.invoice_bank_account
+ 銀行口座
+
+
+ label.invoice_salutation
+
+ ご注文を頂きましたことならびにお支払い頂きますことに対して深く感謝申し上げます:
+
+
+
+
+
+ export.title
+ エクスポート
+
+
+ export.subtitle
+ タイムシートのデータを種々のフォーマットにエクスポートします。
+
+
+ export.period
+ 期間
+
+
+ export.document_title
+ 費用のリスト
+
+
+ export.full_list
+ 完全なリスト
+
+
+ export.summary
+ 合計
+
+
+ export.page_of
+ %page% / %pages% ページ
+
+
+ export.date_copyright
+ %kimai% で %date% に作成されました
+
+
+
+
+ month.1
+ 1 月
+
+
+ month.2
+ 2 月
+
+
+ month.3
+ 3 月
+
+
+ month.4
+ 4 月
+
+
+ month.5
+ 5 月
+
+
+ month.6
+ 6 月
+
+
+ month.7
+ 7 月
+
+
+ month.8
+ 8 月
+
+
+ month.9
+ 9 月
+
+
+ month.10
+ 10 月
+
+
+ month.11
+ 11 月
+
+
+ month.12
+ 12 月
+
+
+
+
+ active.entries
+ あなたの進行中の時間記録プロセス
+
+
+ timesheet.all
+ すべての記録を見る
+
+
+ recent.activities
+ 最後のアクティビティを再度行う
+
+
+ recent.activities.format
+ 得意先 %customer% - %project% プロジェクト - %activity% アクティビティ
+
+
+ timesheet.start
+ 新たに時間記録を始める
+
+
+
+
+ label.pageSize
+ 1 ページあたりのサイズ
+
+
+ label.entryState
+ 記録状態
+
+
+ label.exported
+ エクスポート状態
+
+
+ entryState.exported
+ 処理済
+
+
+ entryState.not_exported
+ 未処理
+
+
+ entryState.all
+ すべて
+
+
+ entryState.running
+ 活動中
+
+
+ entryState.stopped
+ 停止
+
+
+ export.clear_all
+ すべての記録を未処理の状態にしますか?
+
+
+ export.mark_all
+ すべての記録を清算済の状態にしますか?
+
+
+ label.globalsOnly
+ グローバルオンリー
+
+
+
+
diff --git a/translations/pagerfanta.ja.xliff b/translations/pagerfanta.ja.xliff
new file mode 100644
index 00000000..9e7c25b6
--- /dev/null
+++ b/translations/pagerfanta.ja.xliff
@@ -0,0 +1,15 @@
+
+
+
+
+
+ 前へ
+
+
+
+ 次へ
+
+
+
+
+
diff --git a/translations/plugins.ja.xliff b/translations/plugins.ja.xliff
new file mode 100644
index 00000000..97df823a
--- /dev/null
+++ b/translations/plugins.ja.xliff
@@ -0,0 +1,23 @@
+
+
+
+
+
+ plugins.title
+ プラグイン
+
+
+ plugins.subtitle
+ プラグインによって Kimai の機能性を高めることができます。
+
+
+ plugin.none_installed
+ インストールされたプラグインは存在しません。
+
+
+ plugin.marketplace
+ Kimai マーケットプレイス
+
+
+
+
diff --git a/translations/system-configuration.ja.xliff b/translations/system-configuration.ja.xliff
new file mode 100644
index 00000000..1bbdcba3
--- /dev/null
+++ b/translations/system-configuration.ja.xliff
@@ -0,0 +1,59 @@
+
+
+
+
+
+ title
+ 設定
+
+
+ subtitle
+ タイムトラッカーの共通設定を変更します。
+
+
+ timesheet
+ タイムシート
+
+
+ form_customer
+ 得意先を追加する時のデフォルト値
+
+
+ theme
+ テーマ
+
+
+ label.timesheet.markdown_content
+ タイムシートの説明文を Markdown 書式で書けるようにする
+
+
+ label.timesheet.mode
+ タイムトラッキング モード
+
+
+ label.timesheet.mode_default
+ デフォルト: 開始日時と終了日時を入力する
+
+
+ label.timesheet.mode_duration_only
+ 継続時間のみ: 終了日時の代わりに継続時間を入力する
+
+
+ label.timesheet.rules.allow_future_times
+ 未来時間の入力を許容する
+
+
+ label.timesheet.active_entries.hard_limit
+ こちらの数までのエントリを同じ期間内に入力可能とする
+
+
+ label.timesheet.active_entries.soft_limit
+ 同時進行のエントリがこちらの数以上である場合に警告を表示する
+
+
+ label.theme.select_type
+ 入力フォームにおける選択ボックスの種類
+
+
+
+
diff --git a/translations/validators.ja.xliff b/translations/validators.ja.xliff
new file mode 100644
index 00000000..186b8e0e
--- /dev/null
+++ b/translations/validators.ja.xliff
@@ -0,0 +1,19 @@
+
+
+
+
+
+ This value is not a valid role.
+ この値は有効ではありません。
+
+
+ End date must not be earlier then start date.
+ 終了日に、開始日よりも過去の日を設定することはできません。
+
+
+ The begin date cannot be in the future.
+ 開始日に、未来日を設定することはできません。
+
+
+
+