mirror of
https://github.com/Matte23/circolapp.git
synced 2025-12-05 23:19:10 +00:00
Add italian localization for iOS
This commit is contained in:
@@ -12,7 +12,6 @@
|
||||
950C1788258E5BD300B2DBFE /* PhoneView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 950C1787258E5BD300B2DBFE /* PhoneView.swift */; };
|
||||
9512D3C1257AB4F60023C3A1 /* NewReminderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9512D3C0257AB4F60023C3A1 /* NewReminderView.swift */; };
|
||||
952DEDDF2576F8DC001DF85D /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */; };
|
||||
953DDE7E2580312500C457CE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 953DDE7D2580312500C457CE /* LaunchScreen.storyboard */; };
|
||||
954AF8F62588A5C300666D0C /* CircularList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F52588A5C300666D0C /* CircularList.swift */; };
|
||||
954AF8F82588A5CF00666D0C /* FavouritesList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F72588A5CF00666D0C /* FavouritesList.swift */; };
|
||||
954AF8FA2588A5DD00666D0C /* RemindersList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 954AF8F92588A5DD00666D0C /* RemindersList.swift */; };
|
||||
@@ -24,6 +23,8 @@
|
||||
9554BDB8257E498F00D8925B /* OnboardingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9554BDB7257E498F00D8925B /* OnboardingView.swift */; };
|
||||
955B7A0E257D098C0091B1F9 /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 955B7A0D257D098C0091B1F9 /* SearchBar.swift */; };
|
||||
955B7A10257D10A70091B1F9 /* ViewControllerResolver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 955B7A0F257D10A70091B1F9 /* ViewControllerResolver.swift */; };
|
||||
955B984D25962C3800ED4831 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 955B984F25962C3800ED4831 /* Localizable.strings */; };
|
||||
953DDE7E2580312500C457CE /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 953DDE7D2580312500C457CE /* LaunchScreen.storyboard */; };
|
||||
95906F48257508660060F5D0 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 95906F47257506360060F5D0 /* Assets.xcassets */; };
|
||||
95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 95906F4C257510370060F5D0 /* GoogleService-Info.plist */; };
|
||||
95B4CE142588BC890090D5E8 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95B4CE132588BC890090D5E8 /* SettingsView.swift */; };
|
||||
@@ -63,7 +64,6 @@
|
||||
9512D3C0257AB4F60023C3A1 /* NewReminderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewReminderView.swift; sourceTree = "<group>"; };
|
||||
952C5954255C57650018C010 /* shared.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = shared.framework; path = "../../shared/build/xcode-frameworks/shared.framework"; sourceTree = "<group>"; };
|
||||
952DEDDE2576F8DC001DF85D /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
|
||||
953DDE7D2580312500C457CE /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
954AF8F52588A5C300666D0C /* CircularList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircularList.swift; sourceTree = "<group>"; };
|
||||
954AF8F72588A5CF00666D0C /* FavouritesList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavouritesList.swift; sourceTree = "<group>"; };
|
||||
954AF8F92588A5DD00666D0C /* RemindersList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemindersList.swift; sourceTree = "<group>"; };
|
||||
@@ -75,6 +75,9 @@
|
||||
9554BDB7257E498F00D8925B /* OnboardingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OnboardingView.swift; sourceTree = "<group>"; };
|
||||
955B7A0D257D098C0091B1F9 /* SearchBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchBar.swift; sourceTree = "<group>"; };
|
||||
955B7A0F257D10A70091B1F9 /* ViewControllerResolver.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerResolver.swift; sourceTree = "<group>"; };
|
||||
955B984E25962C3800ED4831 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
955B985025962C3B00ED4831 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
953DDE7D2580312500C457CE /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
95906F47257506360060F5D0 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
95906F4C257510370060F5D0 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
|
||||
959B531E25764726009AD895 /* circolapp.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = circolapp.entitlements; sourceTree = "<group>"; };
|
||||
@@ -195,6 +198,7 @@
|
||||
954E683C2574ED9E0034EBA8 /* UserDefaultsExtensions.swift */,
|
||||
95F6666D2590D712006DE74F /* URLUtils.swift */,
|
||||
953DDE7D2580312500C457CE /* LaunchScreen.storyboard */,
|
||||
955B984F25962C3800ED4831 /* Localizable.strings */,
|
||||
95CA31B8255C1EE000AC095B /* Info.plist */,
|
||||
95906F4C257510370060F5D0 /* GoogleService-Info.plist */,
|
||||
95906F47257506360060F5D0 /* Assets.xcassets */,
|
||||
@@ -257,6 +261,7 @@
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
it,
|
||||
);
|
||||
mainGroup = 95CA31A3255C1EDD00AC095B;
|
||||
productRefGroup = 95CA31AD255C1EDE00AC095B /* Products */;
|
||||
@@ -273,6 +278,7 @@
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
955B984D25962C3800ED4831 /* Localizable.strings in Resources */,
|
||||
95CA31B7255C1EE000AC095B /* Preview Assets.xcassets in Resources */,
|
||||
95906F4D257510370060F5D0 /* GoogleService-Info.plist in Resources */,
|
||||
95906F48257508660060F5D0 /* Assets.xcassets in Resources */,
|
||||
@@ -397,6 +403,18 @@
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
955B984F25962C3800ED4831 /* Localizable.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
955B984E25962C3800ED4831 /* en */,
|
||||
955B985025962C3B00ED4831 /* it */,
|
||||
);
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
95CA31B9255C1EE000AC095B /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
|
||||
@@ -21,10 +21,10 @@
|
||||
<rect key="frame" x="0.0" y="44" width="414" height="96"/>
|
||||
<directionalEdgeInsets key="directionalLayoutMargins" top="8" leading="16" bottom="8" trailing="16"/>
|
||||
<items>
|
||||
<navigationItem title="Circulars" largeTitleDisplayMode="always" id="xPj-vK-Hgf"/>
|
||||
<navigationItem largeTitleDisplayMode="always" id="xPj-vK-Hgf"/>
|
||||
</items>
|
||||
</navigationBar>
|
||||
<searchBar contentMode="redraw" searchBarStyle="minimal" placeholder="Search circulars" translatesAutoresizingMaskIntoConstraints="NO" id="4TW-7z-7jf">
|
||||
<searchBar contentMode="redraw" searchBarStyle="minimal" translatesAutoresizingMaskIntoConstraints="NO" id="4TW-7z-7jf">
|
||||
<rect key="frame" x="0.0" y="140" width="414" height="38"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="38" id="f97-Xy-3Qi"/>
|
||||
@@ -36,10 +36,10 @@
|
||||
<rect key="frame" x="0.0" y="779" width="414" height="83"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<items>
|
||||
<tabBarItem title="Circulars" image="folder.fill" catalog="system" id="WuE-0H-fGb"/>
|
||||
<tabBarItem title="Favourites" image="book.fill" catalog="system" id="e4w-uW-Q8O"/>
|
||||
<tabBarItem title="Reminders" image="alarm.fill" catalog="system" id="yC0-mi-bnG"/>
|
||||
<tabBarItem title="Settings" image="gear" catalog="system" id="xJj-xy-3IB"/>
|
||||
<tabBarItem title="" image="folder.fill" catalog="system" id="WuE-0H-fGb"/>
|
||||
<tabBarItem title="" image="book.fill" catalog="system" id="e4w-uW-Q8O"/>
|
||||
<tabBarItem title="" image="alarm.fill" catalog="system" id="yC0-mi-bnG"/>
|
||||
<tabBarItem title="" image="gear" catalog="system" id="xJj-xy-3IB"/>
|
||||
</items>
|
||||
</tabBar>
|
||||
</subviews>
|
||||
|
||||
@@ -63,7 +63,7 @@ class iOSRepository {
|
||||
|
||||
public static func indexToSpotlight(circular: Circular) {
|
||||
let attributeSet = CSSearchableItemAttributeSet(itemContentType: kUTTypeText as String)
|
||||
attributeSet.title = "Circular number \(circular.id)"
|
||||
attributeSet.title = NSString.localizedStringWithFormat(NSLocalizedString("Circular number %@", comment: "") as NSString, String(circular.id)) as String
|
||||
attributeSet.contentDescription = circular.name
|
||||
attributeSet.identifier = "\(circular.id)"
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ struct CircularView: View {
|
||||
var body: some View {
|
||||
VStack(alignment: .leading) {
|
||||
HStack {
|
||||
Text("Circular number " + String(circular.id))
|
||||
Text("Circular number \(String(circular.id))")
|
||||
.font(.headline)
|
||||
Text(circular.date)
|
||||
.font(.subheadline)
|
||||
|
||||
@@ -26,7 +26,7 @@ struct FavouritesList: View {
|
||||
List(favouritesViewModel.circulars, id: \.id) { circular in
|
||||
CircularView(circular: circular)
|
||||
}
|
||||
.navigationBarTitle(Text("Favourites"), displayMode: .large)
|
||||
.navigationBarTitle(Text("Bookmarks"), displayMode: .large)
|
||||
.addSearchBar(self.searchBar)
|
||||
.onReceive(searchBar.$text) {query in
|
||||
self.favouritesViewModel.search(query: query)
|
||||
|
||||
@@ -50,7 +50,7 @@ struct NewReminderView: View {
|
||||
let center = UNUserNotificationCenter.current()
|
||||
|
||||
let content = UNMutableNotificationContent()
|
||||
content.title = "Circular number " + String(circular.id)
|
||||
content.title = NSString.localizedStringWithFormat(NSLocalizedString("Circular number %@", comment: "") as NSString, String(circular.id)) as String
|
||||
content.body = circular.name
|
||||
content.sound = UNNotificationSound.default
|
||||
content.userInfo["reminder"] = true
|
||||
|
||||
@@ -36,7 +36,7 @@ struct PhoneView: View {
|
||||
}
|
||||
.tabItem {
|
||||
Image(systemName: "book.fill")
|
||||
Text("Favourites")
|
||||
Text("Bookmarks")
|
||||
}
|
||||
|
||||
NavigationView {
|
||||
|
||||
@@ -11,7 +11,7 @@ class SearchBar: NSObject, ObservableObject {
|
||||
self.searchController.obscuresBackgroundDuringPresentation = false
|
||||
self.searchController.searchResultsUpdater = self
|
||||
|
||||
self.searchController.searchBar.placeholder = placeholder
|
||||
self.searchController.searchBar.placeholder = NSLocalizedString(placeholder, comment: "")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -52,26 +52,19 @@ struct SettingsView: View {
|
||||
}) {
|
||||
Text("Privacy policy")
|
||||
}
|
||||
HStack {
|
||||
Text("Version name")
|
||||
Spacer()
|
||||
Text(
|
||||
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Error"
|
||||
)
|
||||
}
|
||||
HStack {
|
||||
Text("Version code")
|
||||
Spacer()
|
||||
Text(
|
||||
Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "Error"
|
||||
)
|
||||
}
|
||||
NavigationLink(destination:
|
||||
CarteView()
|
||||
.navigationBarTitle("Open source licenses", displayMode: .inline)
|
||||
) {
|
||||
Text("Open source licenses")
|
||||
}
|
||||
HStack {
|
||||
Text("Version")
|
||||
Spacer()
|
||||
Text(
|
||||
Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "Error"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationBarTitle("Settings", displayMode: .inline)
|
||||
|
||||
@@ -36,7 +36,7 @@ struct SidebarView: View {
|
||||
tag: Screen.favourites,
|
||||
selection: $state,
|
||||
label: {
|
||||
Label("Favourites", systemImage: "book")
|
||||
Label("Bookmarks", systemImage: "book")
|
||||
})
|
||||
NavigationLink(
|
||||
destination: RemindersList(),
|
||||
|
||||
47
ios/circolapp/circolapp/en.lproj/Localizable.strings
Normal file
47
ios/circolapp/circolapp/en.lproj/Localizable.strings
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Circolapp
|
||||
* Copyright (C) 2019-2020 Matteo Schiff
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
"All circulars" = "All circulars";
|
||||
"Circulars" = "Circulars";
|
||||
"Bookmarks" = "Bookmarks";
|
||||
"Reminders" = "Reminders";
|
||||
"Settings" = "Settings";
|
||||
|
||||
"School" = "School";
|
||||
"School website" = "School website";
|
||||
"Privacy policy" = "Privacy policy";
|
||||
"Error" = "Error";
|
||||
"Version" = "Version";
|
||||
"Open source licenses" = "Open source licenses";
|
||||
|
||||
"Search circulars" = "Search circulars";
|
||||
|
||||
"GENERAL" = "GENERAL";
|
||||
"SCHOOL" = "SCHOOL";
|
||||
"ABOUT" = "ABOUT";
|
||||
|
||||
"Done" = "Done";
|
||||
"Cancel" = "Cancel";
|
||||
|
||||
"Choose your school" = "Choose your school";
|
||||
"Welcome to CircolApp" = "Welcome to CircolApp";
|
||||
|
||||
"Pick a date for the reminder" = "Pick a date for the reminder";
|
||||
"New reminder" = "New reminder";
|
||||
|
||||
"Circular number %@" = "Circular number %@";
|
||||
47
ios/circolapp/circolapp/it.lproj/Localizable.strings
Normal file
47
ios/circolapp/circolapp/it.lproj/Localizable.strings
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Circolapp
|
||||
* Copyright (C) 2019-2020 Matteo Schiff
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
"All circulars" = "Tutte le circolari";
|
||||
"Circulars" = "Circolari";
|
||||
"Bookmarks" = "Segnalibri";
|
||||
"Reminders" = "Promemoria";
|
||||
"Settings" = "Impostazioni";
|
||||
|
||||
"School" = "Scuola";
|
||||
"School website" = "Sito della scuola";
|
||||
"Privacy policy" = "Privacy policy";
|
||||
"Error" = "Errore";
|
||||
"Version" = "Versione";
|
||||
"Open source licenses" = "Licenze open source";
|
||||
|
||||
"Search circulars" = "Cerca";
|
||||
|
||||
"GENERAL" = "GENERALE";
|
||||
"SCHOOL" = "SCUOLA";
|
||||
"ABOUT" = "INFORMAZIONI";
|
||||
|
||||
"Done" = "Fatto";
|
||||
"Cancel" = "Annulla";
|
||||
|
||||
"Choose your school" = "Scegli la tua scuola";
|
||||
"Welcome to CircolApp" = "Benvenuto su Circolapp";
|
||||
|
||||
"Pick a date for the reminder" = "Scegli una data per il promemoria";
|
||||
"New reminder" = "Nuovo promemoria";
|
||||
|
||||
"Circular number %@" = "Circolare numero %@";
|
||||
Reference in New Issue
Block a user