Просмотр исходного кода

Localize hardcoded UI strings, separators, and accessibility labels.

Wire up remaining .localized calls for splash progress, browser reload, paywall formatting, and VoiceOver strings across all 22 locales.

Co-authored-by: Cursor <cursoragent@cursor.com>
AhtashamShahzad1 1 месяц назад
Родитель
Сommit
c18ca722f7

+ 4 - 4
meetings_app/LaunchSplashView.swift

@@ -21,7 +21,7 @@ final class LaunchSplashView: NSView {
     private let loadingTrackView = NSView()
     private let loadingTrackView = NSView()
     private let loadingFillView = NSView()
     private let loadingFillView = NSView()
     private let statusLabel = NSTextField(labelWithString: "CONNECTING SERVICES".localized)
     private let statusLabel = NSTextField(labelWithString: "CONNECTING SERVICES".localized)
-    private let percentLabel = NSTextField(labelWithString: "0%")
+    private let percentLabel = NSTextField(labelWithString: "%d%%".localized(with: 0))
     private let taglineLabel = NSTextField(labelWithString: "Plan smart, achieve more".localized)
     private let taglineLabel = NSTextField(labelWithString: "Plan smart, achieve more".localized)
     private var loadingFillWidthConstraint: NSLayoutConstraint?
     private var loadingFillWidthConstraint: NSLayoutConstraint?
     private var textAnimationTimer: Timer?
     private var textAnimationTimer: Timer?
@@ -49,7 +49,7 @@ final class LaunchSplashView: NSView {
     func completeLoading(duration: TimeInterval = 0.22, completion: (() -> Void)? = nil) {
     func completeLoading(duration: TimeInterval = 0.22, completion: (() -> Void)? = nil) {
         stopAnimations()
         stopAnimations()
         progressValue = 100
         progressValue = 100
-        percentLabel.stringValue = "100%"
+        percentLabel.stringValue = "%d%%".localized(with: 100)
         statusLabel.stringValue = "READY".localized
         statusLabel.stringValue = "READY".localized
         updateLoadingFill(for: 100)
         updateLoadingFill(for: 100)
         layoutSubtreeIfNeeded()
         layoutSubtreeIfNeeded()
@@ -170,7 +170,7 @@ final class LaunchSplashView: NSView {
         textAnimationFrame = 0
         textAnimationFrame = 0
         progressValue = 0
         progressValue = 0
         updateLoadingFill(for: progressValue)
         updateLoadingFill(for: progressValue)
-        percentLabel.stringValue = "0%"
+        percentLabel.stringValue = "%d%%".localized(with: 0)
 
 
         textAnimationTimer = Timer.scheduledTimer(withTimeInterval: 0.42, repeats: true) { [weak self] _ in
         textAnimationTimer = Timer.scheduledTimer(withTimeInterval: 0.42, repeats: true) { [weak self] _ in
             self?.updateAnimatedText()
             self?.updateAnimatedText()
@@ -202,7 +202,7 @@ final class LaunchSplashView: NSView {
         let next = min(progressValue + 0.8, 100)
         let next = min(progressValue + 0.8, 100)
         progressValue = next
         progressValue = next
         updateLoadingFill(for: next)
         updateLoadingFill(for: next)
-        percentLabel.stringValue = "\(Int(next.rounded()))%"
+        percentLabel.stringValue = "%d%%".localized(with: Int(next.rounded()))
     }
     }
 
 
     private func updateLoadingFill(for percent: Double) {
     private func updateLoadingFill(for percent: Double) {

+ 8 - 8
meetings_app/ViewController.swift

@@ -2501,7 +2501,7 @@ private extension ViewController {
             }
             }
             let recurringText = "\(localizedDisplayPrice(product.displayPrice))/\(subscriptionUnitText(period.unit))"
             let recurringText = "\(localizedDisplayPrice(product.displayPrice))/\(subscriptionUnitText(period.unit))"
             if let trialText = freeTrialPackageText(for: product) {
             if let trialText = freeTrialPackageText(for: product) {
-                label.stringValue = "\(recurringText)  •  \(trialText)"
+                label.stringValue = "%@  •  %@".localized(with: recurringText, trialText)
             } else {
             } else {
                 label.stringValue = recurringText
                 label.stringValue = recurringText
             }
             }
@@ -5496,7 +5496,7 @@ private extension ViewController {
         refreshButton.layer?.borderWidth = 1
         refreshButton.layer?.borderWidth = 1
         refreshButton.setButtonType(.momentaryChange)
         refreshButton.setButtonType(.momentaryChange)
         refreshButton.contentTintColor = palette.textSecondary
         refreshButton.contentTintColor = palette.textSecondary
-        refreshButton.image = NSImage(systemSymbolName: "arrow.clockwise", accessibilityDescription: "Sync calendar")
+        refreshButton.image = NSImage(systemSymbolName: "arrow.clockwise", accessibilityDescription: "Sync calendar".localized)
         refreshButton.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 14, weight: .semibold)
         refreshButton.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 14, weight: .semibold)
         refreshButton.imagePosition = .imageOnly
         refreshButton.imagePosition = .imageOnly
         refreshButton.imageScaling = .scaleProportionallyDown
         refreshButton.imageScaling = .scaleProportionallyDown
@@ -7031,7 +7031,7 @@ private extension ViewController {
 
 
     private func makeScheduleRefreshButton(
     private func makeScheduleRefreshButton(
         action: Selector = #selector(scheduleReloadButtonPressed(_:)),
         action: Selector = #selector(scheduleReloadButtonPressed(_:)),
-        accessibilityDescription: String = "Refresh meetings"
+        accessibilityDescription: String = "Refresh meetings".localized
     ) -> NSButton {
     ) -> NSButton {
         let diameter: CGFloat = 30
         let diameter: CGFloat = 30
         let button = HoverButton(title: "", target: self, action: action)
         let button = HoverButton(title: "", target: self, action: action)
@@ -7291,7 +7291,7 @@ private extension ViewController {
         button.layer?.backgroundColor = palette.inputBackground.cgColor
         button.layer?.backgroundColor = palette.inputBackground.cgColor
         button.layer?.borderColor = palette.inputBorder.cgColor
         button.layer?.borderColor = palette.inputBorder.cgColor
         button.layer?.borderWidth = 1
         button.layer?.borderWidth = 1
-        button.image = NSImage(systemSymbolName: systemSymbol, accessibilityDescription: "Scroll meetings")
+        button.image = NSImage(systemSymbolName: systemSymbol, accessibilityDescription: "Scroll meetings".localized)
         button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 13, weight: .semibold)
         button.symbolConfiguration = NSImage.SymbolConfiguration(pointSize: 13, weight: .semibold)
         button.imagePosition = .imageOnly
         button.imagePosition = .imageOnly
         button.imageScaling = .scaleProportionallyDown
         button.imageScaling = .scaleProportionallyDown
@@ -9971,7 +9971,7 @@ private extension ViewController {
             return WidgetMeetingSnapshot(
             return WidgetMeetingSnapshot(
                 id: meeting.id,
                 id: meeting.id,
                 title: meeting.title,
                 title: meeting.title,
-                timeText: "\(formatter.string(from: meeting.startDate)) - \(endText)",
+                timeText: "%@ - %@".localized(with: formatter.string(from: meeting.startDate), endText),
                 joinLink: meeting.meetURL.absoluteString
                 joinLink: meeting.meetURL.absoluteString
             )
             )
         }
         }
@@ -10126,7 +10126,7 @@ private extension ViewController {
             scheduleGoogleAuthButtonWidthConstraint?.constant = scheduleGoogleSignedInAvatarSize
             scheduleGoogleAuthButtonWidthConstraint?.constant = scheduleGoogleSignedInAvatarSize
             button.layer?.cornerRadius = scheduleGoogleSignedInAvatarSize / 2
             button.layer?.cornerRadius = scheduleGoogleSignedInAvatarSize / 2
 
 
-            let symbol = NSImage(systemSymbolName: "person.crop.circle.fill", accessibilityDescription: "Profile")
+            let symbol = NSImage(systemSymbolName: "person.crop.circle.fill", accessibilityDescription: "Profile".localized)
             if let symbol {
             if let symbol {
                 let sized = resizedImage(symbol, to: NSSize(width: scheduleGoogleSignedInAvatarSize, height: scheduleGoogleSignedInAvatarSize))
                 let sized = resizedImage(symbol, to: NSSize(width: scheduleGoogleSignedInAvatarSize, height: scheduleGoogleSignedInAvatarSize))
                 button.image = sized
                 button.image = sized
@@ -10684,12 +10684,12 @@ private final class InAppBrowserContainerViewController: NSViewController, WKNav
                 reloadStopButton.title = "Stop".localized
                 reloadStopButton.title = "Stop".localized
             }
             }
         } else {
         } else {
-            if #available(macOS 11.0, *), let img = NSImage(systemSymbolName: "arrow.clockwise", accessibilityDescription: "Reload") {
+            if #available(macOS 11.0, *), let img = NSImage(systemSymbolName: "arrow.clockwise", accessibilityDescription: "Reload".localized) {
                 reloadStopButton.image = img
                 reloadStopButton.image = img
                 reloadStopButton.imagePosition = .imageOnly
                 reloadStopButton.imagePosition = .imageOnly
                 reloadStopButton.title = ""
                 reloadStopButton.title = ""
             } else {
             } else {
-                reloadStopButton.title = "Reload"
+                reloadStopButton.title = "Reload".localized
             }
             }
         }
         }
         syncProgressFromWebView()
         syncProgressFromWebView()

+ 5 - 0
meetings_app/ar.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "جاري توصيل الخدمات";
 "CONNECTING SERVICES" = "جاري توصيل الخدمات";
 "READY" = "جاهز";
 "READY" = "جاهز";
 "Plan smart, achieve more" = "خطط بذكاء، حقق المزيد";
 "Plan smart, achieve more" = "خطط بذكاء، حقق المزيد";
+"%d%%" = "%d%%";
 
 
 /* MARK: - الودجات */
 /* MARK: - الودجات */
 "Add Widget to Desktop" = "إضافة ودجة إلى سطح المكتب";
 "Add Widget to Desktop" = "إضافة ودجة إلى سطح المكتب";
@@ -416,6 +417,10 @@
 "Back" = "رجوع";
 "Back" = "رجوع";
 "Forward" = "تقدم";
 "Forward" = "تقدم";
 "Reload" = "إعادة تحميل";
 "Reload" = "إعادة تحميل";
+"Profile" = "الملف الشخصي";
+"Scroll meetings" = "تمرير الاجتماعات";
+"Refresh meetings" = "تحديث الاجتماعات";
+"Sync calendar" = "مزامنة التقويم";
 
 
 /* MARK: - تسميات التقويم والجدولة */
 /* MARK: - تسميات التقويم والجدولة */
 "Google Calendar" = "تقويم جوجل";
 "Google Calendar" = "تقويم جوجل";

+ 5 - 0
meetings_app/de.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "DIENSTE WERDEN VERBUNDEN";
 "CONNECTING SERVICES" = "DIENSTE WERDEN VERBUNDEN";
 "READY" = "BEREIT";
 "READY" = "BEREIT";
 "Plan smart, achieve more" = "Intelligent planen, mehr erreichen";
 "Plan smart, achieve more" = "Intelligent planen, mehr erreichen";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Widget zum Desktop hinzufügen";
 "Add Widget to Desktop" = "Widget zum Desktop hinzufügen";
@@ -416,6 +417,10 @@
 "Back" = "Zurück";
 "Back" = "Zurück";
 "Forward" = "Vor";
 "Forward" = "Vor";
 "Reload" = "Neu laden";
 "Reload" = "Neu laden";
+"Profile" = "Profil";
+"Scroll meetings" = "Besprechungen scrollen";
+"Refresh meetings" = "Besprechungen aktualisieren";
+"Sync calendar" = "Kalender synchronisieren";
 
 
 /* MARK: - Planungs- und Kalenderbezeichnungen */
 /* MARK: - Planungs- und Kalenderbezeichnungen */
 "Google Calendar" = "Google Kalender";
 "Google Calendar" = "Google Kalender";

+ 5 - 0
meetings_app/el.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "ΣΥΝΔΕΣΗ ΥΠΗΡΕΣΙΩΝ";
 "CONNECTING SERVICES" = "ΣΥΝΔΕΣΗ ΥΠΗΡΕΣΙΩΝ";
 "READY" = "ΕΤΟΙΜΟ";
 "READY" = "ΕΤΟΙΜΟ";
 "Plan smart, achieve more" = "Έξυπνος σχεδιασμός, περισσότερα επιτεύγματα";
 "Plan smart, achieve more" = "Έξυπνος σχεδιασμός, περισσότερα επιτεύγματα";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Προσθήκη widget στην επιφάνεια εργασίας";
 "Add Widget to Desktop" = "Προσθήκη widget στην επιφάνεια εργασίας";
@@ -416,6 +417,10 @@
 "Back" = "Πίσω";
 "Back" = "Πίσω";
 "Forward" = "Μπροστά";
 "Forward" = "Μπροστά";
 "Reload" = "Ανανέωση";
 "Reload" = "Ανανέωση";
+"Profile" = "Προφίλ";
+"Scroll meetings" = "Κύλιση συσκέψεων";
+"Refresh meetings" = "Ανανέωση συσκέψεων";
+"Sync calendar" = "Συγχρονισμός ημερολογίου";
 
 
 /* MARK: - Ετικέτες προγραμματισμού και ημερολογίου */
 /* MARK: - Ετικέτες προγραμματισμού και ημερολογίου */
 "Google Calendar" = "Ημερολόγιο Γκουγκλ";
 "Google Calendar" = "Ημερολόγιο Γκουγκλ";

+ 5 - 0
meetings_app/en.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "CONNECTING SERVICES";
 "CONNECTING SERVICES" = "CONNECTING SERVICES";
 "READY" = "READY";
 "READY" = "READY";
 "Plan smart, achieve more" = "Plan smart, achieve more";
 "Plan smart, achieve more" = "Plan smart, achieve more";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Add Widget to Desktop";
 "Add Widget to Desktop" = "Add Widget to Desktop";
@@ -415,6 +416,10 @@
 "Back" = "Back";
 "Back" = "Back";
 "Forward" = "Forward";
 "Forward" = "Forward";
 "Reload" = "Reload";
 "Reload" = "Reload";
+"Sync calendar" = "Sync calendar";
+"Refresh meetings" = "Refresh meetings";
+"Scroll meetings" = "Scroll meetings";
+"Profile" = "Profile";
 
 
 /* MARK: - Schedule & calendar labels */
 /* MARK: - Schedule & calendar labels */
 "Google Calendar" = "Google Calendar";
 "Google Calendar" = "Google Calendar";

+ 5 - 0
meetings_app/es-ES.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "CONECTANDO SERVICIOS";
 "CONNECTING SERVICES" = "CONECTANDO SERVICIOS";
 "READY" = "LISTO";
 "READY" = "LISTO";
 "Plan smart, achieve more" = "Planifica con inteligencia, consigue más";
 "Plan smart, achieve more" = "Planifica con inteligencia, consigue más";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Añadir widget al escritorio";
 "Add Widget to Desktop" = "Añadir widget al escritorio";
@@ -416,6 +417,10 @@
 "Back" = "Atrás";
 "Back" = "Atrás";
 "Forward" = "Adelante";
 "Forward" = "Adelante";
 "Reload" = "Recargar";
 "Reload" = "Recargar";
+"Profile" = "Perfil";
+"Scroll meetings" = "Desplazar reuniones";
+"Refresh meetings" = "Actualizar reuniones";
+"Sync calendar" = "Sincronizar calendario";
 
 
 /* MARK: - Etiquetas de calendario y programación */
 /* MARK: - Etiquetas de calendario y programación */
 "Google Calendar" = "Calendario de Google";
 "Google Calendar" = "Calendario de Google";

+ 5 - 0
meetings_app/es-MX.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "CONECTANDO SERVICIOS";
 "CONNECTING SERVICES" = "CONECTANDO SERVICIOS";
 "READY" = "LISTO";
 "READY" = "LISTO";
 "Plan smart, achieve more" = "Planifica inteligentemente, logra más";
 "Plan smart, achieve more" = "Planifica inteligentemente, logra más";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Agregar widget al escritorio";
 "Add Widget to Desktop" = "Agregar widget al escritorio";
@@ -416,6 +417,10 @@
 "Back" = "Atrás";
 "Back" = "Atrás";
 "Forward" = "Adelante";
 "Forward" = "Adelante";
 "Reload" = "Recargar";
 "Reload" = "Recargar";
+"Profile" = "Perfil";
+"Scroll meetings" = "Desplazar reuniones";
+"Refresh meetings" = "Actualizar reuniones";
+"Sync calendar" = "Sincronizar calendario";
 
 
 /* MARK: - Etiquetas de calendario y agendamiento */
 /* MARK: - Etiquetas de calendario y agendamiento */
 "Google Calendar" = "Calendario de Google";
 "Google Calendar" = "Calendario de Google";

+ 5 - 0
meetings_app/fi.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "YHDISTETÄÄN PALVELUITA";
 "CONNECTING SERVICES" = "YHDISTETÄÄN PALVELUITA";
 "READY" = "VALMIS";
 "READY" = "VALMIS";
 "Plan smart, achieve more" = "Suunnittele fiksusti, saavuta enemmän";
 "Plan smart, achieve more" = "Suunnittele fiksusti, saavuta enemmän";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgetit */
 /* MARK: - Widgetit */
 "Add Widget to Desktop" = "Lisää widget työpöydälle";
 "Add Widget to Desktop" = "Lisää widget työpöydälle";
@@ -416,6 +417,10 @@
 "Back" = "Takaisin";
 "Back" = "Takaisin";
 "Forward" = "Eteenpäin";
 "Forward" = "Eteenpäin";
 "Reload" = "Päivitä";
 "Reload" = "Päivitä";
+"Profile" = "Profiili";
+"Scroll meetings" = "Vieritä kokouksia";
+"Refresh meetings" = "Päivitä kokoukset";
+"Sync calendar" = "Synkronoi kalenteri";
 
 
 /* MARK: - Kalenteri- ja aikataulutusmerkinnät */
 /* MARK: - Kalenteri- ja aikataulutusmerkinnät */
 "Google Calendar" = "Google Kalenteri";
 "Google Calendar" = "Google Kalenteri";

+ 5 - 0
meetings_app/fr-CA.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "CONNEXION DES SERVICES";
 "CONNECTING SERVICES" = "CONNEXION DES SERVICES";
 "READY" = "PRÊT";
 "READY" = "PRÊT";
 "Plan smart, achieve more" = "Planifiez intelligemment, accomplissez plus";
 "Plan smart, achieve more" = "Planifiez intelligemment, accomplissez plus";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Ajouter un widget au bureau";
 "Add Widget to Desktop" = "Ajouter un widget au bureau";
@@ -416,6 +417,10 @@
 "Back" = "Précédent";
 "Back" = "Précédent";
 "Forward" = "Suivant";
 "Forward" = "Suivant";
 "Reload" = "Recharger";
 "Reload" = "Recharger";
+"Profile" = "Profil";
+"Scroll meetings" = "Faire défiler les réunions";
+"Refresh meetings" = "Actualiser les réunions";
+"Sync calendar" = "Synchroniser l'agenda";
 
 
 /* MARK: - Libellés du calendrier et de la planification */
 /* MARK: - Libellés du calendrier et de la planification */
 "Google Calendar" = "Agenda Google";
 "Google Calendar" = "Agenda Google";

+ 5 - 0
meetings_app/fr.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "CONNEXION DES SERVICES";
 "CONNECTING SERVICES" = "CONNEXION DES SERVICES";
 "READY" = "PRÊT";
 "READY" = "PRÊT";
 "Plan smart, achieve more" = "Planifiez intelligemment, accomplissez plus";
 "Plan smart, achieve more" = "Planifiez intelligemment, accomplissez plus";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Ajouter un widget au bureau";
 "Add Widget to Desktop" = "Ajouter un widget au bureau";
@@ -416,6 +417,10 @@
 "Back" = "Précédent";
 "Back" = "Précédent";
 "Forward" = "Suivant";
 "Forward" = "Suivant";
 "Reload" = "Recharger";
 "Reload" = "Recharger";
+"Profile" = "Profil";
+"Scroll meetings" = "Faire défiler les réunions";
+"Refresh meetings" = "Actualiser les réunions";
+"Sync calendar" = "Synchroniser l'agenda";
 
 
 /* MARK: - Libellés du calendrier et de la programmation */
 /* MARK: - Libellés du calendrier et de la programmation */
 "Google Calendar" = "Agenda Google";
 "Google Calendar" = "Agenda Google";

+ 5 - 0
meetings_app/he.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "מתחבר לשירותים";
 "CONNECTING SERVICES" = "מתחבר לשירותים";
 "READY" = "מוכן";
 "READY" = "מוכן";
 "Plan smart, achieve more" = "תכנן בחוכמה, השג יותר";
 "Plan smart, achieve more" = "תכנן בחוכמה, השג יותר";
+"%d%%" = "%d%%";
 
 
 /* MARK: - ווידג'טים */
 /* MARK: - ווידג'טים */
 "Add Widget to Desktop" = "הוסף ווידג'ט לשולחן העבודה";
 "Add Widget to Desktop" = "הוסף ווידג'ט לשולחן העבודה";
@@ -416,6 +417,10 @@
 "Back" = "אחורה";
 "Back" = "אחורה";
 "Forward" = "קדימה";
 "Forward" = "קדימה";
 "Reload" = "רענן";
 "Reload" = "רענן";
+"Profile" = "פרופיל";
+"Scroll meetings" = "גלול פגישות";
+"Refresh meetings" = "רענן פגישות";
+"Sync calendar" = "סנכרן יומן";
 
 
 /* MARK: - תוויות יומן ותזמון */
 /* MARK: - תוויות יומן ותזמון */
 "Google Calendar" = "יומן גוגל";
 "Google Calendar" = "יומן גוגל";

+ 5 - 0
meetings_app/it.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "COLLEGAMENTO SERVIZI";
 "CONNECTING SERVICES" = "COLLEGAMENTO SERVIZI";
 "READY" = "PRONTO";
 "READY" = "PRONTO";
 "Plan smart, achieve more" = "Pianifica in modo intelligente, ottieni di più";
 "Plan smart, achieve more" = "Pianifica in modo intelligente, ottieni di più";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widget */
 /* MARK: - Widget */
 "Add Widget to Desktop" = "Aggiungi widget al desktop";
 "Add Widget to Desktop" = "Aggiungi widget al desktop";
@@ -416,6 +417,10 @@
 "Back" = "Indietro";
 "Back" = "Indietro";
 "Forward" = "Avanti";
 "Forward" = "Avanti";
 "Reload" = "Ricarica";
 "Reload" = "Ricarica";
+"Profile" = "Profilo";
+"Scroll meetings" = "Scorri riunioni";
+"Refresh meetings" = "Aggiorna riunioni";
+"Sync calendar" = "Sincronizza calendario";
 
 
 /* MARK: - Etichette calendario e pianificazione */
 /* MARK: - Etichette calendario e pianificazione */
 "Google Calendar" = "Calendario di Google";
 "Google Calendar" = "Calendario di Google";

+ 5 - 0
meetings_app/ko.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "서비스 연결 중";
 "CONNECTING SERVICES" = "서비스 연결 중";
 "READY" = "준비됨";
 "READY" = "준비됨";
 "Plan smart, achieve more" = "스마트하게 계획하고 더 많이 달성하세요";
 "Plan smart, achieve more" = "스마트하게 계획하고 더 많이 달성하세요";
+"%d%%" = "%d%%";
 
 
 /* MARK: - 위젯 */
 /* MARK: - 위젯 */
 "Add Widget to Desktop" = "데스크탑에 위젯 추가";
 "Add Widget to Desktop" = "데스크탑에 위젯 추가";
@@ -416,6 +417,10 @@
 "Back" = "뒤로";
 "Back" = "뒤로";
 "Forward" = "앞으로";
 "Forward" = "앞으로";
 "Reload" = "새로고침";
 "Reload" = "새로고침";
+"Profile" = "프로필";
+"Scroll meetings" = "회의 스크롤";
+"Refresh meetings" = "회의 새로고침";
+"Sync calendar" = "캘린더 동기화";
 
 
 /* MARK: - 일정 및 달력 레이블 */
 /* MARK: - 일정 및 달력 레이블 */
 "Google Calendar" = "구글 달력";
 "Google Calendar" = "구글 달력";

+ 5 - 0
meetings_app/nb.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "KOBLER TIL TJENESTER";
 "CONNECTING SERVICES" = "KOBLER TIL TJENESTER";
 "READY" = "KLAR";
 "READY" = "KLAR";
 "Plan smart, achieve more" = "Planlegg smart, oppnå mer";
 "Plan smart, achieve more" = "Planlegg smart, oppnå mer";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgeter */
 /* MARK: - Widgeter */
 "Add Widget to Desktop" = "Legg til widget på skrivebordet";
 "Add Widget to Desktop" = "Legg til widget på skrivebordet";
@@ -416,6 +417,10 @@
 "Back" = "Tilbake";
 "Back" = "Tilbake";
 "Forward" = "Frem";
 "Forward" = "Frem";
 "Reload" = "Last inn på nytt";
 "Reload" = "Last inn på nytt";
+"Profile" = "Profil";
+"Scroll meetings" = "Bla i møter";
+"Refresh meetings" = "Oppdater møter";
+"Sync calendar" = "Synkroniser kalender";
 
 
 /* MARK: - Kalender- og planleggingsetiketter */
 /* MARK: - Kalender- og planleggingsetiketter */
 "Google Calendar" = "Googles kalender";
 "Google Calendar" = "Googles kalender";

+ 5 - 0
meetings_app/nl.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "DIENSTEN VERBINDEN";
 "CONNECTING SERVICES" = "DIENSTEN VERBINDEN";
 "READY" = "GEREED";
 "READY" = "GEREED";
 "Plan smart, achieve more" = "Slim plannen, meer bereiken";
 "Plan smart, achieve more" = "Slim plannen, meer bereiken";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Widget aan bureaublad toevoegen";
 "Add Widget to Desktop" = "Widget aan bureaublad toevoegen";
@@ -416,6 +417,10 @@
 "Back" = "Terug";
 "Back" = "Terug";
 "Forward" = "Vooruit";
 "Forward" = "Vooruit";
 "Reload" = "Vernieuwen";
 "Reload" = "Vernieuwen";
+"Profile" = "Profiel";
+"Scroll meetings" = "Vergaderingen scrollen";
+"Refresh meetings" = "Vergaderingen vernieuwen";
+"Sync calendar" = "Agenda synchroniseren";
 
 
 /* MARK: - Agenda- en planningslabels */
 /* MARK: - Agenda- en planningslabels */
 "Google Calendar" = "Google Agenda";
 "Google Calendar" = "Google Agenda";

+ 5 - 0
meetings_app/pl.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "ŁĄCZENIE USŁUG";
 "CONNECTING SERVICES" = "ŁĄCZENIE USŁUG";
 "READY" = "GOTOWE";
 "READY" = "GOTOWE";
 "Plan smart, achieve more" = "Planuj mądrze, osiągaj więcej";
 "Plan smart, achieve more" = "Planuj mądrze, osiągaj więcej";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widżety */
 /* MARK: - Widżety */
 "Add Widget to Desktop" = "Dodaj widżet na pulpit";
 "Add Widget to Desktop" = "Dodaj widżet na pulpit";
@@ -416,6 +417,10 @@
 "Back" = "Wstecz";
 "Back" = "Wstecz";
 "Forward" = "Do przodu";
 "Forward" = "Do przodu";
 "Reload" = "Odśwież";
 "Reload" = "Odśwież";
+"Profile" = "Profil";
+"Scroll meetings" = "Przewiń spotkania";
+"Refresh meetings" = "Odśwież spotkania";
+"Sync calendar" = "Synchronizuj kalendarz";
 
 
 /* MARK: - Etykiety kalendarza i harmonogramu */
 /* MARK: - Etykiety kalendarza i harmonogramu */
 "Google Calendar" = "Kalendarz Googla";
 "Google Calendar" = "Kalendarz Googla";

+ 5 - 0
meetings_app/pt-BR.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "CONECTANDO SERVIÇOS";
 "CONNECTING SERVICES" = "CONECTANDO SERVIÇOS";
 "READY" = "PRONTO";
 "READY" = "PRONTO";
 "Plan smart, achieve more" = "Planeje de forma inteligente, alcance mais";
 "Plan smart, achieve more" = "Planeje de forma inteligente, alcance mais";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widgets */
 /* MARK: - Widgets */
 "Add Widget to Desktop" = "Adicionar widget à área de trabalho";
 "Add Widget to Desktop" = "Adicionar widget à área de trabalho";
@@ -416,6 +417,10 @@
 "Back" = "Voltar";
 "Back" = "Voltar";
 "Forward" = "Avançar";
 "Forward" = "Avançar";
 "Reload" = "Recarregar";
 "Reload" = "Recarregar";
+"Profile" = "Perfil";
+"Scroll meetings" = "Rolar reuniões";
+"Refresh meetings" = "Atualizar reuniões";
+"Sync calendar" = "Sincronizar calendário";
 
 
 /* MARK: - Schedule & calendar labels */
 /* MARK: - Schedule & calendar labels */
 "Google Calendar" = "Calendário do Google";
 "Google Calendar" = "Calendário do Google";

+ 5 - 0
meetings_app/ru.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "ПОДКЛЮЧЕНИЕ СЕРВИСОВ";
 "CONNECTING SERVICES" = "ПОДКЛЮЧЕНИЕ СЕРВИСОВ";
 "READY" = "ГОТОВО";
 "READY" = "ГОТОВО";
 "Plan smart, achieve more" = "Планируйте с умом, достигайте большего";
 "Plan smart, achieve more" = "Планируйте с умом, достигайте большего";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Виджеты */
 /* MARK: - Виджеты */
 "Add Widget to Desktop" = "Добавить виджет на рабочий стол";
 "Add Widget to Desktop" = "Добавить виджет на рабочий стол";
@@ -416,6 +417,10 @@
 "Back" = "Назад";
 "Back" = "Назад";
 "Forward" = "Вперед";
 "Forward" = "Вперед";
 "Reload" = "Перезагрузить";
 "Reload" = "Перезагрузить";
+"Profile" = "Профиль";
+"Scroll meetings" = "Прокрутить встречи";
+"Refresh meetings" = "Обновить встречи";
+"Sync calendar" = "Синхронизировать календарь";
 
 
 /* MARK: - Метки расписания и календаря */
 /* MARK: - Метки расписания и календаря */
 "Google Calendar" = "Календарь Гугл";
 "Google Calendar" = "Календарь Гугл";

+ 5 - 0
meetings_app/sv.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "ANSLUTER TJÄNSTER";
 "CONNECTING SERVICES" = "ANSLUTER TJÄNSTER";
 "READY" = "REDO";
 "READY" = "REDO";
 "Plan smart, achieve more" = "Planera smart, uppnå mer";
 "Plan smart, achieve more" = "Planera smart, uppnå mer";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Widgetar */
 /* MARK: - Widgetar */
 "Add Widget to Desktop" = "Lägg till widget på skrivbordet";
 "Add Widget to Desktop" = "Lägg till widget på skrivbordet";
@@ -416,6 +417,10 @@
 "Back" = "Tillbaka";
 "Back" = "Tillbaka";
 "Forward" = "Framåt";
 "Forward" = "Framåt";
 "Reload" = "Ladda om";
 "Reload" = "Ladda om";
+"Profile" = "Profil";
+"Scroll meetings" = "Scrolla möten";
+"Refresh meetings" = "Uppdatera möten";
+"Sync calendar" = "Synkronisera kalender";
 
 
 /* MARK: - Etiketter för schemaläggning och kalender */
 /* MARK: - Etiketter för schemaläggning och kalender */
 "Google Calendar" = "Google-kalender";
 "Google Calendar" = "Google-kalender";

+ 5 - 0
meetings_app/uk.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "ПІДКЛЮЧЕННЯ СЕРВІСІВ";
 "CONNECTING SERVICES" = "ПІДКЛЮЧЕННЯ СЕРВІСІВ";
 "READY" = "ГОТОВО";
 "READY" = "ГОТОВО";
 "Plan smart, achieve more" = "Плануй розумно, досягай більшого";
 "Plan smart, achieve more" = "Плануй розумно, досягай більшого";
+"%d%%" = "%d %%";
 
 
 /* MARK: - Віджети */
 /* MARK: - Віджети */
 "Add Widget to Desktop" = "Додати віджет на робочий стіл";
 "Add Widget to Desktop" = "Додати віджет на робочий стіл";
@@ -416,6 +417,10 @@
 "Back" = "Назад";
 "Back" = "Назад";
 "Forward" = "Вперед";
 "Forward" = "Вперед";
 "Reload" = "Перезавантажити";
 "Reload" = "Перезавантажити";
+"Profile" = "Профіль";
+"Scroll meetings" = "Прокрутити зустрічі";
+"Refresh meetings" = "Оновити зустрічі";
+"Sync calendar" = "Синхронізувати календар";
 
 
 /* MARK: - Мітки календаря та планування */
 /* MARK: - Мітки календаря та планування */
 "Google Calendar" = "Календар Гугл";
 "Google Calendar" = "Календар Гугл";

+ 6 - 1
meetings_app/vi.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "ĐANG KẾT NỐI DỊCH VỤ";
 "CONNECTING SERVICES" = "ĐANG KẾT NỐI DỊCH VỤ";
 "READY" = "SẴN SÀNG";
 "READY" = "SẴN SÀNG";
 "Plan smart, achieve more" = "Lên kế hoạch thông minh, đạt được nhiều hơn";
 "Plan smart, achieve more" = "Lên kế hoạch thông minh, đạt được nhiều hơn";
+"%d%%" = "%d%%";
 
 
 /* MARK: - Widget */
 /* MARK: - Widget */
 "Add Widget to Desktop" = "Thêm widget vào màn hình nền";
 "Add Widget to Desktop" = "Thêm widget vào màn hình nền";
@@ -416,9 +417,13 @@
 "Back" = "Quay lại";
 "Back" = "Quay lại";
 "Forward" = "Tiến";
 "Forward" = "Tiến";
 "Reload" = "Tải lại";
 "Reload" = "Tải lại";
+"Profile" = "Hồ sơ";
+"Scroll meetings" = "Cuộn danh sách cuộc họp";
+"Refresh meetings" = "Làm mới cuộc họp";
+"Sync calendar" = "Đồng bộ lịch";
 
 
 /* MARK: - Nhãn lịch và lên lịch */
 /* MARK: - Nhãn lịch và lên lịch */
-"Google Calendar" = "Google Calendar";
+"Google Calendar" = "Lịch Google";
 "Untitled meeting" = "Cuộc họp không tiêu đề";
 "Untitled meeting" = "Cuộc họp không tiêu đề";
 "Created event missing start/end." = "Sự kiện đã tạo thiếu thời gian bắt đầu/kết thúc.";
 "Created event missing start/end." = "Sự kiện đã tạo thiếu thời gian bắt đầu/kết thúc.";
 "Created event missing Meet/HTML link." = "Sự kiện đã tạo thiếu liên kết Google Meet/HTML.";
 "Created event missing Meet/HTML link." = "Sự kiện đã tạo thiếu liên kết Google Meet/HTML.";

+ 5 - 0
meetings_app/zh-Hans.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "正在连接服务";
 "CONNECTING SERVICES" = "正在连接服务";
 "READY" = "就绪";
 "READY" = "就绪";
 "Plan smart, achieve more" = "智能规划,成就更多";
 "Plan smart, achieve more" = "智能规划,成就更多";
+"%d%%" = "%d%%";
 
 
 /* MARK: - 小组件 */
 /* MARK: - 小组件 */
 "Add Widget to Desktop" = "添加小组件到桌面";
 "Add Widget to Desktop" = "添加小组件到桌面";
@@ -416,6 +417,10 @@
 "Back" = "返回";
 "Back" = "返回";
 "Forward" = "前进";
 "Forward" = "前进";
 "Reload" = "重新加载";
 "Reload" = "重新加载";
+"Profile" = "个人资料";
+"Scroll meetings" = "滚动会议列表";
+"Refresh meetings" = "刷新会议";
+"Sync calendar" = "同步日历";
 
 
 /* MARK: - 日程安排与日历标签 */
 /* MARK: - 日程安排与日历标签 */
 "Google Calendar" = "谷歌日历";
 "Google Calendar" = "谷歌日历";

+ 5 - 0
meetings_app/zh-Hant.lproj/Localizable.strings

@@ -46,6 +46,7 @@
 "CONNECTING SERVICES" = "正在連接服務";
 "CONNECTING SERVICES" = "正在連接服務";
 "READY" = "就緒";
 "READY" = "就緒";
 "Plan smart, achieve more" = "智慧規劃,成就更多";
 "Plan smart, achieve more" = "智慧規劃,成就更多";
+"%d%%" = "%d%%";
 
 
 /* MARK: - 小工具 */
 /* MARK: - 小工具 */
 "Add Widget to Desktop" = "加入小工具到桌面";
 "Add Widget to Desktop" = "加入小工具到桌面";
@@ -416,6 +417,10 @@
 "Back" = "返回";
 "Back" = "返回";
 "Forward" = "前進";
 "Forward" = "前進";
 "Reload" = "重新整理";
 "Reload" = "重新整理";
+"Profile" = "個人檔案";
+"Scroll meetings" = "捲動會議列表";
+"Refresh meetings" = "重新整理會議";
+"Sync calendar" = "同步日曆";
 
 
 /* MARK: - 日程安排與日曆標籤 */
 /* MARK: - 日程安排與日曆標籤 */
 "Google Calendar" = "谷歌日曆";
 "Google Calendar" = "谷歌日曆";