From 1036fb6af2e2d9729e0ea8e1baed3aaf7ec7a29f Mon Sep 17 00:00:00 2001 From: ovrs <55413049+ovrs@users.noreply.github.com> Date: Sun, 1 Aug 2021 19:56:41 -0400 Subject: [PATCH 01/15] minor grammar fix --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 35ea46942..7b119d567 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ - iOS 14.0+ ## Setup -We needs the latest version Xcode from App Store. And use Cocoapods for dependency management. +We need the latest version of Xcode from App Store. And use Cocoapods for dependency management. ### CocoaPods From 6b3df75f951d7af518caa3b0390b6e0f34224693 Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 16:39:33 +0800 Subject: [PATCH 02/15] chore: setup Crowdin integration --- crowdin.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 crowdin.yml diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 000000000..9c86d0961 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,30 @@ +# +# Files configuration +# +files: [ + { + # + # Source files filter + # e.g. "/resources/en/*.json" + # + "source" : "/Localization/app.json", + + # + # Where translations will be placed + # e.g. "/resources/%two_letters_code%/%original_file_name%" + # + "translation" : "/Localization/StringsConvertor/input/%two_letters_code%/%original_file_name%", + + # + # The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings + # e.g. "update_as_unapproved" or "update_without_changes" + # + "update_option" : "update_as_unapproved", + # + }, + { + "source" : "/Localization/ios-infoPlist.json", + "translation" : "/Localization/StringsConvertor/input/%two_letters_code%/%original_file_name%", + "update_option" : "update_as_unapproved", + } +] \ No newline at end of file From d3fe6075598f4400039bf088afb598490bedf408 Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 17:00:03 +0800 Subject: [PATCH 03/15] chore: update translation settings --- crowdin.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crowdin.yml b/crowdin.yml index 9c86d0961..6d47ef917 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -13,7 +13,7 @@ files: [ # Where translations will be placed # e.g. "/resources/%two_letters_code%/%original_file_name%" # - "translation" : "/Localization/StringsConvertor/input/%two_letters_code%/%original_file_name%", + "translation" : "/Localization/StringsConvertor/input/%locale_with_underscore%/%original_file_name%", # # The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings @@ -24,7 +24,7 @@ files: [ }, { "source" : "/Localization/ios-infoPlist.json", - "translation" : "/Localization/StringsConvertor/input/%two_letters_code%/%original_file_name%", + "translation" : "/Localization/StringsConvertor/input/%locale_with_underscore%/%original_file_name%", "update_option" : "update_as_unapproved", } ] \ No newline at end of file From a19f7cbb409964e631f963722e227b283ae1294e Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 19:24:34 +0800 Subject: [PATCH 04/15] chore: move intent definition file into directory --- Mastodon.xcodeproj/project.pbxproj | 2 +- .../xcschemes/xcschememanagement.plist | 8 ++++---- .../Base.lproj}/Intents.intentdefinition | 0 {ar.lproj => MastodonIntent/ar.lproj}/Intents.strings | 0 {en.lproj => MastodonIntent/en.lproj}/Intents.strings | 0 5 files changed, 5 insertions(+), 5 deletions(-) rename {Base.lproj => MastodonIntent/Base.lproj}/Intents.intentdefinition (100%) rename {ar.lproj => MastodonIntent/ar.lproj}/Intents.strings (100%) rename {en.lproj => MastodonIntent/en.lproj}/Intents.strings (100%) diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index 1f3db09e5..a3cb73efb 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -2033,7 +2033,6 @@ DB427DC925BAA00100D1B89D = { isa = PBXGroup; children = ( - DB0009A926AEE5DC009B9D2D /* Intents.intentdefinition */, DBF53F5F25C14E88008AAC7B /* Mastodon.xctestplan */, DBF53F6025C14E9D008AAC7B /* MastodonSDK.xctestplan */, DB3D0FED25BAA42200EAA174 /* MastodonSDK */, @@ -2599,6 +2598,7 @@ DB8FABC826AEC7B2008E5AF4 /* MastodonIntent */ = { isa = PBXGroup; children = ( + DB0009A926AEE5DC009B9D2D /* Intents.intentdefinition */, DB8FABD626AEC864008E5AF4 /* MastodonIntent.entitlements */, DB8FABC926AEC7B2008E5AF4 /* IntentHandler.swift */, DBB8AB4526AECDE200F6D281 /* SendPostIntentHandler.swift */, diff --git a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist index 88e425539..0dd2f7853 100644 --- a/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Mastodon.xcodeproj/xcuserdata/mainasuk.xcuserdatad/xcschemes/xcschememanagement.plist @@ -7,12 +7,12 @@ AppShared.xcscheme_^#shared#^_ orderHint - 26 + 24 CoreDataStack.xcscheme_^#shared#^_ orderHint - 24 + 23 Mastodon - ASDK.xcscheme_^#shared#^_ @@ -37,7 +37,7 @@ MastodonIntent.xcscheme_^#shared#^_ orderHint - 25 + 26 MastodonIntents.xcscheme_^#shared#^_ @@ -57,7 +57,7 @@ ShareActionExtension.xcscheme_^#shared#^_ orderHint - 23 + 25 SuppressBuildableAutocreation diff --git a/Base.lproj/Intents.intentdefinition b/MastodonIntent/Base.lproj/Intents.intentdefinition similarity index 100% rename from Base.lproj/Intents.intentdefinition rename to MastodonIntent/Base.lproj/Intents.intentdefinition diff --git a/ar.lproj/Intents.strings b/MastodonIntent/ar.lproj/Intents.strings similarity index 100% rename from ar.lproj/Intents.strings rename to MastodonIntent/ar.lproj/Intents.strings diff --git a/en.lproj/Intents.strings b/MastodonIntent/en.lproj/Intents.strings similarity index 100% rename from en.lproj/Intents.strings rename to MastodonIntent/en.lproj/Intents.strings From bccdb6602320c2355482594bc4cadb3f9f08de85 Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 19:24:46 +0800 Subject: [PATCH 05/15] chore: update README --- Localization/README.md | 13 ++++++++----- README.md | 3 +++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Localization/README.md b/Localization/README.md index b6baf1788..ac32319cc 100644 --- a/Localization/README.md +++ b/Localization/README.md @@ -1,20 +1,23 @@ # Localization +[![Crowdin](https://badges.crowdin.net/mastodon-for-ios/localized.svg)](https://crowdin.com/project/mastodon-for-ios) Mastodon localization template file ## How to contribute? -TBD +Please use the [Crodwin](https://crowdin.com/project/mastodon-for-ios) to contribute. If your language is not in the list. Please feel free to open the issue. ## How to maintains +The project use a script to generate Xcode localized strings files. + ```zsh // enter workdir cd Mastodon -// edit i18n json -open ./Localization/app.json -// update resource -update_localization.sh +// merge PR from Crowdin bot + +// update resource +./update_localization.sh ``` \ No newline at end of file diff --git a/README.md b/README.md index 7b119d567..d8f7a9c6e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ # Mastodon +[![CI](https://github.com/mastodon/mastodon-ios/actions/workflows/main.yml/badge.svg)](https://github.com/mastodon/mastodon-ios/actions/workflows/main.yml) [![Crowdin](https://badges.crowdin.net/mastodon-for-ios/localized.svg)](https://crowdin.com/project/mastodon-for-ios) + + Download on the App Store ## Requirements From 120fc83b16a402b89c360059ae15d19c3ba1bd62 Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 19:29:57 +0800 Subject: [PATCH 06/15] chore: update Crowdin configuration --- crowdin.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/crowdin.yml b/crowdin.yml index 6d47ef917..4b5310c73 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -26,5 +26,10 @@ files: [ "source" : "/Localization/ios-infoPlist.json", "translation" : "/Localization/StringsConvertor/input/%locale_with_underscore%/%original_file_name%", "update_option" : "update_as_unapproved", + }, + { + "source" : "/MastodonIntent/en.lproj/Intents.strings", + "translation" : "/Localization/StringsConvertor/Intents/input/%locale_with_underscore%/%original_file_name%", + "update_option" : "update_as_unapproved", } ] \ No newline at end of file From 777d4e9bc06a2c4b731a05618c3f7ef34cc89b45 Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 19:42:55 +0800 Subject: [PATCH 07/15] fix: CI build issue --- Podfile | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Podfile b/Podfile index b976556b9..868af1a96 100644 --- a/Podfile +++ b/Podfile @@ -55,4 +55,12 @@ plugin 'cocoapods-keys', { "notification_endpoint", "notification_endpoint_debug" ] -} \ No newline at end of file +} + +post_install do |installer| + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings.delete 'IPHONEOS_DEPLOYMENT_TARGET' + end + end +end \ No newline at end of file From 53e9243310183b626c4f50263d97afde4a500f41 Mon Sep 17 00:00:00 2001 From: CMK Date: Mon, 2 Aug 2021 19:55:14 +0800 Subject: [PATCH 08/15] chore: fix CI env issue --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e1bc703a7..49216e030 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,8 +19,8 @@ jobs: steps: - name: checkout uses: actions/checkout@v2 - - name: force Xcode 12.2 - run: sudo xcode-select -switch /Applications/Xcode_12.2.app + - name: force Xcode 12.4 + run: sudo xcode-select -switch /Applications/Xcode_12.4.app - name: setup run: exec ./.github/scripts/setup.sh - name: build From 780c1846408379e1dfa91a28bd236916994dc822 Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 14:09:06 +0900 Subject: [PATCH 09/15] Add: add japanese --- Mastodon.xcodeproj/project.pbxproj | 9 + .../xcshareddata/swiftpm/Package.resolved | 6 +- Mastodon/Resources/ja.lproj/InfoPlist.strings | 4 + .../Resources/ja.lproj/Localizable.strings | 344 ++++++++++++++++++ .../ja.lproj/Localizable.stringsdict | 138 +++++++ ja.lproj/Intents.strings | 52 +++ 6 files changed, 550 insertions(+), 3 deletions(-) create mode 100644 Mastodon/Resources/ja.lproj/InfoPlist.strings create mode 100644 Mastodon/Resources/ja.lproj/Localizable.strings create mode 100644 Mastodon/Resources/ja.lproj/Localizable.stringsdict create mode 100644 ja.lproj/Intents.strings diff --git a/Mastodon.xcodeproj/project.pbxproj b/Mastodon.xcodeproj/project.pbxproj index a3cb73efb..490276427 100644 --- a/Mastodon.xcodeproj/project.pbxproj +++ b/Mastodon.xcodeproj/project.pbxproj @@ -1287,6 +1287,10 @@ DBFEF07A26A6BCE8006D7ED1 /* APIService+Status+Publish.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "APIService+Status+Publish.swift"; sourceTree = ""; }; DDB1B139FA8EA26F510D58B6 /* Pods-AppShared.asdk - release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppShared.asdk - release.xcconfig"; path = "Target Support Files/Pods-AppShared/Pods-AppShared.asdk - release.xcconfig"; sourceTree = ""; }; E5C7236E58D14A0322FE00F2 /* Pods-Mastodon-MastodonUITests.asdk - debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Mastodon-MastodonUITests.asdk - debug.xcconfig"; path = "Target Support Files/Pods-Mastodon-MastodonUITests/Pods-Mastodon-MastodonUITests.asdk - debug.xcconfig"; sourceTree = ""; }; + E9AABD3D26B64B8C00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Intents.strings; sourceTree = ""; }; + E9AABD3E26B64B8D00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ja; path = ja.lproj/Localizable.stringsdict; sourceTree = ""; }; + E9AABD3F26B64B8D00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = ""; }; + E9AABD4026B64B8D00E237DA /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; EC6E707B68A67DB08EC288FA /* Pods-MastodonTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MastodonTests.debug.xcconfig"; path = "Target Support Files/Pods-MastodonTests/Pods-MastodonTests.debug.xcconfig"; sourceTree = ""; }; ECA373ABA86BE3C2D7ED878E /* Pods-AppShared.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppShared.release.xcconfig"; path = "Target Support Files/Pods-AppShared/Pods-AppShared.release.xcconfig"; sourceTree = ""; }; EE13214BC0246BE5210CCC10 /* Pods-AppShared.asdk.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-AppShared.asdk.xcconfig"; path = "Target Support Files/Pods-AppShared/Pods-AppShared.asdk.xcconfig"; sourceTree = ""; }; @@ -3311,6 +3315,7 @@ en, Base, ar, + ja, ); mainGroup = DB427DC925BAA00100D1B89D; packageReferences = ( @@ -4295,6 +4300,7 @@ DB0009A826AEE5DC009B9D2D /* Base */, DB0009AB26AEE5E3009B9D2D /* en */, DB0009AD26AEE5E4009B9D2D /* ar */, + E9AABD3D26B64B8C00E237DA /* ja */, ); name = Intents.intentdefinition; sourceTree = ""; @@ -4304,6 +4310,7 @@ children = ( DB2B3ABD25E37E15007045F9 /* en */, DB0F814E264CFFD300F2A12B /* ar */, + E9AABD4026B64B8D00E237DA /* ja */, ); name = InfoPlist.strings; sourceTree = ""; @@ -4313,6 +4320,7 @@ children = ( DB3D100E25BAA75E00EAA174 /* en */, DB0F814D264CFFD300F2A12B /* ar */, + E9AABD3F26B64B8D00E237DA /* ja */, ); name = Localizable.strings; sourceTree = ""; @@ -4338,6 +4346,7 @@ children = ( DB564BCF269F2F83001E39A7 /* ar */, DB564BD1269F2F8A001E39A7 /* en */, + E9AABD3E26B64B8D00E237DA /* ja */, ); name = Localizable.stringsdict; sourceTree = ""; diff --git a/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved index c6a46992b..82ec4e23b 100644 --- a/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/Mastodon.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -110,7 +110,7 @@ } }, { - "package": "NukeFLAnimatedImagePlugin", + "package": "Nuke-FLAnimatedImage-Plugin", "repositoryURL": "https://github.com/kean/Nuke-FLAnimatedImage-Plugin.git", "state": { "branch": null, @@ -155,7 +155,7 @@ } }, { - "package": "Introspect", + "package": "SwiftUI-Introspect", "repositoryURL": "https://github.com/siteline/SwiftUI-Introspect.git", "state": { "branch": null, @@ -200,7 +200,7 @@ } }, { - "package": "UITextView+Placeholder", + "package": "UITextView-Placeholder", "repositoryURL": "https://github.com/MainasuK/UITextView-Placeholder", "state": { "branch": null, diff --git a/Mastodon/Resources/ja.lproj/InfoPlist.strings b/Mastodon/Resources/ja.lproj/InfoPlist.strings new file mode 100644 index 000000000..710865573 --- /dev/null +++ b/Mastodon/Resources/ja.lproj/InfoPlist.strings @@ -0,0 +1,4 @@ +"NSCameraUsageDescription" = "Used to take photo for post status"; +"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library"; +"NewPostShortcutItemTitle" = "New Post"; +"SearchShortcutItemTitle" = "Search"; \ No newline at end of file diff --git a/Mastodon/Resources/ja.lproj/Localizable.strings b/Mastodon/Resources/ja.lproj/Localizable.strings new file mode 100644 index 000000000..be8ab7dc7 --- /dev/null +++ b/Mastodon/Resources/ja.lproj/Localizable.strings @@ -0,0 +1,344 @@ +"Common.Alerts.BlockDomain.BlockEntireDomain" = "ドメインをブロック"; +"Common.Alerts.BlockDomain.Title" = "本当に%@全体をブロックしたいのですか? ほとんどの場合、いくつかのターゲットを絞ったブロックやミュートで十分ですし、それが望ましいです。そのドメインからのコンテンツが表示されなくなり、そのドメインからのフォロワーもすべて削除されます。"; +"Common.Alerts.CleanCache.Message" = "%@のキャッシュを消去しました。"; +"Common.Alerts.CleanCache.Title" = "キャッシュを消去"; +"Common.Alerts.Common.PleaseTryAgain" = "もう一度お試しください。"; +"Common.Alerts.Common.PleaseTryAgainLater" = "後でもう一度お試しください。"; +"Common.Alerts.DeletePost.Delete" = "消去"; +"Common.Alerts.DeletePost.Title" = "このトゥートを消去しますか?"; +"Common.Alerts.DiscardPostContent.Message" = "Confirm to discard composed post content."; +"Common.Alerts.DiscardPostContent.Title" = "Discard Draft"; +"Common.Alerts.EditProfileFailure.Message" = "プロフィールを編集できません。もう一度お試しください。"; +"Common.Alerts.EditProfileFailure.Title" = "プロフィールを編集できませんでした"; +"Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "複数の動画を添付することはできません。"; +"Common.Alerts.PublishPostFailure.AttachmentsMessage.VideoAttachWithPhoto" = "すでに画像が含まれている投稿に、動画を添付することができません。"; +"Common.Alerts.PublishPostFailure.Message" = "トゥートに失敗しました。 +インターネットに接続されているか確認してください。"; +"Common.Alerts.PublishPostFailure.Title" = "Publish Failure"; +"Common.Alerts.SavePhotoFailure.Message" = "写真を保存するには、フォトライブラリのアクセス許可を有効にしてください。"; +"Common.Alerts.SavePhotoFailure.Title" = "写真の保存に失敗しました"; +"Common.Alerts.ServerError.Title" = "サーバーエラー"; +"Common.Alerts.SignOut.Confirm" = "サインアウト"; +"Common.Alerts.SignOut.Message" = "本当にサインアウトしますか?"; +"Common.Alerts.SignOut.Title" = "サインアウト"; +"Common.Alerts.SignUpFailure.Title" = "サインアップに失敗しました"; +"Common.Alerts.VoteFailure.PollExpired" = "投票は終了しました"; +"Common.Alerts.VoteFailure.Title" = "投票の失敗"; +"Common.Controls.Actions.Add" = "追加"; +"Common.Controls.Actions.Back" = "戻る"; +"Common.Controls.Actions.BlockDomain" = "%@をブロック"; +"Common.Controls.Actions.Cancel" = "キャンセル"; +"Common.Controls.Actions.Confirm" = "確認"; +"Common.Controls.Actions.Continue" = "続ける"; +"Common.Controls.Actions.CopyPhoto" = "写真をコピー"; +"Common.Controls.Actions.Delete" = "消去"; +"Common.Controls.Actions.Discard" = "破棄"; +"Common.Controls.Actions.Done" = "完了"; +"Common.Controls.Actions.Edit" = "編集"; +"Common.Controls.Actions.FindPeople" = "フォローする人を見つける"; +"Common.Controls.Actions.ManuallySearch" = "手動で検索する"; +"Common.Controls.Actions.Next" = "次"; +"Common.Controls.Actions.Ok" = "OK"; +"Common.Controls.Actions.Open" = "開く"; +"Common.Controls.Actions.OpenInSafari" = "Safariで開く"; +"Common.Controls.Actions.Preview" = "プレビュー"; +"Common.Controls.Actions.Previous" = "Previous"; +"Common.Controls.Actions.Remove" = "消去"; +"Common.Controls.Actions.Reply" = "リプライ"; +"Common.Controls.Actions.ReportUser" = "%@を報告"; +"Common.Controls.Actions.Save" = "保存"; +"Common.Controls.Actions.SavePhoto" = "写真を保存"; +"Common.Controls.Actions.SeeMore" = "もっと見る"; +"Common.Controls.Actions.Settings" = "設定"; +"Common.Controls.Actions.Share" = "共有"; +"Common.Controls.Actions.SharePost" = "トゥートを共有"; +"Common.Controls.Actions.ShareUser" = "%@を共有"; +"Common.Controls.Actions.SignIn" = "サインイン"; +"Common.Controls.Actions.SignUp" = "サインアップ"; +"Common.Controls.Actions.Skip" = "スキップ"; +"Common.Controls.Actions.TakePhoto" = "写真を撮る"; +"Common.Controls.Actions.TryAgain" = "再実行"; +"Common.Controls.Actions.UnblockDomain" = "%@のブロックを解除"; +"Common.Controls.Friendship.Block" = "ブロック"; +"Common.Controls.Friendship.BlockDomain" = "%@をブロック"; +"Common.Controls.Friendship.BlockUser" = "%@をブロック"; +"Common.Controls.Friendship.Blocked" = "ブロック済み"; +"Common.Controls.Friendship.EditInfo" = "Edit Info"; +"Common.Controls.Friendship.Follow" = "フォロー"; +"Common.Controls.Friendship.Following" = "フォロー中"; +"Common.Controls.Friendship.Mute" = "ミュート"; +"Common.Controls.Friendship.MuteUser" = "%@をミュート"; +"Common.Controls.Friendship.Muted" = "ミュート済み"; +"Common.Controls.Friendship.Pending" = "保留"; +"Common.Controls.Friendship.Request" = "リクエスト"; +"Common.Controls.Friendship.Unblock" = "ブロックを解除"; +"Common.Controls.Friendship.UnblockUser" = "%@のブロックを解除"; +"Common.Controls.Friendship.Unmute" = "ミュートを解除"; +"Common.Controls.Friendship.UnmuteUser" = "%@のミュートを解除"; +"Common.Controls.Keyboard.Common.ComposeNewPost" = "新しい投稿を作成"; +"Common.Controls.Keyboard.Common.OpenSettings" = "設定を開く"; +"Common.Controls.Keyboard.Common.ShowFavorites" = "いいねを表示"; +"Common.Controls.Keyboard.Common.SwitchToTab" = "%@に切り替え"; +"Common.Controls.Keyboard.SegmentedControl.NextSection" = "次のセクション"; +"Common.Controls.Keyboard.SegmentedControl.PreviousSection" = "前のセクション"; +"Common.Controls.Keyboard.Timeline.NextStatus" = "次の投稿"; +"Common.Controls.Keyboard.Timeline.OpenAuthorProfile" = "プロフィールを見る"; +"Common.Controls.Keyboard.Timeline.OpenRebloggerProfile" = "リブロガーのプロフィールを開く"; +"Common.Controls.Keyboard.Timeline.OpenStatus" = "投稿を開く"; +"Common.Controls.Keyboard.Timeline.PreviewImage" = "画像をプレビュー"; +"Common.Controls.Keyboard.Timeline.PreviousStatus" = "前のトゥート"; +"Common.Controls.Keyboard.Timeline.ReplyStatus" = "トゥートにリプライ"; +"Common.Controls.Keyboard.Timeline.ToggleContentWarning" = "ピン留めコンテンツ警告"; +"Common.Controls.Keyboard.Timeline.ToggleFavorite" = "このトゥートをピン留め"; +"Common.Controls.Keyboard.Timeline.ToggleReblog" = "Toggle Reblog on Post"; +"Common.Controls.Status.Actions.Favorite" = "いいね"; +"Common.Controls.Status.Actions.Menu" = "メニュー"; +"Common.Controls.Status.Actions.Reblog" = "Reblog"; +"Common.Controls.Status.Actions.Reply" = "リプライ"; +"Common.Controls.Status.Actions.Unfavorite" = "いいねと取り消す"; +"Common.Controls.Status.Actions.Unreblog" = "reblogを戻す"; +"Common.Controls.Status.ContentWarning" = "Content Warning"; +"Common.Controls.Status.MediaContentWarning" = "どこかをタップして表示"; +"Common.Controls.Status.Poll.Closed" = "クローズド"; +"Common.Controls.Status.Poll.TimeLeft" = "%@ left"; +"Common.Controls.Status.Poll.Vote" = "投票"; +"Common.Controls.Status.ShowPost" = "トゥートを見る"; +"Common.Controls.Status.ShowUserProfile" = "プロフィールを見る"; +"Common.Controls.Status.Tag.Email" = "メール"; +"Common.Controls.Status.Tag.Emoji" = "絵文字"; +"Common.Controls.Status.Tag.Hashtag" = "ハッシュタグ"; +"Common.Controls.Status.Tag.Link" = "リンク"; +"Common.Controls.Status.Tag.Mention" = "メンション"; +"Common.Controls.Status.Tag.Url" = "URL"; +"Common.Controls.Status.UserReblogged" = "%@ reblogged"; +"Common.Controls.Status.UserRepliedTo" = "%@がリプライ"; +"Common.Controls.Tabs.Home" = "ホーム"; +"Common.Controls.Tabs.Notification" = "通知"; +"Common.Controls.Tabs.Profile" = "プロフィール"; +"Common.Controls.Tabs.Search" = "検索"; +"Common.Controls.Timeline.Accessibility.CountFavorites" = "%@ favorites"; +"Common.Controls.Timeline.Accessibility.CountReblogs" = "%@ reblogs"; +"Common.Controls.Timeline.Accessibility.CountReplies" = "%@ replies"; +"Common.Controls.Timeline.Filtered" = "フィルター済み"; +"Common.Controls.Timeline.Header.BlockedWarning" = "ブロックされているようです..."; +"Common.Controls.Timeline.Header.BlockingWarning" = "ブロックを解除するまでこのユーザーをみることはできません。 +そういうことです。"; +"Common.Controls.Timeline.Header.NoStatusFound" = "トゥートが見つかりません"; +"Common.Controls.Timeline.Header.SuspendedWarning" = "このユーザーは停止されています。"; +"Common.Controls.Timeline.Header.UserBlockedWarning" = "%@がブロックを解除しない限りプロフィールをみることはできません。"; +"Common.Controls.Timeline.Header.UserBlockingWarning" = "%@がブロックを解除しない限りプロフィールをみることはできません。 +そういうことです。"; +"Common.Controls.Timeline.Header.UserSuspendedWarning" = "%@のアカウントは停止されました。"; +"Common.Controls.Timeline.Loader.LoadMissingPosts" = "不足しているトゥートを読み込む"; +"Common.Controls.Timeline.Loader.LoadingMissingPosts" = "読込中..."; +"Common.Controls.Timeline.Loader.ShowMoreReplies" = "リプライをもっとみる"; +"Common.Controls.Timeline.Timestamp.Now" = "なう"; +"Common.Controls.Timeline.Timestamp.TimeAgo" = "%@前"; +"Scene.Compose.Accessibility.AppendAttachment" = "アタッチメントの追加"; +"Scene.Compose.Accessibility.AppendPoll" = "投票を追加"; +"Scene.Compose.Accessibility.CustomEmojiPicker" = "カスタム絵文字ピッカー"; +"Scene.Compose.Accessibility.DisableContentWarning" = "コンテンツ警告を無効にする"; +"Scene.Compose.Accessibility.EnableContentWarning" = "コンテンツ警告を有効にする"; +"Scene.Compose.Accessibility.InputLimitExceedsCount" = "最大文字数を超えました。 %ld"; +"Scene.Compose.Accessibility.InputLimitRemainsCount" = "Input limit remains %ld"; +"Scene.Compose.Accessibility.PostVisibilityMenu" = "Post Visibility Menu"; +"Scene.Compose.Accessibility.RemovePoll" = "投票を消去"; +"Scene.Compose.Attachment.AttachmentBroken" = "%@は壊れていてMastodonにアップロードできません。"; +"Scene.Compose.Attachment.DescriptionPhoto" = "視覚障がい者のために写真を説明"; +"Scene.Compose.Attachment.DescriptionVideo" = "視覚障がい者のための映像の説明"; +"Scene.Compose.Attachment.Photo" = "写真"; +"Scene.Compose.Attachment.Video" = "動画"; +"Scene.Compose.AutoComplete.SpaceToAdd" = "スペースを追加"; +"Scene.Compose.ComposeAction" = "公開"; +"Scene.Compose.ContentInputPlaceholder" = "気になることを入力またはペースト"; +"Scene.Compose.ContentWarning.Placeholder" = "ここに正確な警告を書いてください..."; +"Scene.Compose.Keyboard.AppendAttachmentEntry" = "アタッチメントを追加 - %@"; +"Scene.Compose.Keyboard.DiscardPost" = "トゥートを破棄"; +"Scene.Compose.Keyboard.PublishPost" = "トゥートを公開"; +"Scene.Compose.Keyboard.SelectVisibilityEntry" = "公開設定を選択 - %@"; +"Scene.Compose.Keyboard.ToggleContentWarning" = "Toggle Content Warning"; +"Scene.Compose.Keyboard.TogglePoll" = "Toggle Poll"; +"Scene.Compose.MediaSelection.Browse" = "ブラウズ"; +"Scene.Compose.MediaSelection.Camera" = "写真を撮る"; +"Scene.Compose.MediaSelection.PhotoLibrary" = "写真"; +"Scene.Compose.Poll.DurationTime" = "期間: %@"; +"Scene.Compose.Poll.OneDay" = "1日"; +"Scene.Compose.Poll.OneHour" = "1時間"; +"Scene.Compose.Poll.OptionNumber" = "オプション %ld"; +"Scene.Compose.Poll.SevenDays" = "7日"; +"Scene.Compose.Poll.SixHours" = "6時間"; +"Scene.Compose.Poll.ThirtyMinutes" = "30分"; +"Scene.Compose.Poll.ThreeDays" = "3日"; +"Scene.Compose.ReplyingToUser" = "%@にリプライ"; +"Scene.Compose.Title.NewPost" = "新しいトゥート"; +"Scene.Compose.Title.NewReply" = "新しいリプライ"; +"Scene.Compose.Visibility.Direct" = "メンションしてる人のみ"; +"Scene.Compose.Visibility.Private" = "フォロワーのみ"; +"Scene.Compose.Visibility.Public" = "パブリック"; +"Scene.Compose.Visibility.Unlisted" = "Unlisted"; +"Scene.ConfirmEmail.Button.DontReceiveEmail" = "メールがこない"; +"Scene.ConfirmEmail.Button.OpenEmailApp" = "メールアプリを開く"; +"Scene.ConfirmEmail.DontReceiveEmail.Description" = "メールアドレスが正しいかどうか、また、迷惑メールフォルダに入っていないかどうかも確認してください。"; +"Scene.ConfirmEmail.DontReceiveEmail.ResendEmail" = "もう一度メールを送信"; +"Scene.ConfirmEmail.DontReceiveEmail.Title" = "メールをチェックしてください"; +"Scene.ConfirmEmail.OpenEmailApp.Description" = "先ほどメールをお送りしました。まだの方は、迷惑メールフォルダをご確認ください。"; +"Scene.ConfirmEmail.OpenEmailApp.Mail" = "メール"; +"Scene.ConfirmEmail.OpenEmailApp.OpenEmailClient" = "メールアプリを開く"; +"Scene.ConfirmEmail.OpenEmailApp.Title" = "インボックスをチェック"; +"Scene.ConfirmEmail.Subtitle" = "先程 %@ にメールを送信しました。リンクをタップしてアカウントを確認してください。"; +"Scene.ConfirmEmail.Title" = "さいごにもうひとつ。"; +"Scene.Favorite.Title" = "あなたのいいね"; +"Scene.Hashtag.Prompt" = "%@人がこの話題について話しています"; +"Scene.HomeTimeline.NavigationBarState.NewPosts" = "新しいトゥートを見る"; +"Scene.HomeTimeline.NavigationBarState.Offline" = "オフライン"; +"Scene.HomeTimeline.NavigationBarState.Published" = "公開しました!"; +"Scene.HomeTimeline.NavigationBarState.Publishing" = "トゥートを公開中..."; +"Scene.HomeTimeline.Title" = "ホーム"; +"Scene.Notification.Action.Favourite" = "あなたがいいねしたトゥート"; +"Scene.Notification.Action.Follow" = "フォローされました"; +"Scene.Notification.Action.FollowRequest" = "フォローリクエスト"; +"Scene.Notification.Action.Mention" = "メンションされました"; +"Scene.Notification.Action.Poll" = "投票が終了しました"; +"Scene.Notification.Action.Reblog" = "あなたの投稿をリブログしました。"; +"Scene.Notification.Keyobard.ShowEverything" = "すべて見る"; +"Scene.Notification.Keyobard.ShowMentions" = "メンションを見る"; +"Scene.Notification.Title.Everything" = "すべて"; +"Scene.Notification.Title.Mentions" = "メンション"; +"Scene.Preview.Keyboard.ClosePreview" = "プレビューを閉じる"; +"Scene.Preview.Keyboard.ShowNext" = "次を見る"; +"Scene.Preview.Keyboard.ShowPrevious" = "前を見る"; +"Scene.Profile.Dashboard.Accessibility.CountFollowers" = "%ld フォロワー"; +"Scene.Profile.Dashboard.Accessibility.CountFollowing" = "%ld フォロー中"; +"Scene.Profile.Dashboard.Accessibility.CountPosts" = "%ld トゥート"; +"Scene.Profile.Dashboard.Followers" = "フォロワー"; +"Scene.Profile.Dashboard.Following" = "フォロー中"; +"Scene.Profile.Dashboard.Posts" = "トゥート"; +"Scene.Profile.Fields.AddRow" = "Rowを追加"; +"Scene.Profile.Fields.Placeholder.Content" = "Content"; +"Scene.Profile.Fields.Placeholder.Label" = "ラベル"; +"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUsre.Message" = "%@のブロックを解除しますか?"; +"Scene.Profile.RelationshipActionAlert.ConfirmUnblockUsre.Title" = "ブロックを解除"; +"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Message" = "%@をミュートしますか?"; +"Scene.Profile.RelationshipActionAlert.ConfirmUnmuteUser.Title" = "ミュートを解除"; +"Scene.Profile.SegmentedControl.Media" = "メディア"; +"Scene.Profile.SegmentedControl.Posts" = "トゥート"; +"Scene.Profile.SegmentedControl.Replies" = "リプライ"; +"Scene.PublicTimeline.Title" = "公開"; +"Scene.Register.Error.Item.Agreement" = "同意"; +"Scene.Register.Error.Item.Email" = "Email"; +"Scene.Register.Error.Item.Locale" = "地域"; +"Scene.Register.Error.Item.Password" = "パスワード"; +"Scene.Register.Error.Item.Reason" = "理由"; +"Scene.Register.Error.Item.Username" = "ユーザー名"; +"Scene.Register.Error.Reason.Accepted" = "%@を受け入れなければならない"; +"Scene.Register.Error.Reason.Blank" = "%@が必要です"; +"Scene.Register.Error.Reason.Blocked" = "%@ が許可されていないメールプロバイダを含んでいる"; +"Scene.Register.Error.Reason.Inclusion" = "%@ はサポートされていない値です"; +"Scene.Register.Error.Reason.Invalid" = "%@は無効です"; +"Scene.Register.Error.Reason.Reserved" = "%@は予約語です"; +"Scene.Register.Error.Reason.Taken" = "%@は使われます"; +"Scene.Register.Error.Reason.TooLong" = "%@は長い"; +"Scene.Register.Error.Reason.TooShort" = "%@は短い"; +"Scene.Register.Error.Reason.Unreachable" = "%@は存在しないようだ"; +"Scene.Register.Error.Special.EmailInvalid" = "有効なメールアドレスではありません"; +"Scene.Register.Error.Special.PasswordTooShort" = "パスワードが短すぎます(8文字以上)"; +"Scene.Register.Error.Special.UsernameInvalid" = "ユーザーネームには、英数字とアンダースコアのみを使用してください。"; +"Scene.Register.Error.Special.UsernameTooLong" = "ユーザーネームが長すぎます(30文字以内)"; +"Scene.Register.Input.Avatar.Delete" = "消去"; +"Scene.Register.Input.DisplayName.Placeholder" = "表示名"; +"Scene.Register.Input.Email.Placeholder" = "メール"; +"Scene.Register.Input.Invite.RegistrationUserInviteRequest" = "なぜ参加したいと思ったのですか?"; +"Scene.Register.Input.Password.Hint" = "パスワードは最低でも8文字必要です。"; +"Scene.Register.Input.Password.Placeholder" = "パスワード"; +"Scene.Register.Input.Username.DuplicatePrompt" = "このユーザー名は使用されています"; +"Scene.Register.Input.Username.Placeholder" = "ユーザー名"; +"Scene.Register.Title" = "あなたのことを教えてください"; +"Scene.Report.Content1" = "他に報告したいトゥートはありますか?"; +"Scene.Report.Content2" = "この報告についてモデレーターに言いたいことはありますか?"; +"Scene.Report.Send" = "報告を送信"; +"Scene.Report.SkipToSend" = "コメントなしで送信"; +"Scene.Report.Step1" = "Step 1 of 2"; +"Scene.Report.Step2" = "Step 2 of 2"; +"Scene.Report.TextPlaceholder" = "追加コメントを入力"; +"Scene.Report.Title" = "%@を報告"; +"Scene.Search.Recommend.Accounts.Description" = "以下のアカウントをフォローしてみてはいかがでしょうか?"; +"Scene.Search.Recommend.Accounts.Follow" = "フォロー"; +"Scene.Search.Recommend.Accounts.Title" = "おすすめのアカウント"; +"Scene.Search.Recommend.ButtonText" = "すべて見る"; +"Scene.Search.Recommend.HashTag.Description" = "注目されているハッシュタグ"; +"Scene.Search.Recommend.HashTag.PeopleTalking" = "%@人が話題について話しています"; +"Scene.Search.Recommend.HashTag.Title" = "マストドンに関するトレンド"; +"Scene.Search.SearchBar.Cancel" = "キャンセル"; +"Scene.Search.SearchBar.Placeholder" = "ハッシュタグとユーザーを検索"; +"Scene.Search.Searching.Clear" = "クリア"; +"Scene.Search.Searching.EmptyState.NoResults" = "ありません"; +"Scene.Search.Searching.RecentSearch" = "最近の検索"; +"Scene.Search.Searching.Segment.All" = "すべて"; +"Scene.Search.Searching.Segment.Hashtags" = "ハッシュタグ"; +"Scene.Search.Searching.Segment.People" = "人々"; +"Scene.Search.Searching.Segment.Posts" = "トゥート"; +"Scene.Search.Title" = "検索"; +"Scene.ServerPicker.Button.Category.Academia" = "アカデミア"; +"Scene.ServerPicker.Button.Category.Activism" = "アクティビズム"; +"Scene.ServerPicker.Button.Category.All" = "すべて"; +"Scene.ServerPicker.Button.Category.AllAccessiblityDescription" = "カテゴリ: すべて"; +"Scene.ServerPicker.Button.Category.Art" = "アート"; +"Scene.ServerPicker.Button.Category.Food" = "食べ物"; +"Scene.ServerPicker.Button.Category.Furry" = "furry"; +"Scene.ServerPicker.Button.Category.Games" = "ゲーム"; +"Scene.ServerPicker.Button.Category.General" = "全般"; +"Scene.ServerPicker.Button.Category.Journalism" = "言論"; +"Scene.ServerPicker.Button.Category.Lgbt" = "lgbt"; +"Scene.ServerPicker.Button.Category.Music" = "音楽"; +"Scene.ServerPicker.Button.Category.Regional" = "地域"; +"Scene.ServerPicker.Button.Category.Tech" = "技術"; +"Scene.ServerPicker.Button.SeeLess" = "閉じる"; +"Scene.ServerPicker.Button.SeeMore" = "もっと見る"; +"Scene.ServerPicker.EmptyState.BadNetwork" = "データの読み込み中に何か問題が発生しました。インターネットの接続状況を確認してください。"; +"Scene.ServerPicker.EmptyState.FindingServers" = "利用可能なサーバーの検索..."; +"Scene.ServerPicker.EmptyState.NoResults" = "なし"; +"Scene.ServerPicker.Input.Placeholder" = "サーバーを探す"; +"Scene.ServerPicker.Label.Category" = "カテゴリー"; +"Scene.ServerPicker.Label.Language" = "言語"; +"Scene.ServerPicker.Label.Users" = "ユーザー"; +"Scene.ServerPicker.Title" = "サーバーを選択"; +"Scene.ServerRules.Button.Confirm" = "同意する"; +"Scene.ServerRules.PrivacyPolicy" = "プライバシーポリシー"; +"Scene.ServerRules.Prompt" = "同意することでお客様は以下のサービスの利用規約とプライバシーポリシーに従うことになります。 %@."; +"Scene.ServerRules.Subtitle" = "これらのルールは、%@の管理者によって設定されています。"; +"Scene.ServerRules.TermsOfService" = "terms of service"; +"Scene.ServerRules.Title" = "いくつかのルールがあります。"; +"Scene.Settings.Footer.MastodonDescription" = "Mastodonはオープンソースです。バグの報告はGithubの%@ (%@)で行うことができます。"; +"Scene.Settings.Keyboard.CloseSettingsWindow" = "設定を閉じる"; +"Scene.Settings.Section.Appearance.Automatic" = "システムに合わせる"; +"Scene.Settings.Section.Appearance.Dark" = "ダーク"; +"Scene.Settings.Section.Appearance.Light" = "ライト"; +"Scene.Settings.Section.Appearance.Title" = "外観"; +"Scene.Settings.Section.BoringZone.AccountSettings" = "アカウント設定"; +"Scene.Settings.Section.BoringZone.Privacy" = "プライバシーポリシー"; +"Scene.Settings.Section.BoringZone.Terms" = "Terms of Service"; +"Scene.Settings.Section.BoringZone.Title" = "The Boring Zone"; +"Scene.Settings.Section.Notifications.Boosts" = "Reblogs my post"; +"Scene.Settings.Section.Notifications.Favorites" = "Favorites my post"; +"Scene.Settings.Section.Notifications.Follows" = "フォローして"; +"Scene.Settings.Section.Notifications.Mentions" = "メンションして"; +"Scene.Settings.Section.Notifications.Title" = "通知"; +"Scene.Settings.Section.Notifications.Trigger.Anyone" = "誰でも"; +"Scene.Settings.Section.Notifications.Trigger.Follow" = "私がフォローしている人"; +"Scene.Settings.Section.Notifications.Trigger.Follower" = "フォロワー"; +"Scene.Settings.Section.Notifications.Trigger.Noone" = "なし"; +"Scene.Settings.Section.Notifications.Trigger.Title" = "通知を受け取る"; +"Scene.Settings.Section.Preference.DisableAvatarAnimation" = "アニメーションアバターの無効化する"; +"Scene.Settings.Section.Preference.DisableEmojiAnimation" = "絵文字のアニメーションを無効化する"; +"Scene.Settings.Section.Preference.Title" = "環境設定"; +"Scene.Settings.Section.Preference.TrueBlackDarkMode" = "真っ黒なダークテーマを使用する"; +"Scene.Settings.Section.Preference.UsingDefaultBrowser" = "既定のブラウザでリンクを開く"; +"Scene.Settings.Section.SpicyZone.Clear" = "メディアキャッシュをクリア"; +"Scene.Settings.Section.SpicyZone.Signout" = "サインアウト"; +"Scene.Settings.Section.SpicyZone.Title" = "The Spicy Zone"; +"Scene.Settings.Title" = "設定"; +"Scene.SuggestionAccount.FollowExplain" = "誰かをフォローすると、その人の投稿がタイムラインに表示されるようになります。"; +"Scene.SuggestionAccount.Title" = "フォローする人を探す"; +"Scene.Thread.BackTitle" = "トゥート"; +"Scene.Thread.Title" = "%@からトゥート"; +"Scene.Welcome.Slogan" = "SNSをあなたの手で取り戻してください"; diff --git a/Mastodon/Resources/ja.lproj/Localizable.stringsdict b/Mastodon/Resources/ja.lproj/Localizable.stringsdict new file mode 100644 index 000000000..b002a41c3 --- /dev/null +++ b/Mastodon/Resources/ja.lproj/Localizable.stringsdict @@ -0,0 +1,138 @@ + + + + + plural.count.metric_formatted.post + + NSStringLocalizedFormatKey + %@ %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + posts + one + post + few + posts + many + posts + other + posts + + + plural.count.favorite + + NSStringLocalizedFormatKey + %#@favorite_count@ + favorite_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 favorites + one + 1 favorite + few + %ld favorites + many + %ld favorites + other + %ld favorites + + + plural.count.reblog + + NSStringLocalizedFormatKey + %#@reblog_count@ + reblog_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 reblogs + one + 1 reblog + few + %ld reblogs + many + %ld reblogs + other + %ld reblogs + + + plural.count.vote + + NSStringLocalizedFormatKey + %#@vote_count@ + vote_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 votes + one + 1 vote + few + %ld votes + many + %ld votes + other + %ld votes + + + plural.count.voter + + NSStringLocalizedFormatKey + %#@voter_count@ + voter_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 voters + one + 1 voter + few + %ld voters + many + %ld voters + other + %ld voters + + + plural.people_talking + + NSStringLocalizedFormatKey + %#@count_people_talking@ + count_people_talking + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 people talking + one + 1 people talking + few + %ld people talking + many + %ld people talking + other + %ld people talking + + + + diff --git a/ja.lproj/Intents.strings b/ja.lproj/Intents.strings new file mode 100644 index 000000000..770b74bb9 --- /dev/null +++ b/ja.lproj/Intents.strings @@ -0,0 +1,52 @@ +"16wxgf" = "Post on Mastodon"; + +"751xkl" = "Text Content"; + +"CsR7G2" = "Post"; + +"HZSGTr" = "What content to post?"; + +"HdGikU" = "Posting failed"; + +"KDNTJ4" = "Failure Reason"; + +"RHxKOw" = "Send Post with text content"; + +"RxSqsb" = "Post"; + +"WCIR3D" = "Post ${content} on Mastodon"; + +"ZKJSNu" = "Post"; + +"ZS1XaK" = "${content}"; + +"ZbSjzC" = "Visibility"; + +"Zo4jgJ" = "Post Visibility"; + +"apSxMG-dYQ5NN" = "There are ${count} options matching ‘Public’."; + +"apSxMG-ehFLjY" = "There are ${count} options matching ‘Followers Only’."; + +"ayoYEb-dYQ5NN" = "${content}, Public"; + +"ayoYEb-ehFLjY" = "${content}, Followers Only"; + +"dUyuGg" = "Post"; + +"dYQ5NN" = "Public"; + +"ehFLjY" = "Followers Only"; + +"gfePDu" = "Posting failed. ${failureReason}"; + +"k7dbKQ" = "Post was sent successfully."; + +"oGiqmY-dYQ5NN" = "Just to confirm, you wanted ‘Public’?"; + +"oGiqmY-ehFLjY" = "Just to confirm, you wanted ‘Followers Only’?"; + +"rM6dvp" = "URL"; + +"ryJLwG" = "Post was sent successfully. "; + From 1e1e7eb06f23771966cd7463797cacca37b8b19a Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 14:24:08 +0900 Subject: [PATCH 10/15] Update: localize word --- .../Resources/ja.lproj/Localizable.strings | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Mastodon/Resources/ja.lproj/Localizable.strings b/Mastodon/Resources/ja.lproj/Localizable.strings index be8ab7dc7..25a8d6abd 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.strings +++ b/Mastodon/Resources/ja.lproj/Localizable.strings @@ -93,10 +93,10 @@ "Common.Controls.Keyboard.Timeline.ToggleReblog" = "Toggle Reblog on Post"; "Common.Controls.Status.Actions.Favorite" = "いいね"; "Common.Controls.Status.Actions.Menu" = "メニュー"; -"Common.Controls.Status.Actions.Reblog" = "Reblog"; +"Common.Controls.Status.Actions.Reblog" = "ブースト"; "Common.Controls.Status.Actions.Reply" = "リプライ"; "Common.Controls.Status.Actions.Unfavorite" = "いいねと取り消す"; -"Common.Controls.Status.Actions.Unreblog" = "reblogを戻す"; +"Common.Controls.Status.Actions.Unreblog" = "ブーストを戻す"; "Common.Controls.Status.ContentWarning" = "Content Warning"; "Common.Controls.Status.MediaContentWarning" = "どこかをタップして表示"; "Common.Controls.Status.Poll.Closed" = "クローズド"; @@ -110,15 +110,15 @@ "Common.Controls.Status.Tag.Link" = "リンク"; "Common.Controls.Status.Tag.Mention" = "メンション"; "Common.Controls.Status.Tag.Url" = "URL"; -"Common.Controls.Status.UserReblogged" = "%@ reblogged"; +"Common.Controls.Status.UserReblogged" = "%@がブースト"; "Common.Controls.Status.UserRepliedTo" = "%@がリプライ"; "Common.Controls.Tabs.Home" = "ホーム"; "Common.Controls.Tabs.Notification" = "通知"; "Common.Controls.Tabs.Profile" = "プロフィール"; "Common.Controls.Tabs.Search" = "検索"; -"Common.Controls.Timeline.Accessibility.CountFavorites" = "%@ favorites"; -"Common.Controls.Timeline.Accessibility.CountReblogs" = "%@ reblogs"; -"Common.Controls.Timeline.Accessibility.CountReplies" = "%@ replies"; +"Common.Controls.Timeline.Accessibility.CountFavorites" = "%@ いいね"; +"Common.Controls.Timeline.Accessibility.CountReblogs" = "%@ ブースト"; +"Common.Controls.Timeline.Accessibility.CountReplies" = "%@ リプライ"; "Common.Controls.Timeline.Filtered" = "フィルター済み"; "Common.Controls.Timeline.Header.BlockedWarning" = "ブロックされているようです..."; "Common.Controls.Timeline.Header.BlockingWarning" = "ブロックを解除するまでこのユーザーをみることはできません。 @@ -318,10 +318,10 @@ "Scene.Settings.Section.BoringZone.Privacy" = "プライバシーポリシー"; "Scene.Settings.Section.BoringZone.Terms" = "Terms of Service"; "Scene.Settings.Section.BoringZone.Title" = "The Boring Zone"; -"Scene.Settings.Section.Notifications.Boosts" = "Reblogs my post"; -"Scene.Settings.Section.Notifications.Favorites" = "Favorites my post"; -"Scene.Settings.Section.Notifications.Follows" = "フォローして"; -"Scene.Settings.Section.Notifications.Mentions" = "メンションして"; +"Scene.Settings.Section.Notifications.Boosts" = "ブースト"; +"Scene.Settings.Section.Notifications.Favorites" = "いいね"; +"Scene.Settings.Section.Notifications.Follows" = "フォロー"; +"Scene.Settings.Section.Notifications.Mentions" = "メンション"; "Scene.Settings.Section.Notifications.Title" = "通知"; "Scene.Settings.Section.Notifications.Trigger.Anyone" = "誰でも"; "Scene.Settings.Section.Notifications.Trigger.Follow" = "私がフォローしている人"; @@ -340,5 +340,5 @@ "Scene.SuggestionAccount.FollowExplain" = "誰かをフォローすると、その人の投稿がタイムラインに表示されるようになります。"; "Scene.SuggestionAccount.Title" = "フォローする人を探す"; "Scene.Thread.BackTitle" = "トゥート"; -"Scene.Thread.Title" = "%@からトゥート"; +"Scene.Thread.Title" = "%@のトゥート"; "Scene.Welcome.Slogan" = "SNSをあなたの手で取り戻してください"; From 07974d56248ce43ce5616d15207f56aa33e2fd20 Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 14:53:27 +0900 Subject: [PATCH 11/15] Update: localize word --- Mastodon/Resources/ja.lproj/Localizable.strings | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Mastodon/Resources/ja.lproj/Localizable.strings b/Mastodon/Resources/ja.lproj/Localizable.strings index 25a8d6abd..5a0ed6de8 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.strings +++ b/Mastodon/Resources/ja.lproj/Localizable.strings @@ -149,12 +149,12 @@ "Scene.Compose.Attachment.Photo" = "写真"; "Scene.Compose.Attachment.Video" = "動画"; "Scene.Compose.AutoComplete.SpaceToAdd" = "スペースを追加"; -"Scene.Compose.ComposeAction" = "公開"; +"Scene.Compose.ComposeAction" = "トゥート"; "Scene.Compose.ContentInputPlaceholder" = "気になることを入力またはペースト"; "Scene.Compose.ContentWarning.Placeholder" = "ここに正確な警告を書いてください..."; "Scene.Compose.Keyboard.AppendAttachmentEntry" = "アタッチメントを追加 - %@"; "Scene.Compose.Keyboard.DiscardPost" = "トゥートを破棄"; -"Scene.Compose.Keyboard.PublishPost" = "トゥートを公開"; +"Scene.Compose.Keyboard.PublishPost" = "トゥート"; "Scene.Compose.Keyboard.SelectVisibilityEntry" = "公開設定を選択 - %@"; "Scene.Compose.Keyboard.ToggleContentWarning" = "Toggle Content Warning"; "Scene.Compose.Keyboard.TogglePoll" = "Toggle Poll"; @@ -191,8 +191,8 @@ "Scene.Hashtag.Prompt" = "%@人がこの話題について話しています"; "Scene.HomeTimeline.NavigationBarState.NewPosts" = "新しいトゥートを見る"; "Scene.HomeTimeline.NavigationBarState.Offline" = "オフライン"; -"Scene.HomeTimeline.NavigationBarState.Published" = "公開しました!"; -"Scene.HomeTimeline.NavigationBarState.Publishing" = "トゥートを公開中..."; +"Scene.HomeTimeline.NavigationBarState.Published" = "トゥートしました!"; +"Scene.HomeTimeline.NavigationBarState.Publishing" = "トゥートちう..."; "Scene.HomeTimeline.Title" = "ホーム"; "Scene.Notification.Action.Favourite" = "あなたがいいねしたトゥート"; "Scene.Notification.Action.Follow" = "フォローされました"; @@ -317,14 +317,14 @@ "Scene.Settings.Section.BoringZone.AccountSettings" = "アカウント設定"; "Scene.Settings.Section.BoringZone.Privacy" = "プライバシーポリシー"; "Scene.Settings.Section.BoringZone.Terms" = "Terms of Service"; -"Scene.Settings.Section.BoringZone.Title" = "The Boring Zone"; +"Scene.Settings.Section.BoringZone.Title" = "アプリについて"; "Scene.Settings.Section.Notifications.Boosts" = "ブースト"; "Scene.Settings.Section.Notifications.Favorites" = "いいね"; "Scene.Settings.Section.Notifications.Follows" = "フォロー"; "Scene.Settings.Section.Notifications.Mentions" = "メンション"; "Scene.Settings.Section.Notifications.Title" = "通知"; "Scene.Settings.Section.Notifications.Trigger.Anyone" = "誰でも"; -"Scene.Settings.Section.Notifications.Trigger.Follow" = "私がフォローしている人"; +"Scene.Settings.Section.Notifications.Trigger.Follow" = "フォローしている人"; "Scene.Settings.Section.Notifications.Trigger.Follower" = "フォロワー"; "Scene.Settings.Section.Notifications.Trigger.Noone" = "なし"; "Scene.Settings.Section.Notifications.Trigger.Title" = "通知を受け取る"; @@ -335,7 +335,7 @@ "Scene.Settings.Section.Preference.UsingDefaultBrowser" = "既定のブラウザでリンクを開く"; "Scene.Settings.Section.SpicyZone.Clear" = "メディアキャッシュをクリア"; "Scene.Settings.Section.SpicyZone.Signout" = "サインアウト"; -"Scene.Settings.Section.SpicyZone.Title" = "The Spicy Zone"; +"Scene.Settings.Section.SpicyZone.Title" = "破壊的変更"; "Scene.Settings.Title" = "設定"; "Scene.SuggestionAccount.FollowExplain" = "誰かをフォローすると、その人の投稿がタイムラインに表示されるようになります。"; "Scene.SuggestionAccount.Title" = "フォローする人を探す"; From 3bcf9cc57577040f596dc3ef9c23dfe758a3e4f6 Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 15:31:00 +0900 Subject: [PATCH 12/15] Update: InfoPlist localize update --- Mastodon/Resources/ja.lproj/InfoPlist.strings | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Mastodon/Resources/ja.lproj/InfoPlist.strings b/Mastodon/Resources/ja.lproj/InfoPlist.strings index 710865573..d60f2fb6a 100644 --- a/Mastodon/Resources/ja.lproj/InfoPlist.strings +++ b/Mastodon/Resources/ja.lproj/InfoPlist.strings @@ -1,4 +1,4 @@ -"NSCameraUsageDescription" = "Used to take photo for post status"; -"NSPhotoLibraryAddUsageDescription" = "Used to save photo into the Photo Library"; -"NewPostShortcutItemTitle" = "New Post"; -"SearchShortcutItemTitle" = "Search"; \ No newline at end of file +"NSCameraUsageDescription" = "投稿用の写真撮影に使用します"; +"NSPhotoLibraryAddUsageDescription" = "写真をフォトライブラリーに保存するときに使用します"; +"NewPostShortcutItemTitle" = "トゥートする"; +"SearchShortcutItemTitle" = "検索"; From 43d61eeae613b8671ebf1adf37c8d2493f6afb7f Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 15:36:50 +0900 Subject: [PATCH 13/15] Update: Localize --- .../ja.lproj/Localizable.stringsdict | 228 +++++++++--------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/Mastodon/Resources/ja.lproj/Localizable.stringsdict b/Mastodon/Resources/ja.lproj/Localizable.stringsdict index b002a41c3..d9ae00482 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.stringsdict +++ b/Mastodon/Resources/ja.lproj/Localizable.stringsdict @@ -2,50 +2,50 @@ - plural.count.metric_formatted.post - - NSStringLocalizedFormatKey - %@ %#@post_count@ - post_count - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - ld - zero - posts - one - post - few - posts - many - posts - other - posts - - + plural.count.metric_formatted.post + + NSStringLocalizedFormatKey + %@ %#@post_count@ + post_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + トゥート + one + トゥート + few + トゥート + many + トゥート + other + トゥート + + plural.count.favorite - - NSStringLocalizedFormatKey - %#@favorite_count@ - favorite_count - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - ld - zero - 0 favorites - one - 1 favorite - few - %ld favorites - many - %ld favorites - other - %ld favorites - - + + NSStringLocalizedFormatKey + %#@favorite_count@ + favorite_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 いいね + one + 1 いいね + few + %ld いいね + many + %ld いいね + other + %ld いいね + + plural.count.reblog NSStringLocalizedFormatKey @@ -57,82 +57,82 @@ NSStringFormatValueTypeKey ld zero - 0 reblogs + 0 ブースト one - 1 reblog + 1 ブースト few - %ld reblogs + %ld ブースト many - %ld reblogs + %ld ブースト other - %ld reblogs + %ld ブースト + + + plural.count.vote + + NSStringLocalizedFormatKey + %#@vote_count@ + vote_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 票 + one + 1 票 + few + %ld 票 + many + %ld 票 + other + %ld 票 + + + plural.count.voter + + NSStringLocalizedFormatKey + %#@voter_count@ + voter_count + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 人 + one + 1 人 + few + %ld 人 + many + %ld 人 + other + %ld 人 + + + plural.people_talking + + NSStringLocalizedFormatKey + %#@count_people_talking@ + count_people_talking + + NSStringFormatSpecTypeKey + NSStringPluralRuleType + NSStringFormatValueTypeKey + ld + zero + 0 人が話しています + one + 1 人が話しています + few + %ld 人が話しています + many + %ld 人が話しています + other + %ld 人が話しています - plural.count.vote - - NSStringLocalizedFormatKey - %#@vote_count@ - vote_count - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - ld - zero - 0 votes - one - 1 vote - few - %ld votes - many - %ld votes - other - %ld votes - - - plural.count.voter - - NSStringLocalizedFormatKey - %#@voter_count@ - voter_count - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - ld - zero - 0 voters - one - 1 voter - few - %ld voters - many - %ld voters - other - %ld voters - - - plural.people_talking - - NSStringLocalizedFormatKey - %#@count_people_talking@ - count_people_talking - - NSStringFormatSpecTypeKey - NSStringPluralRuleType - NSStringFormatValueTypeKey - ld - zero - 0 people talking - one - 1 people talking - few - %ld people talking - many - %ld people talking - other - %ld people talking - - From 1beb326b1a1b83afa7d3e72f0cc057f0ca570873 Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 20:41:23 +0900 Subject: [PATCH 14/15] update: localize word fix --- Mastodon/Resources/ja.lproj/Localizable.strings | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Mastodon/Resources/ja.lproj/Localizable.strings b/Mastodon/Resources/ja.lproj/Localizable.strings index 5a0ed6de8..0b767077e 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.strings +++ b/Mastodon/Resources/ja.lproj/Localizable.strings @@ -6,8 +6,8 @@ "Common.Alerts.Common.PleaseTryAgainLater" = "後でもう一度お試しください。"; "Common.Alerts.DeletePost.Delete" = "消去"; "Common.Alerts.DeletePost.Title" = "このトゥートを消去しますか?"; -"Common.Alerts.DiscardPostContent.Message" = "Confirm to discard composed post content."; -"Common.Alerts.DiscardPostContent.Title" = "Discard Draft"; +"Common.Alerts.DiscardPostContent.Message" = "この操作は取り消しできません。下書きは失われます。"; +"Common.Alerts.DiscardPostContent.Title" = "トゥートを破棄しますか?"; "Common.Alerts.EditProfileFailure.Message" = "プロフィールを編集できません。もう一度お試しください。"; "Common.Alerts.EditProfileFailure.Title" = "プロフィールを編集できませんでした"; "Common.Alerts.PublishPostFailure.AttachmentsMessage.MoreThanOneVideo" = "複数の動画を添付することはできません。"; From 0a84c02a76a42a36dd4192fdde7fe19766e1e698 Mon Sep 17 00:00:00 2001 From: hirossan4049 Date: Sun, 1 Aug 2021 20:43:59 +0900 Subject: [PATCH 15/15] update: localize word fix --- Mastodon/Resources/ja.lproj/Localizable.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Mastodon/Resources/ja.lproj/Localizable.strings b/Mastodon/Resources/ja.lproj/Localizable.strings index 0b767077e..5cb563648 100644 --- a/Mastodon/Resources/ja.lproj/Localizable.strings +++ b/Mastodon/Resources/ja.lproj/Localizable.strings @@ -14,7 +14,7 @@ "Common.Alerts.PublishPostFailure.AttachmentsMessage.VideoAttachWithPhoto" = "すでに画像が含まれている投稿に、動画を添付することができません。"; "Common.Alerts.PublishPostFailure.Message" = "トゥートに失敗しました。 インターネットに接続されているか確認してください。"; -"Common.Alerts.PublishPostFailure.Title" = "Publish Failure"; +"Common.Alerts.PublishPostFailure.Title" = "失敗"; "Common.Alerts.SavePhotoFailure.Message" = "写真を保存するには、フォトライブラリのアクセス許可を有効にしてください。"; "Common.Alerts.SavePhotoFailure.Title" = "写真の保存に失敗しました"; "Common.Alerts.ServerError.Title" = "サーバーエラー";