mirror of
https://github.com/element-hq/element-x-ios.git
synced 2025-03-10 21:39:12 +00:00
Download SAS Strings Tool + Localised SAS emojis (#2409)
This commit is contained in:
parent
7fa9cf16e2
commit
1a8fd7d8ff
@ -456,6 +456,7 @@
|
||||
755727E0B756430DFFEC4732 /* SessionVerificationViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF05DA24F71B455E8EFEBC3B /* SessionVerificationViewModelTests.swift */; };
|
||||
762DAF94846C7AC8550F1CC1 /* MediaPlayerProviderProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5E23D8EE6CBACF32F1EC874 /* MediaPlayerProviderProtocol.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 */; };
|
||||
767D366C40F1311CFA333763 /* PillContext.swift in Sources */ = {isa = PBXBuildFile; fileRef = 86376BEE425704AEE197CA54 /* PillContext.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 */; };
|
||||
C287BE1802AD432F3D848D8E /* InvitesScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DF81D7F2A6BA9DE3F6F8D9D /* InvitesScreenViewModel.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 */; };
|
||||
C4078364FD9FA00EA9D00A15 /* RoomMembersListScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45CDF9A107BFE6C79B58D6B5 /* RoomMembersListScreenViewModelProtocol.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 */; };
|
||||
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 */; };
|
||||
CBFF4F1BFA90B46241B8106C /* Strings+SAS.swift in Sources */ = {isa = PBXBuildFile; fileRef = B172057567E049007A5C4D92 /* Strings+SAS.swift */; };
|
||||
CC0D088F505F33A20DC5590F /* RoomStateEventStringBuilderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEEAFB646E583655652C3D04 /* RoomStateEventStringBuilderTests.swift */; };
|
||||
CC961529F9F1854BEC3272C9 /* LayoutMocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC8AA23D4F37CC26564F63C5 /* LayoutMocks.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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1216,6 +1220,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1240,6 +1245,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1420,6 +1426,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1441,6 +1448,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1482,6 +1490,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1627,6 +1636,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1693,6 +1703,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1815,6 +1826,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1824,6 +1836,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -1860,6 +1873,7 @@
|
||||
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>"; };
|
||||
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>"; };
|
||||
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>"; };
|
||||
@ -2571,6 +2585,7 @@
|
||||
children = (
|
||||
71D52BAA5BADB06E5E8C295D /* Assets.swift */,
|
||||
47EBB5D698CE9A25BB553A2D /* Strings.swift */,
|
||||
B172057567E049007A5C4D92 /* Strings+SAS.swift */,
|
||||
1A18F6CE4D694D21E4EA9B25 /* Strings+Untranslated.swift */,
|
||||
);
|
||||
path = Generated;
|
||||
@ -3941,6 +3956,7 @@
|
||||
91DE43B8815918E590912DDA /* InfoPlist.strings */,
|
||||
7109E709A7738E6BCC4553E6 /* Localizable.strings */,
|
||||
187853A7E643995EE49FAD43 /* Localizable.stringsdict */,
|
||||
135FC689EA39AE1D34153B58 /* SAS.strings */,
|
||||
D2F7194F440375338F8E2487 /* Untranslated.strings */,
|
||||
F75DF9500D69A3AAF8339E69 /* Untranslated.stringsdict */,
|
||||
);
|
||||
@ -5030,6 +5046,7 @@
|
||||
5F5488FBC9CFEB6F433D74A4 /* Localizable.strings in Resources */,
|
||||
0EA6537A07E2DC882AEA5962 /* Localizable.stringsdict in Resources */,
|
||||
6860721DB3091BE08164C132 /* MapAssets.xcassets in Resources */,
|
||||
C3317EF833AB4060988DF098 /* SAS.strings in Resources */,
|
||||
CE1694C7BB93C3311524EF28 /* Untranslated.strings in Resources */,
|
||||
2797C9D9BA642370F1C85D78 /* Untranslated.stringsdict in Resources */,
|
||||
E67418DACEDBC29E988E6ACD /* message.caf in Resources */,
|
||||
@ -5229,6 +5246,7 @@
|
||||
17BC15DA08A52587466698C5 /* RoomMessageEventStringBuilder.swift in Sources */,
|
||||
7354D094A4C59B555F407FA1 /* RustTracing.swift in Sources */,
|
||||
422E8D182CA688D4565CD1E1 /* String.swift in Sources */,
|
||||
CBFF4F1BFA90B46241B8106C /* Strings+SAS.swift in Sources */,
|
||||
ECA636DAF071C611FDC2BB57 /* Strings+Untranslated.swift in Sources */,
|
||||
6EC7A40A537CFB3D526A111C /* Strings.swift in Sources */,
|
||||
719E7AAD1F8E68F68F30FECD /* Task.swift in Sources */,
|
||||
@ -5930,6 +5948,7 @@
|
||||
C58E305C380D3ADDF7912180 /* StickerRoomTimelineItem.swift in Sources */,
|
||||
F32B271F60531BE92C6E62A1 /* StickerRoomTimelineView.swift in Sources */,
|
||||
2F94054F50E312AF30BE07F3 /* String.swift in Sources */,
|
||||
7640A4B412CACF15D143CCD4 /* Strings+SAS.swift in Sources */,
|
||||
A7D48E44D485B143AADDB77D /* Strings+Untranslated.swift in Sources */,
|
||||
066A1E9B94723EE9F3038044 /* Strings.swift in Sources */,
|
||||
FF34BF2AF731340AF9414A18 /* SwipeRightAction.swift in Sources */,
|
||||
@ -6155,6 +6174,23 @@
|
||||
/* End PBXTargetDependency 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 */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
64
ElementX/Resources/Localizations/cs.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/cs.lproj/SAS.strings
Normal 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";
|
64
ElementX/Resources/Localizations/de.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/de.lproj/SAS.strings
Normal 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";
|
64
ElementX/Resources/Localizations/en.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/en.lproj/SAS.strings
Normal 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";
|
64
ElementX/Resources/Localizations/es.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/es.lproj/SAS.strings
Normal 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";
|
64
ElementX/Resources/Localizations/fr.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/fr.lproj/SAS.strings
Normal 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 l’air";
|
||||
"train" = "Train";
|
||||
"tree" = "Arbre";
|
||||
"trophy" = "Trophée";
|
||||
"trumpet" = "Trompette";
|
||||
"turtle" = "Tortue";
|
||||
"umbrella" = "Parapluie";
|
||||
"unicorn" = "Licorne";
|
64
ElementX/Resources/Localizations/hu.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/hu.lproj/SAS.strings
Normal 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ú";
|
64
ElementX/Resources/Localizations/id.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/id.lproj/SAS.strings
Normal 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";
|
64
ElementX/Resources/Localizations/it.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/it.lproj/SAS.strings
Normal 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";
|
64
ElementX/Resources/Localizations/ru.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/ru.lproj/SAS.strings
Normal 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" = "Единорог";
|
64
ElementX/Resources/Localizations/sk.lproj/SAS.strings
Normal file
64
ElementX/Resources/Localizations/sk.lproj/SAS.strings
Normal 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";
|
27
ElementX/Sources/Generated/Strings+SAS.swift
Normal file
27
ElementX/Sources/Generated/Strings+SAS.swift
Normal 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
|
||||
}
|
||||
}
|
@ -204,7 +204,7 @@ struct SessionVerificationScreen: View {
|
||||
VStack(spacing: 16.0) {
|
||||
Text(emoji.symbol)
|
||||
.font(.compound.headingXLBold)
|
||||
Text(emoji.description)
|
||||
Text(emoji.localizedDescription)
|
||||
.font(.compound.bodyMD)
|
||||
.foregroundColor(.compound.textSecondary)
|
||||
}
|
||||
|
@ -38,6 +38,10 @@ enum SessionVerificationControllerProxyCallback {
|
||||
struct SessionVerificationEmoji: Hashable {
|
||||
let symbol: String
|
||||
let description: String
|
||||
|
||||
var localizedDescription: String {
|
||||
SASL10n.localizedDescription(for: description)
|
||||
}
|
||||
}
|
||||
|
||||
// sourcery: AutoMockable
|
||||
|
106
Tools/Sources/GenerateSAS.swift
Normal file
106
Tools/Sources/GenerateSAS.swift
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
@ -9,5 +9,6 @@ struct Tools: ParsableCommand {
|
||||
OutdatedPackages.self,
|
||||
DownloadStrings.self,
|
||||
Locheck.self,
|
||||
GenerateSDKMocks.self])
|
||||
GenerateSDKMocks.self,
|
||||
GenerateSAS.self])
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user