Download SAS Strings Tool + Localised SAS emojis (#2409)

This commit is contained in:
Mauro 2024-01-31 13:29:52 +01:00 committed by GitHub
parent 7fa9cf16e2
commit 1a8fd7d8ff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
16 changed files with 816 additions and 2 deletions

View File

@ -456,6 +456,7 @@
755727E0B756430DFFEC4732 /* SessionVerificationViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF05DA24F71B455E8EFEBC3B /* SessionVerificationViewModelTests.swift */; }; 755727E0B756430DFFEC4732 /* SessionVerificationViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF05DA24F71B455E8EFEBC3B /* SessionVerificationViewModelTests.swift */; };
762DAF94846C7AC8550F1CC1 /* MediaPlayerProviderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5E23D8EE6CBACF32F1EC874 /* MediaPlayerProviderProtocol.swift */; }; 762DAF94846C7AC8550F1CC1 /* MediaPlayerProviderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5E23D8EE6CBACF32F1EC874 /* MediaPlayerProviderProtocol.swift */; };
763D69741D58D2B650BC1FC9 /* CallScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F37FA1A5D55633E1942B153B /* CallScreenCoordinator.swift */; }; 763D69741D58D2B650BC1FC9 /* CallScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F37FA1A5D55633E1942B153B /* CallScreenCoordinator.swift */; };
7640A4B412CACF15D143CCD4 /* Strings+SAS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B172057567E049007A5C4D92 /* Strings+SAS.swift */; };
764AFCC225B044CF5F9B41E5 /* PaginationIndicatorRoomTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42EEA67A6796BDC2761619C5 /* PaginationIndicatorRoomTimelineView.swift */; }; 764AFCC225B044CF5F9B41E5 /* PaginationIndicatorRoomTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42EEA67A6796BDC2761619C5 /* PaginationIndicatorRoomTimelineView.swift */; };
767D366C40F1311CFA333763 /* PillContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86376BEE425704AEE197CA54 /* PillContext.swift */; }; 767D366C40F1311CFA333763 /* PillContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86376BEE425704AEE197CA54 /* PillContext.swift */; };
7691233E3572A9173FD96CB3 /* SecureBackupKeyBackupScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E88534A39781D76487D59DF /* SecureBackupKeyBackupScreenViewModelTests.swift */; }; 7691233E3572A9173FD96CB3 /* SecureBackupKeyBackupScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E88534A39781D76487D59DF /* SecureBackupKeyBackupScreenViewModelTests.swift */; };
@ -777,6 +778,7 @@
C2879369106A419A5071F1F8 /* VoiceMessageRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26B0A96B8FE4849227945067 /* VoiceMessageRecorder.swift */; }; C2879369106A419A5071F1F8 /* VoiceMessageRecorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 26B0A96B8FE4849227945067 /* VoiceMessageRecorder.swift */; };
C287BE1802AD432F3D848D8E /* InvitesScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DF81D7F2A6BA9DE3F6F8D9D /* InvitesScreenViewModel.swift */; }; C287BE1802AD432F3D848D8E /* InvitesScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DF81D7F2A6BA9DE3F6F8D9D /* InvitesScreenViewModel.swift */; };
C32765D740C81AD4C42E8F50 /* CreateRoomFlowParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 935C2FB18EFB8EEE96B26330 /* CreateRoomFlowParameters.swift */; }; C32765D740C81AD4C42E8F50 /* CreateRoomFlowParameters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 935C2FB18EFB8EEE96B26330 /* CreateRoomFlowParameters.swift */; };
C3317EF833AB4060988DF098 /* SAS.strings in Resources */ = {isa = PBXBuildFile; fileRef = 135FC689EA39AE1D34153B58 /* SAS.strings */; };
C3522917C0C367C403429EEC /* CoordinatorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B251F5B4511D1CA0BA8361FE /* CoordinatorProtocol.swift */; }; C3522917C0C367C403429EEC /* CoordinatorProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B251F5B4511D1CA0BA8361FE /* CoordinatorProtocol.swift */; };
C4078364FD9FA00EA9D00A15 /* RoomMembersListScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45CDF9A107BFE6C79B58D6B5 /* RoomMembersListScreenViewModelProtocol.swift */; }; C4078364FD9FA00EA9D00A15 /* RoomMembersListScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45CDF9A107BFE6C79B58D6B5 /* RoomMembersListScreenViewModelProtocol.swift */; };
C413D36D44F89DE63D3ADFA4 /* ReportContentScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A433BE28B40D418237BE37B5 /* ReportContentScreen.swift */; }; C413D36D44F89DE63D3ADFA4 /* ReportContentScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A433BE28B40D418237BE37B5 /* ReportContentScreen.swift */; };
@ -812,6 +814,7 @@
CBA9EDF305036039166E76FF /* StartChatScreenUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AEC1AB349A341FE13DEC1 /* StartChatScreenUITests.swift */; }; CBA9EDF305036039166E76FF /* StartChatScreenUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2AEC1AB349A341FE13DEC1 /* StartChatScreenUITests.swift */; };
CBB4F39A1309F7281AE7AA8E /* test_voice_message.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 0392E3FDE372C9B56FEEED8B /* test_voice_message.m4a */; }; CBB4F39A1309F7281AE7AA8E /* test_voice_message.m4a in Resources */ = {isa = PBXBuildFile; fileRef = 0392E3FDE372C9B56FEEED8B /* test_voice_message.m4a */; };
CBD2ABE4C1A47ECD99E1488E /* NotificationSettingsScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 421FA93BCC2840E66E4F306F /* NotificationSettingsScreenViewModelProtocol.swift */; }; CBD2ABE4C1A47ECD99E1488E /* NotificationSettingsScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 421FA93BCC2840E66E4F306F /* NotificationSettingsScreenViewModelProtocol.swift */; };
CBFF4F1BFA90B46241B8106C /* Strings+SAS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B172057567E049007A5C4D92 /* Strings+SAS.swift */; };
CC0D088F505F33A20DC5590F /* RoomStateEventStringBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEEAFB646E583655652C3D04 /* RoomStateEventStringBuilderTests.swift */; }; CC0D088F505F33A20DC5590F /* RoomStateEventStringBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEEAFB646E583655652C3D04 /* RoomStateEventStringBuilderTests.swift */; };
CC961529F9F1854BEC3272C9 /* LayoutMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC8AA23D4F37CC26564F63C5 /* LayoutMocks.swift */; }; CC961529F9F1854BEC3272C9 /* LayoutMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC8AA23D4F37CC26564F63C5 /* LayoutMocks.swift */; };
CCBEC2100CAF2EEBE9DB4156 /* TemplateScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA40B98B098B6F0371B750B3 /* TemplateScreenModels.swift */; }; CCBEC2100CAF2EEBE9DB4156 /* TemplateScreenModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA40B98B098B6F0371B750B3 /* TemplateScreenModels.swift */; };
@ -1119,6 +1122,7 @@
0F64447FF544298A6A3BEF85 /* NotificationSettingsScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsScreenModels.swift; sourceTree = "<group>"; }; 0F64447FF544298A6A3BEF85 /* NotificationSettingsScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationSettingsScreenModels.swift; sourceTree = "<group>"; };
0FA60F848D1C14F873F9621A /* RoomMemberDetailsScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMemberDetailsScreenCoordinator.swift; sourceTree = "<group>"; }; 0FA60F848D1C14F873F9621A /* RoomMemberDetailsScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMemberDetailsScreenCoordinator.swift; sourceTree = "<group>"; };
0FB782CE6176A5D2C082EC5D /* WelcomeScreenScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeScreenScreenModels.swift; sourceTree = "<group>"; }; 0FB782CE6176A5D2C082EC5D /* WelcomeScreenScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeScreenScreenModels.swift; sourceTree = "<group>"; };
105429F29096729EDD3152CF /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/SAS.strings; sourceTree = "<group>"; };
1059E2AE7878CF7820592637 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; }; 1059E2AE7878CF7820592637 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
105B2A8426404EF66F00CFDB /* RoomTimelineItemFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemFactory.swift; sourceTree = "<group>"; }; 105B2A8426404EF66F00CFDB /* RoomTimelineItemFactory.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemFactory.swift; sourceTree = "<group>"; };
10B7F8EE25775DE2A305CBB5 /* NotificationCenterProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCenterProtocol.swift; sourceTree = "<group>"; }; 10B7F8EE25775DE2A305CBB5 /* NotificationCenterProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationCenterProtocol.swift; sourceTree = "<group>"; };
@ -1216,6 +1220,7 @@
25F8664F1FB95AF3C4202478 /* PollFormScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenCoordinator.swift; sourceTree = "<group>"; }; 25F8664F1FB95AF3C4202478 /* PollFormScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenCoordinator.swift; sourceTree = "<group>"; };
260004737C573A56FA01E86E /* Encodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Encodable.swift; sourceTree = "<group>"; }; 260004737C573A56FA01E86E /* Encodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Encodable.swift; sourceTree = "<group>"; };
26B0A96B8FE4849227945067 /* VoiceMessageRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorder.swift; sourceTree = "<group>"; }; 26B0A96B8FE4849227945067 /* VoiceMessageRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorder.swift; sourceTree = "<group>"; };
26CB9E9026610C2BC2132D06 /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/SAS.strings"; sourceTree = "<group>"; };
26EAAB54C6CE91D64B69A9F8 /* AppLockServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockServiceProtocol.swift; sourceTree = "<group>"; }; 26EAAB54C6CE91D64B69A9F8 /* AppLockServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockServiceProtocol.swift; sourceTree = "<group>"; };
2757B1BE23DF8AA239937243 /* AudioConverterProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioConverterProtocol.swift; sourceTree = "<group>"; }; 2757B1BE23DF8AA239937243 /* AudioConverterProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioConverterProtocol.swift; sourceTree = "<group>"; };
277C20CDD5B64510401B6D0D /* ServerConfigurationScreenViewStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerConfigurationScreenViewStateTests.swift; sourceTree = "<group>"; }; 277C20CDD5B64510401B6D0D /* ServerConfigurationScreenViewStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerConfigurationScreenViewStateTests.swift; sourceTree = "<group>"; };
@ -1240,6 +1245,7 @@
2D0946F77B696176E062D037 /* RoomMembersListScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMembersListScreenModels.swift; sourceTree = "<group>"; }; 2D0946F77B696176E062D037 /* RoomMembersListScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMembersListScreenModels.swift; sourceTree = "<group>"; };
2D505843AB66822EB91F0DF0 /* TimelineItemProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemProxy.swift; sourceTree = "<group>"; }; 2D505843AB66822EB91F0DF0 /* TimelineItemProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineItemProxy.swift; sourceTree = "<group>"; };
2D7A2C4A3A74F0D2FFE9356A /* MediaPlayerProviderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPlayerProviderTests.swift; sourceTree = "<group>"; }; 2D7A2C4A3A74F0D2FFE9356A /* MediaPlayerProviderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaPlayerProviderTests.swift; sourceTree = "<group>"; };
2E11E7C396ED06A154CF6DF3 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/SAS.strings; sourceTree = "<group>"; };
2E88534A39781D76487D59DF /* SecureBackupKeyBackupScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupKeyBackupScreenViewModelTests.swift; sourceTree = "<group>"; }; 2E88534A39781D76487D59DF /* SecureBackupKeyBackupScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupKeyBackupScreenViewModelTests.swift; sourceTree = "<group>"; };
2EFE1922F39398ABFB36DF3F /* RoomDetailsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetailsViewModelTests.swift; sourceTree = "<group>"; }; 2EFE1922F39398ABFB36DF3F /* RoomDetailsViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetailsViewModelTests.swift; sourceTree = "<group>"; };
2F36C5D9B37E50915ECBD3EE /* RoomMemberProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMemberProxy.swift; sourceTree = "<group>"; }; 2F36C5D9B37E50915ECBD3EE /* RoomMemberProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMemberProxy.swift; sourceTree = "<group>"; };
@ -1420,6 +1426,7 @@
6033779EB37259F27F938937 /* ClientProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientProxyProtocol.swift; sourceTree = "<group>"; }; 6033779EB37259F27F938937 /* ClientProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientProxyProtocol.swift; sourceTree = "<group>"; };
60F18AECC9D38C2B6D85F99C /* Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Publisher.swift; sourceTree = "<group>"; }; 60F18AECC9D38C2B6D85F99C /* Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Publisher.swift; sourceTree = "<group>"; };
612EF972F2A1800682D32C5E /* StickerRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerRoomTimelineView.swift; sourceTree = "<group>"; }; 612EF972F2A1800682D32C5E /* StickerRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerRoomTimelineView.swift; sourceTree = "<group>"; };
61B33F23681660E940BA57F4 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/SAS.strings; sourceTree = "<group>"; };
62011D547772F3DF5D924823 /* ApplicationMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationMock.swift; sourceTree = "<group>"; }; 62011D547772F3DF5D924823 /* ApplicationMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationMock.swift; sourceTree = "<group>"; };
622D09D4ECE759189009AEAF /* MapLibreMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapLibreMapView.swift; sourceTree = "<group>"; }; 622D09D4ECE759189009AEAF /* MapLibreMapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapLibreMapView.swift; sourceTree = "<group>"; };
624244C398804ADC885239AA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; }; 624244C398804ADC885239AA /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/Localizable.strings; sourceTree = "<group>"; };
@ -1441,6 +1448,7 @@
66901977F6469D03C333DF32 /* RoomNotificationSettingsScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenUITests.swift; sourceTree = "<group>"; }; 66901977F6469D03C333DF32 /* RoomNotificationSettingsScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenUITests.swift; sourceTree = "<group>"; };
669F35C505ACE1110589F875 /* MediaUploadingPreprocessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadingPreprocessor.swift; sourceTree = "<group>"; }; 669F35C505ACE1110589F875 /* MediaUploadingPreprocessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaUploadingPreprocessor.swift; sourceTree = "<group>"; };
66F2402D738694F98729A441 /* RoomTimelineProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineProvider.swift; sourceTree = "<group>"; }; 66F2402D738694F98729A441 /* RoomTimelineProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineProvider.swift; sourceTree = "<group>"; };
6722709BD6178E10B70C9641 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/SAS.strings; sourceTree = "<group>"; };
68010886142843705E342645 /* ProgressMaskModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressMaskModifier.swift; sourceTree = "<group>"; }; 68010886142843705E342645 /* ProgressMaskModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressMaskModifier.swift; sourceTree = "<group>"; };
6861FE915C7B5466E6962BBA /* StartChatScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartChatScreen.swift; sourceTree = "<group>"; }; 6861FE915C7B5466E6962BBA /* StartChatScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartChatScreen.swift; sourceTree = "<group>"; };
693E16574C6F7F9FA1015A8C /* Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Search.swift; sourceTree = "<group>"; }; 693E16574C6F7F9FA1015A8C /* Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Search.swift; sourceTree = "<group>"; };
@ -1482,6 +1490,7 @@
72F37B5DA798C9AE436F2C2C /* AttributedStringBuilderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttributedStringBuilderProtocol.swift; sourceTree = "<group>"; }; 72F37B5DA798C9AE436F2C2C /* AttributedStringBuilderProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AttributedStringBuilderProtocol.swift; sourceTree = "<group>"; };
7310D8DFE01AF45F0689C3AA /* Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Publisher.swift; sourceTree = "<group>"; }; 7310D8DFE01AF45F0689C3AA /* Publisher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Publisher.swift; sourceTree = "<group>"; };
7367B3B9A8CAF902220F31D1 /* BugReportFlowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugReportFlowCoordinator.swift; sourceTree = "<group>"; }; 7367B3B9A8CAF902220F31D1 /* BugReportFlowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugReportFlowCoordinator.swift; sourceTree = "<group>"; };
7447C0AD7EF302CD027D6230 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/SAS.strings; sourceTree = "<group>"; };
745323FCF9AF21A117252C53 /* RoundedLabelItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundedLabelItem.swift; sourceTree = "<group>"; }; 745323FCF9AF21A117252C53 /* RoundedLabelItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoundedLabelItem.swift; sourceTree = "<group>"; };
74611A4182DCF5F4D42696EC /* XCTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTestCase.swift; sourceTree = "<group>"; }; 74611A4182DCF5F4D42696EC /* XCTestCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XCTestCase.swift; sourceTree = "<group>"; };
7463464054DDF194C54F0B04 /* LogViewerScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogViewerScreenViewModelProtocol.swift; sourceTree = "<group>"; }; 7463464054DDF194C54F0B04 /* LogViewerScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogViewerScreenViewModelProtocol.swift; sourceTree = "<group>"; };
@ -1627,6 +1636,7 @@
9FB4F169D653296023ED65E6 /* NSESettingsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSESettingsProtocol.swift; sourceTree = "<group>"; }; 9FB4F169D653296023ED65E6 /* NSESettingsProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSESettingsProtocol.swift; sourceTree = "<group>"; };
A00C7A331B72C0F05C00392F /* RoomScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomScreenViewModelProtocol.swift; sourceTree = "<group>"; }; A00C7A331B72C0F05C00392F /* RoomScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomScreenViewModelProtocol.swift; sourceTree = "<group>"; };
A019A12C866D64CF072024B9 /* AppLockSetupPINScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupPINScreenViewModel.swift; sourceTree = "<group>"; }; A019A12C866D64CF072024B9 /* AppLockSetupPINScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSetupPINScreenViewModel.swift; sourceTree = "<group>"; };
A02D1A490944BF01A37586E1 /* sk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sk; path = sk.lproj/SAS.strings; sourceTree = "<group>"; };
A05707BF550D770168A406DB /* LoginViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModelTests.swift; sourceTree = "<group>"; }; A05707BF550D770168A406DB /* LoginViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModelTests.swift; sourceTree = "<group>"; };
A057F2FDC14866C3026A89A4 /* NotificationManagerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerProtocol.swift; sourceTree = "<group>"; }; A057F2FDC14866C3026A89A4 /* NotificationManagerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationManagerProtocol.swift; sourceTree = "<group>"; };
A0A01AECFF54281CF35909A6 /* MessageComposer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageComposer.swift; sourceTree = "<group>"; }; A0A01AECFF54281CF35909A6 /* MessageComposer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageComposer.swift; sourceTree = "<group>"; };
@ -1693,6 +1703,7 @@
B0BA67B3E4EF9D29D14A78CE /* AppLockSettingsScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSettingsScreenViewModelTests.swift; sourceTree = "<group>"; }; B0BA67B3E4EF9D29D14A78CE /* AppLockSettingsScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockSettingsScreenViewModelTests.swift; sourceTree = "<group>"; };
B16048D30F0438731C41F775 /* StateRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineItem.swift; sourceTree = "<group>"; }; B16048D30F0438731C41F775 /* StateRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineItem.swift; sourceTree = "<group>"; };
B16CAF20C9AC874A210E2DCF /* SessionVerificationScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionVerificationScreenViewModelProtocol.swift; sourceTree = "<group>"; }; B16CAF20C9AC874A210E2DCF /* SessionVerificationScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionVerificationScreenViewModelProtocol.swift; sourceTree = "<group>"; };
B172057567E049007A5C4D92 /* Strings+SAS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Strings+SAS.swift"; sourceTree = "<group>"; };
B1E227F34BE43B08E098796E /* TestablePreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestablePreview.swift; sourceTree = "<group>"; }; B1E227F34BE43B08E098796E /* TestablePreview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestablePreview.swift; sourceTree = "<group>"; };
B251F5B4511D1CA0BA8361FE /* CoordinatorProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoordinatorProtocol.swift; sourceTree = "<group>"; }; B251F5B4511D1CA0BA8361FE /* CoordinatorProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoordinatorProtocol.swift; sourceTree = "<group>"; };
B2B5EDCD05D50BA9B815C66C /* ImageRoomTimelineItemContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRoomTimelineItemContent.swift; sourceTree = "<group>"; }; B2B5EDCD05D50BA9B815C66C /* ImageRoomTimelineItemContent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRoomTimelineItemContent.swift; sourceTree = "<group>"; };
@ -1815,6 +1826,7 @@
CD95B3714F806AC9CF9A557B /* ComposerToolbarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbarViewModel.swift; sourceTree = "<group>"; }; CD95B3714F806AC9CF9A557B /* ComposerToolbarViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbarViewModel.swift; sourceTree = "<group>"; };
CDB3227C7A74B734924942E9 /* RoomSummaryProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryProvider.swift; sourceTree = "<group>"; }; CDB3227C7A74B734924942E9 /* RoomSummaryProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryProvider.swift; sourceTree = "<group>"; };
CEE0E6043EFCF6FD2A341861 /* TimelineReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineReplyView.swift; sourceTree = "<group>"; }; CEE0E6043EFCF6FD2A341861 /* TimelineReplyView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineReplyView.swift; sourceTree = "<group>"; };
CEE20623EB4A9B88FB29F2BA /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SAS.strings; sourceTree = "<group>"; };
CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; path = UnitTests.xctestplan; sourceTree = "<group>"; }; CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; path = UnitTests.xctestplan; sourceTree = "<group>"; };
CF48AF076424DBC1615C74AD /* AuthenticationServiceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationServiceProxy.swift; sourceTree = "<group>"; }; CF48AF076424DBC1615C74AD /* AuthenticationServiceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationServiceProxy.swift; sourceTree = "<group>"; };
D0140615D2232612C813FD6C /* EncryptedHistoryRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedHistoryRoomTimelineItem.swift; sourceTree = "<group>"; }; D0140615D2232612C813FD6C /* EncryptedHistoryRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedHistoryRoomTimelineItem.swift; sourceTree = "<group>"; };
@ -1824,6 +1836,7 @@
D0A45283CF1DB96E583BECA6 /* ImageRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRoomTimelineView.swift; sourceTree = "<group>"; }; D0A45283CF1DB96E583BECA6 /* ImageRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageRoomTimelineView.swift; sourceTree = "<group>"; };
D0C2D52E36AD614B3C003EF6 /* RoomTimelineItemViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemViewState.swift; sourceTree = "<group>"; }; D0C2D52E36AD614B3C003EF6 /* RoomTimelineItemViewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemViewState.swift; sourceTree = "<group>"; };
D121B4FCFC38DBCC17BCC6D6 /* ComposerToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbar.swift; sourceTree = "<group>"; }; D121B4FCFC38DBCC17BCC6D6 /* ComposerToolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerToolbar.swift; sourceTree = "<group>"; };
D196116D2DD3F2757D45FCB7 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = hu.lproj/SAS.strings; sourceTree = "<group>"; };
D1BC84BA0AF11C2128D58ABD /* Common.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Common.swift; sourceTree = "<group>"; }; D1BC84BA0AF11C2128D58ABD /* Common.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Common.swift; sourceTree = "<group>"; };
D1D8479BB704B7EF696F8ABE /* RoomPollsHistoryScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomPollsHistoryScreenCoordinator.swift; sourceTree = "<group>"; }; D1D8479BB704B7EF696F8ABE /* RoomPollsHistoryScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomPollsHistoryScreenCoordinator.swift; sourceTree = "<group>"; };
D263254AFE5B7993FFBBF324 /* NSE.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NSE.entitlements; sourceTree = "<group>"; }; D263254AFE5B7993FFBBF324 /* NSE.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = NSE.entitlements; sourceTree = "<group>"; };
@ -1860,6 +1873,7 @@
D93C94C30E3135BC9290DE13 /* VoiceMessageRecorderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorderTests.swift; sourceTree = "<group>"; }; D93C94C30E3135BC9290DE13 /* VoiceMessageRecorderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorderTests.swift; sourceTree = "<group>"; };
DA14564EE143F73F7E4D1F79 /* RoomNotificationSettingsScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenModels.swift; sourceTree = "<group>"; }; DA14564EE143F73F7E4D1F79 /* RoomNotificationSettingsScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsScreenModels.swift; sourceTree = "<group>"; };
DA2AEC1AB349A341FE13DEC1 /* StartChatScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartChatScreenUITests.swift; sourceTree = "<group>"; }; DA2AEC1AB349A341FE13DEC1 /* StartChatScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartChatScreenUITests.swift; sourceTree = "<group>"; };
DA3D82522494E78746B2214E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/SAS.strings; sourceTree = "<group>"; };
DAB8D7926A5684E18196B538 /* VoiceMessageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageCache.swift; sourceTree = "<group>"; }; DAB8D7926A5684E18196B538 /* VoiceMessageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageCache.swift; sourceTree = "<group>"; };
DB06F22CFA34885B40976061 /* RoomDetailsEditScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetailsEditScreen.swift; sourceTree = "<group>"; }; DB06F22CFA34885B40976061 /* RoomDetailsEditScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetailsEditScreen.swift; sourceTree = "<group>"; };
DC0AEA686E425F86F6BA0404 /* UNNotification+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNNotification+Creator.swift"; sourceTree = "<group>"; }; DC0AEA686E425F86F6BA0404 /* UNNotification+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNNotification+Creator.swift"; sourceTree = "<group>"; };
@ -2571,6 +2585,7 @@
children = ( children = (
71D52BAA5BADB06E5E8C295D /* Assets.swift */, 71D52BAA5BADB06E5E8C295D /* Assets.swift */,
47EBB5D698CE9A25BB553A2D /* Strings.swift */, 47EBB5D698CE9A25BB553A2D /* Strings.swift */,
B172057567E049007A5C4D92 /* Strings+SAS.swift */,
1A18F6CE4D694D21E4EA9B25 /* Strings+Untranslated.swift */, 1A18F6CE4D694D21E4EA9B25 /* Strings+Untranslated.swift */,
); );
path = Generated; path = Generated;
@ -3941,6 +3956,7 @@
91DE43B8815918E590912DDA /* InfoPlist.strings */, 91DE43B8815918E590912DDA /* InfoPlist.strings */,
7109E709A7738E6BCC4553E6 /* Localizable.strings */, 7109E709A7738E6BCC4553E6 /* Localizable.strings */,
187853A7E643995EE49FAD43 /* Localizable.stringsdict */, 187853A7E643995EE49FAD43 /* Localizable.stringsdict */,
135FC689EA39AE1D34153B58 /* SAS.strings */,
D2F7194F440375338F8E2487 /* Untranslated.strings */, D2F7194F440375338F8E2487 /* Untranslated.strings */,
F75DF9500D69A3AAF8339E69 /* Untranslated.stringsdict */, F75DF9500D69A3AAF8339E69 /* Untranslated.stringsdict */,
); );
@ -5030,6 +5046,7 @@
5F5488FBC9CFEB6F433D74A4 /* Localizable.strings in Resources */, 5F5488FBC9CFEB6F433D74A4 /* Localizable.strings in Resources */,
0EA6537A07E2DC882AEA5962 /* Localizable.stringsdict in Resources */, 0EA6537A07E2DC882AEA5962 /* Localizable.stringsdict in Resources */,
6860721DB3091BE08164C132 /* MapAssets.xcassets in Resources */, 6860721DB3091BE08164C132 /* MapAssets.xcassets in Resources */,
C3317EF833AB4060988DF098 /* SAS.strings in Resources */,
CE1694C7BB93C3311524EF28 /* Untranslated.strings in Resources */, CE1694C7BB93C3311524EF28 /* Untranslated.strings in Resources */,
2797C9D9BA642370F1C85D78 /* Untranslated.stringsdict in Resources */, 2797C9D9BA642370F1C85D78 /* Untranslated.stringsdict in Resources */,
E67418DACEDBC29E988E6ACD /* message.caf in Resources */, E67418DACEDBC29E988E6ACD /* message.caf in Resources */,
@ -5229,6 +5246,7 @@
17BC15DA08A52587466698C5 /* RoomMessageEventStringBuilder.swift in Sources */, 17BC15DA08A52587466698C5 /* RoomMessageEventStringBuilder.swift in Sources */,
7354D094A4C59B555F407FA1 /* RustTracing.swift in Sources */, 7354D094A4C59B555F407FA1 /* RustTracing.swift in Sources */,
422E8D182CA688D4565CD1E1 /* String.swift in Sources */, 422E8D182CA688D4565CD1E1 /* String.swift in Sources */,
CBFF4F1BFA90B46241B8106C /* Strings+SAS.swift in Sources */,
ECA636DAF071C611FDC2BB57 /* Strings+Untranslated.swift in Sources */, ECA636DAF071C611FDC2BB57 /* Strings+Untranslated.swift in Sources */,
6EC7A40A537CFB3D526A111C /* Strings.swift in Sources */, 6EC7A40A537CFB3D526A111C /* Strings.swift in Sources */,
719E7AAD1F8E68F68F30FECD /* Task.swift in Sources */, 719E7AAD1F8E68F68F30FECD /* Task.swift in Sources */,
@ -5930,6 +5948,7 @@
C58E305C380D3ADDF7912180 /* StickerRoomTimelineItem.swift in Sources */, C58E305C380D3ADDF7912180 /* StickerRoomTimelineItem.swift in Sources */,
F32B271F60531BE92C6E62A1 /* StickerRoomTimelineView.swift in Sources */, F32B271F60531BE92C6E62A1 /* StickerRoomTimelineView.swift in Sources */,
2F94054F50E312AF30BE07F3 /* String.swift in Sources */, 2F94054F50E312AF30BE07F3 /* String.swift in Sources */,
7640A4B412CACF15D143CCD4 /* Strings+SAS.swift in Sources */,
A7D48E44D485B143AADDB77D /* Strings+Untranslated.swift in Sources */, A7D48E44D485B143AADDB77D /* Strings+Untranslated.swift in Sources */,
066A1E9B94723EE9F3038044 /* Strings.swift in Sources */, 066A1E9B94723EE9F3038044 /* Strings.swift in Sources */,
FF34BF2AF731340AF9414A18 /* SwipeRightAction.swift in Sources */, FF34BF2AF731340AF9414A18 /* SwipeRightAction.swift in Sources */,
@ -6155,6 +6174,23 @@
/* End PBXTargetDependency section */ /* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */ /* Begin PBXVariantGroup section */
135FC689EA39AE1D34153B58 /* SAS.strings */ = {
isa = PBXVariantGroup;
children = (
2E11E7C396ED06A154CF6DF3 /* cs */,
DA3D82522494E78746B2214E /* de */,
7447C0AD7EF302CD027D6230 /* en */,
6722709BD6178E10B70C9641 /* es */,
CEE20623EB4A9B88FB29F2BA /* fr */,
D196116D2DD3F2757D45FCB7 /* hu */,
61B33F23681660E940BA57F4 /* it */,
105429F29096729EDD3152CF /* ru */,
A02D1A490944BF01A37586E1 /* sk */,
26CB9E9026610C2BC2132D06 /* zh-Hant-TW */,
);
name = SAS.strings;
sourceTree = "<group>";
};
187853A7E643995EE49FAD43 /* Localizable.stringsdict */ = { 187853A7E643995EE49FAD43 /* Localizable.stringsdict */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (

View File

@ -0,0 +1,64 @@
"aeroplane" = "Letadlo";
"anchor" = "Kotva";
"apple" = "Jablko";
"ball" = "Míč";
"banana" = "Banán";
"bell" = "Zvonek";
"bicycle" = "Kolo";
"book" = "Kniha";
"butterfly" = "Motýl";
"cactus" = "Kaktus";
"cake" = "Dort";
"cat" = "Kočka";
"clock" = "Hodiny";
"cloud" = "Mrak";
"corn" = "Kukuřice";
"dog" = "Pes";
"elephant" = "Slon";
"fire" = "Oheň";
"fish" = "Ryba";
"flag" = "Vlajka";
"flower" = "Květina";
"folder" = "Složka";
"gift" = "Dárek";
"glasses" = "Brýle";
"globe" = "Zeměkoule";
"guitar" = "Kytara";
"hammer" = "Kladivo";
"hat" = "Klobouk";
"headphones" = "Sluchátka";
"heart" = "Srdce";
"horse" = "Kůň";
"hourglass" = "Přesýpací hodiny";
"key" = "Klíč ke dveřím";
"light_bulb" = "Žárovka";
"lion" = "Lev";
"lock" = "Zámek";
"moon" = "Měsíc";
"mushroom" = "Houba";
"octopus" = "Chobotnice";
"panda" = "Panda";
"paperclip" = "Sponka";
"pencil" = "Tužka";
"penguin" = "Tučňák";
"pig" = "Prase";
"pin" = "Špendlík";
"pizza" = "Pizza";
"rabbit" = "Králík";
"robot" = "Robot";
"rocket" = "Raketa";
"rooster" = "Kohout";
"santa" = "Mikuláš";
"scissors" = "Nůžky";
"smiley" = "Smajlík";
"spanner" = "Klíč";
"strawberry" = "Jahoda";
"telephone" = "Telefon";
"thumbs_up" = "Palec nahoru";
"train" = "Vlak";
"tree" = "Strom";
"trophy" = "Pohár";
"trumpet" = "Trumpeta";
"turtle" = "Želva";
"umbrella" = "Deštník";
"unicorn" = "Jednorožec";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Flugzeug";
"anchor" = "Anker";
"apple" = "Apfel";
"ball" = "Ball";
"banana" = "Banane";
"bell" = "Glocke";
"bicycle" = "Fahrrad";
"book" = "Buch";
"butterfly" = "Schmetterling";
"cactus" = "Kaktus";
"cake" = "Kuchen";
"cat" = "Katze";
"clock" = "Uhr";
"cloud" = "Wolke";
"corn" = "Mais";
"dog" = "Hund";
"elephant" = "Elefant";
"fire" = "Feuer";
"fish" = "Fisch";
"flag" = "Flagge";
"flower" = "Blume";
"folder" = "Ordner";
"gift" = "Geschenk";
"glasses" = "Brille";
"globe" = "Globus";
"guitar" = "Gitarre";
"hammer" = "Hammer";
"hat" = "Hut";
"headphones" = "Kopfhörer";
"heart" = "Herz";
"horse" = "Pferd";
"hourglass" = "Sanduhr";
"key" = "Schlüssel";
"light_bulb" = "Glühbirne";
"lion" = "Löwe";
"lock" = "Schloss";
"moon" = "Mond";
"mushroom" = "Pilz";
"octopus" = "Oktopus";
"panda" = "Panda";
"paperclip" = "Büroklammer";
"pencil" = "Bleistift";
"penguin" = "Pinguin";
"pig" = "Schwein";
"pin" = "Stecknadel";
"pizza" = "Pizza";
"rabbit" = "Hase";
"robot" = "Roboter";
"rocket" = "Rakete";
"rooster" = "Hahn";
"santa" = "Weihnachtsmann";
"scissors" = "Schere";
"smiley" = "Lächeln";
"spanner" = "Schraubenschlüssel";
"strawberry" = "Erdbeere";
"telephone" = "Telefon";
"thumbs_up" = "Daumen Hoch";
"train" = "Zug";
"tree" = "Baum";
"trophy" = "Pokal";
"trumpet" = "Trompete";
"turtle" = "Schildkröte";
"umbrella" = "Regenschirm";
"unicorn" = "Einhorn";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Aeroplane";
"anchor" = "Anchor";
"apple" = "Apple";
"ball" = "Ball";
"banana" = "Banana";
"bell" = "Bell";
"bicycle" = "Bicycle";
"book" = "Book";
"butterfly" = "Butterfly";
"cactus" = "Cactus";
"cake" = "Cake";
"cat" = "Cat";
"clock" = "Clock";
"cloud" = "Cloud";
"corn" = "Corn";
"dog" = "Dog";
"elephant" = "Elephant";
"fire" = "Fire";
"fish" = "Fish";
"flag" = "Flag";
"flower" = "Flower";
"folder" = "Folder";
"gift" = "Gift";
"glasses" = "Glasses";
"globe" = "Globe";
"guitar" = "Guitar";
"hammer" = "Hammer";
"hat" = "Hat";
"headphones" = "Headphones";
"heart" = "Heart";
"horse" = "Horse";
"hourglass" = "Hourglass";
"key" = "Key";
"light_bulb" = "Light Bulb";
"lion" = "Lion";
"lock" = "Lock";
"moon" = "Moon";
"mushroom" = "Mushroom";
"octopus" = "Octopus";
"panda" = "Panda";
"paperclip" = "Paperclip";
"pencil" = "Pencil";
"penguin" = "Penguin";
"pig" = "Pig";
"pin" = "Pin";
"pizza" = "Pizza";
"rabbit" = "Rabbit";
"robot" = "Robot";
"rocket" = "Rocket";
"rooster" = "Rooster";
"santa" = "Santa";
"scissors" = "Scissors";
"smiley" = "Smiley";
"spanner" = "Spanner";
"strawberry" = "Strawberry";
"telephone" = "Telephone";
"thumbs_up" = "Thumbs Up";
"train" = "Train";
"tree" = "Tree";
"trophy" = "Trophy";
"trumpet" = "Trumpet";
"turtle" = "Turtle";
"umbrella" = "Umbrella";
"unicorn" = "Unicorn";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Avión";
"anchor" = "Ancla";
"apple" = "Manzana";
"ball" = "Bola";
"banana" = "Plátano";
"bell" = "Campana";
"bicycle" = "Bicicleta";
"book" = "Libro";
"butterfly" = "Mariposa";
"cactus" = "Cactus";
"cake" = "Tarta";
"cat" = "Gato";
"clock" = "Reloj";
"cloud" = "Nube";
"corn" = "Maíz";
"dog" = "Perro";
"elephant" = "Elefante";
"fire" = "Fuego";
"fish" = "Pez";
"flag" = "Bandera";
"flower" = "Flor";
"folder" = "Carpeta";
"gift" = "Regalo";
"glasses" = "Gafas";
"globe" = "Globo";
"guitar" = "Guitarra";
"hammer" = "Martillo";
"hat" = "Sombrero";
"headphones" = "Cascos";
"heart" = "Corazón";
"horse" = "Caballo";
"hourglass" = "Reloj de arena";
"key" = "Llave";
"light_bulb" = "Bombilla";
"lion" = "León";
"lock" = "Candado";
"moon" = "Luna";
"mushroom" = "Seta";
"octopus" = "Pulpo";
"panda" = "Panda";
"paperclip" = "Clip";
"pencil" = "Lápiz";
"penguin" = "Pingüino";
"pig" = "Cerdo";
"pin" = "Alfiler";
"pizza" = "Pizza";
"rabbit" = "Conejo";
"robot" = "Robot";
"rocket" = "Cohete";
"rooster" = "Gallo";
"santa" = "Papá Noel";
"scissors" = "Tijeras";
"smiley" = "Emoticono";
"spanner" = "Llave inglesa";
"strawberry" = "Fresa";
"telephone" = "Teléfono";
"thumbs_up" = "Pulgar arriba";
"train" = "Tren";
"tree" = "Árbol";
"trophy" = "Trofeo";
"trumpet" = "Trompeta";
"turtle" = "Tortuga";
"umbrella" = "Paraguas";
"unicorn" = "Unicornio";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Avion";
"anchor" = "Ancre";
"apple" = "Pomme";
"ball" = "Ballon";
"banana" = "Banane";
"bell" = "Cloche";
"bicycle" = "Vélo";
"book" = "Livre";
"butterfly" = "Papillon";
"cactus" = "Cactus";
"cake" = "Gâteau";
"cat" = "Chat";
"clock" = "Réveil";
"cloud" = "Nuage";
"corn" = "Maïs";
"dog" = "Chien";
"elephant" = "Éléphant";
"fire" = "Feu";
"fish" = "Poisson";
"flag" = "Drapeau";
"flower" = "Fleur";
"folder" = "Dossier";
"gift" = "Cadeau";
"glasses" = "Lunettes";
"globe" = "Globe";
"guitar" = "Guitare";
"hammer" = "Marteau";
"hat" = "Chapeau";
"headphones" = "Casque audio";
"heart" = "Cœur";
"horse" = "Cheval";
"hourglass" = "Sablier";
"key" = "Clé";
"light_bulb" = "Ampoule";
"lion" = "Lion";
"lock" = "Cadenas";
"moon" = "Lune";
"mushroom" = "Champignon";
"octopus" = "Poulpe";
"panda" = "Panda";
"paperclip" = "Trombone";
"pencil" = "Crayon";
"penguin" = "Manchot";
"pig" = "Cochon";
"pin" = "Punaise";
"pizza" = "Pizza";
"rabbit" = "Lapin";
"robot" = "Robot";
"rocket" = "Fusée";
"rooster" = "Coq";
"santa" = "Père Noël";
"scissors" = "Ciseaux";
"smiley" = "Sourire";
"spanner" = "Clé à molette";
"strawberry" = "Fraise";
"telephone" = "Téléphone";
"thumbs_up" = "Pouce en lair";
"train" = "Train";
"tree" = "Arbre";
"trophy" = "Trophée";
"trumpet" = "Trompette";
"turtle" = "Tortue";
"umbrella" = "Parapluie";
"unicorn" = "Licorne";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Repülő";
"anchor" = "Horgony";
"apple" = "Alma";
"ball" = "Labda";
"banana" = "Banán";
"bell" = "Harang";
"bicycle" = "Kerékpár";
"book" = "Könyv";
"butterfly" = "Pillangó";
"cactus" = "Kaktusz";
"cake" = "Süti";
"cat" = "Macska";
"clock" = "Óra";
"cloud" = "Felhő";
"corn" = "Kukorica";
"dog" = "Kutya";
"elephant" = "Elefánt";
"fire" = "Tűz";
"fish" = "Hal";
"flag" = "Zászló";
"flower" = "Virág";
"folder" = "Mappa";
"gift" = "Ajándék";
"glasses" = "Szemüveg";
"globe" = "Földgömb";
"guitar" = "Gitár";
"hammer" = "Kalapács";
"hat" = "Kalap";
"headphones" = "Fejhallgató";
"heart" = "Szív";
"horse" = "Ló";
"hourglass" = "Homokóra";
"key" = "Kulcs";
"light_bulb" = "Égő";
"lion" = "Oroszlán";
"lock" = "Lakat";
"moon" = "Hold";
"mushroom" = "Gomba";
"octopus" = "Polip";
"panda" = "Panda";
"paperclip" = "Gémkapocs";
"pencil" = "Ceruza";
"penguin" = "Pingvin";
"pig" = "Malac";
"pin" = "Rajszeg";
"pizza" = "Pizza";
"rabbit" = "Nyúl";
"robot" = "Robot";
"rocket" = "Rakáta";
"rooster" = "Kakas";
"santa" = "Télapó";
"scissors" = "Olló";
"smiley" = "Mosoly";
"spanner" = "Csavarkulcs";
"strawberry" = "Eper";
"telephone" = "Telefon";
"thumbs_up" = "Hüvelykujj fel";
"train" = "Vonat";
"tree" = "Fa";
"trophy" = "Trófea";
"trumpet" = "Trombita";
"turtle" = "Teknős";
"umbrella" = "Esernyő";
"unicorn" = "Egyszarvú";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Pesawat";
"anchor" = "Jangkar";
"apple" = "Apel";
"ball" = "Bola";
"banana" = "Pisang";
"bell" = "Lonceng";
"bicycle" = "Sepeda";
"book" = "Buku";
"butterfly" = "Kupu-Kupu";
"cactus" = "Kaktus";
"cake" = "Kue";
"cat" = "Kucing";
"clock" = "Jam";
"cloud" = "Awan";
"corn" = "Jagung";
"dog" = "Anjing";
"elephant" = "Gajah";
"fire" = "Api";
"fish" = "Ikan";
"flag" = "Bendera";
"flower" = "Bunga";
"folder" = "Map";
"gift" = "Kado";
"glasses" = "Kacamata";
"globe" = "Bola Dunia";
"guitar" = "Gitar";
"hammer" = "Palu";
"hat" = "Topi";
"headphones" = "Headphone";
"heart" = "Hati";
"horse" = "Kuda";
"hourglass" = "Jam Pasir";
"key" = "Kunci";
"light_bulb" = "Bohlam Lampu";
"lion" = "Singa";
"lock" = "Gembok";
"moon" = "Bulan";
"mushroom" = "Jamur";
"octopus" = "Gurita";
"panda" = "Panda";
"paperclip" = "Klip Kertas";
"pencil" = "Pensil";
"penguin" = "Penguin";
"pig" = "Babi";
"pin" = "Pin";
"pizza" = "Pizza";
"rabbit" = "Kelinci";
"robot" = "Robot";
"rocket" = "Roket";
"rooster" = "Ayam";
"santa" = "Santa";
"scissors" = "Gunting";
"smiley" = "Senyuman";
"spanner" = "Kunci Bengkel";
"strawberry" = "Stroberi";
"telephone" = "Telepon";
"thumbs_up" = "Jempol";
"train" = "Kereta Api";
"tree" = "Pohon";
"trophy" = "Piala";
"trumpet" = "Terompet";
"turtle" = "Kura-Kura";
"umbrella" = "Payung";
"unicorn" = "Unicorn";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Aeroplano";
"anchor" = "Ancora";
"apple" = "Mela";
"ball" = "Palla";
"banana" = "Banana";
"bell" = "Campana";
"bicycle" = "Bicicletta";
"book" = "Libro";
"butterfly" = "Farfalla";
"cactus" = "Cactus";
"cake" = "Torta";
"cat" = "Gatto";
"clock" = "Orologio";
"cloud" = "Nuvola";
"corn" = "Mais";
"dog" = "Cane";
"elephant" = "Elefante";
"fire" = "Fuoco";
"fish" = "Pesce";
"flag" = "Bandiera";
"flower" = "Fiore";
"folder" = "Cartella";
"gift" = "Regalo";
"glasses" = "Occhiali";
"globe" = "Globo";
"guitar" = "Chitarra";
"hammer" = "Martello";
"hat" = "Cappello";
"headphones" = "Cuffie";
"heart" = "Cuore";
"horse" = "Cavallo";
"hourglass" = "Clessidra";
"key" = "Chiave";
"light_bulb" = "Lampadina";
"lion" = "Leone";
"lock" = "Lucchetto";
"moon" = "Luna";
"mushroom" = "Fungo";
"octopus" = "Polpo";
"panda" = "Panda";
"paperclip" = "Graffetta";
"pencil" = "Matita";
"penguin" = "Pinguino";
"pig" = "Maiale";
"pin" = "Puntina";
"pizza" = "Pizza";
"rabbit" = "Coniglio";
"robot" = "Robot";
"rocket" = "Razzo";
"rooster" = "Gallo";
"santa" = "Babbo Natale";
"scissors" = "Forbici";
"smiley" = "Faccina sorridente";
"spanner" = "Chiave inglese";
"strawberry" = "Fragola";
"telephone" = "Telefono";
"thumbs_up" = "Pollice alzato";
"train" = "Treno";
"tree" = "Albero";
"trophy" = "Trofeo";
"trumpet" = "Trombetta";
"turtle" = "Tartaruga";
"umbrella" = "Ombrello";
"unicorn" = "Unicorno";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Самолет";
"anchor" = "Якорь";
"apple" = "Яблоко";
"ball" = "Мяч";
"banana" = "Банан";
"bell" = "Колокол";
"bicycle" = "Велосипед";
"book" = "Книга";
"butterfly" = "Бабочка";
"cactus" = "Кактус";
"cake" = "Торт";
"cat" = "Кошка";
"clock" = "Часы";
"cloud" = "Облако";
"corn" = "Кукуруза";
"dog" = "Собака";
"elephant" = "Слон";
"fire" = "Огонь";
"fish" = "Рыба";
"flag" = "Флаг";
"flower" = "Цветок";
"folder" = "Папка";
"gift" = "Подарок";
"glasses" = "Очки";
"globe" = "Глобус";
"guitar" = "Гитара";
"hammer" = "Молоток";
"hat" = "Шляпа";
"headphones" = "Наушники";
"heart" = "Сердце";
"horse" = "Лошадь";
"hourglass" = "Песочные часы";
"key" = "Ключ";
"light_bulb" = "Лампочка";
"lion" = "Лев";
"lock" = "Замок";
"moon" = "Луна";
"mushroom" = "Гриб";
"octopus" = "Осьминог";
"panda" = "Панда";
"paperclip" = "Скрепка";
"pencil" = "Карандаш";
"penguin" = "Пингвин";
"pig" = "Свинья";
"pin" = "Булавка";
"pizza" = "Пицца";
"rabbit" = "Кролик";
"robot" = "Робот";
"rocket" = "Ракета";
"rooster" = "Петух";
"santa" = "Санта";
"scissors" = "Ножницы";
"smiley" = "Улыбка";
"spanner" = "Ключ";
"strawberry" = "Клубника";
"telephone" = "Телефон";
"thumbs_up" = "Большой палец вверх";
"train" = "Поезд";
"tree" = "Дерево";
"trophy" = "Кубок";
"trumpet" = "Труба";
"turtle" = "Черепаха";
"umbrella" = "Зонт";
"unicorn" = "Единорог";

View File

@ -0,0 +1,64 @@
"aeroplane" = "Lietadlo";
"anchor" = "Kotva";
"apple" = "Jablko";
"ball" = "Lopta";
"banana" = "Banán";
"bell" = "Zvonec";
"bicycle" = "Bicykel";
"book" = "Kniha";
"butterfly" = "Motýľ";
"cactus" = "Kaktus";
"cake" = "Torta";
"cat" = "Mačka";
"clock" = "Budík";
"cloud" = "Oblak";
"corn" = "Kukurica";
"dog" = "Pes";
"elephant" = "Slon";
"fire" = "Oheň";
"fish" = "Ryba";
"flag" = "Zástava";
"flower" = "Kvet";
"folder" = "Fascikel";
"gift" = "Darček";
"glasses" = "Okuliare";
"globe" = "Zemeguľa";
"guitar" = "Gitara";
"hammer" = "Kladivo";
"hat" = "Klobúk";
"headphones" = "Slúchadlá";
"heart" = "Srdce";
"horse" = "Kôň";
"hourglass" = "Presýpacie hodiny";
"key" = "Kľúč";
"light_bulb" = "Žiarovka";
"lion" = "Lev";
"lock" = "Zámka";
"moon" = "Mesiac";
"mushroom" = "Huba";
"octopus" = "Chobotnica";
"panda" = "Panda";
"paperclip" = "Kancelárska sponka";
"pencil" = "Ceruzka";
"penguin" = "Tučniak";
"pig" = "Prasa";
"pin" = "Špendlík";
"pizza" = "Pizza";
"rabbit" = "Zajac";
"robot" = "Robot";
"rocket" = "Raketa";
"rooster" = "Kohút";
"santa" = "Mikuláš";
"scissors" = "Nožnice";
"smiley" = "Smajlík";
"spanner" = "Vidlicový kľúč";
"strawberry" = "Jahoda";
"telephone" = "Telefón";
"thumbs_up" = "Palec nahor";
"train" = "Vlak";
"tree" = "Strom";
"trophy" = "Trofej";
"trumpet" = "Trúbka";
"turtle" = "Korytnačka";
"umbrella" = "Dáždnik";
"unicorn" = "Jednorožec";

View File

@ -0,0 +1,27 @@
import Foundation
enum SASL10n {
static func localizedDescription(for key: String) -> String {
tr("SAS", key)
}
private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
// Use preferredLocalizations to get a language that is in the bundle and the user's preferred list of languages.
let languages = Bundle.overrideLocalizations ?? Bundle.app.preferredLocalizations
for language in languages {
if let translation = trIn(language, table, key, args) {
return translation
}
}
return Bundle.app.developmentLocalization.flatMap { trIn($0, table, key, args) } ?? key
}
private static func trIn(_ language: String, _ table: String, _ key: String, _ args: CVarArg...) -> String? {
guard let bundle = Bundle.lprojBundle(for: language) else { return nil }
let format = NSLocalizedString(key, tableName: table, bundle: bundle, comment: "")
let translation = String(format: format, locale: Locale(identifier: language), arguments: args)
guard translation != key else { return nil }
return translation
}
}

View File

@ -204,7 +204,7 @@ struct SessionVerificationScreen: View {
VStack(spacing: 16.0) { VStack(spacing: 16.0) {
Text(emoji.symbol) Text(emoji.symbol)
.font(.compound.headingXLBold) .font(.compound.headingXLBold)
Text(emoji.description) Text(emoji.localizedDescription)
.font(.compound.bodyMD) .font(.compound.bodyMD)
.foregroundColor(.compound.textSecondary) .foregroundColor(.compound.textSecondary)
} }

View File

@ -38,6 +38,10 @@ enum SessionVerificationControllerProxyCallback {
struct SessionVerificationEmoji: Hashable { struct SessionVerificationEmoji: Hashable {
let symbol: String let symbol: String
let description: String let description: String
var localizedDescription: String {
SASL10n.localizedDescription(for: description)
}
} }
// sourcery: AutoMockable // sourcery: AutoMockable

View File

@ -0,0 +1,106 @@
import ArgumentParser
import Foundation
struct GenerateSAS: ParsableCommand {
static var configuration = CommandConfiguration(abstract: "A tool to download and generate SAS localization strings")
private static let defaultLanguage = "en"
@Flag(name: .shortAndLong, help: "Increase output verbosity.")
var verbose = false
func run() throws {
let baseURL = URL(string: "https://raw.githubusercontent.com/matrix-org/matrix-spec/main/data-definitions/sas-emoji.json")!
printIfVerbose("Argument:")
printIfVerbose(self)
print("Downloading \(baseURL.absoluteString)")
guard let data = try? Data(contentsOf: baseURL),
let json = try? JSONDecoder().decode([SASEmoji].self, from: data) else {
print("Failed to download or parse JSON.")
return
}
printIfVerbose("Json data:")
printIfVerbose(json)
var defaultTranslations = [String: String]()
var cumulativeTranslations = [String: [String: String]]()
cumulativeTranslations[Self.defaultLanguage] = [String: String]()
for emoji in json {
let description = emoji.description
printIfVerbose("Description: \(description)")
defaultTranslations[description] = description
let translations = emoji.translatedDescriptions
// en is not included since is the default language so we need to add it ourselves
cumulativeTranslations[Self.defaultLanguage]![description] = description
for (lang, translation) in translations {
printIfVerbose("Lang: \(lang)")
if cumulativeTranslations[lang] == nil {
cumulativeTranslations[lang] = [String: String]()
}
cumulativeTranslations[lang]![description] = translation
}
}
printIfVerbose(defaultTranslations)
printIfVerbose(cumulativeTranslations)
for (lang, translations) in cumulativeTranslations {
let iosLang = lang
.replacingOccurrences(of: "_", with: "-")
.appending(".lproj")
writeToFile(file: "SAS.strings", dict: translations, subdirectory: iosLang)
}
print("Write completed")
}
private func writeToFile(file: String, dict: [String: String], subdirectory: String) {
let projectDirectory = Utilities.projectDirectoryURL
let fileDirectory = projectDirectory.appendingPathComponent("ElementX/Resources/Localizations").appendingPathComponent(subdirectory)
let filePath = fileDirectory.appendingPathComponent(file)
print("Writing file \(filePath.path)")
printIfVerbose("With")
printIfVerbose(dict)
do {
// This will fail if the .lproj dir does not exist already, which is fine since we don't want to add translations for unsupported languages.
try dict
.sorted(by: { $0.key < $1.key })
.map { "\"\($0.key.lowercased().replacingOccurrences(of: " ", with: "_"))\" = \"\($0.value)\";" }
.joined(separator: "\n")
.write(to: filePath, atomically: true, encoding: .utf8)
} catch {
print("Failed to write file \(filePath.path): \(error)")
}
}
private struct SASEmoji: Codable {
let number: Int
let emoji, description, unicode: String
let translatedDescriptions: [String: String?]
enum CodingKeys: String, CodingKey {
case number, emoji, description, unicode
case translatedDescriptions = "translated_descriptions"
}
}
private func printIfVerbose(_ items: Any...) {
if verbose {
print(items)
}
}
}

View File

@ -9,5 +9,6 @@ struct Tools: ParsableCommand {
OutdatedPackages.self, OutdatedPackages.self,
DownloadStrings.self, DownloadStrings.self,
Locheck.self, Locheck.self,
GenerateSDKMocks.self]) GenerateSDKMocks.self,
GenerateSAS.self])
} }