Closed artwist-polyakov closed 1 year ago
Переделать работу с днями недели в парадигме
import Foundation
let locales = [
"en_US", // Американская локаль
"ru_RU", // Русская локаль
"fr_FR", // Французская локаль
"es_ES", // Испанская локаль
"de_DE" // Немецкая локаль
]
var basicCalendar = Calendar.current
basicCalendar.locale = Locale(identifier: "en_US")
print(basicCalendar.firstWeekday)
for localeIdentifier in locales {
var calendar = Calendar.current
calendar.locale = Locale(identifier: localeIdentifier)
let translationToLocale = calendar.firstWeekday - basicCalendar.firstWeekday
print(translationToLocale)
let formatter = DateFormatter()
formatter.locale = calendar.locale
var weekdaySymbols = formatter.weekdaySymbols
print("Дни недели на \(localeIdentifier):")
var dictOfDays: [String:[Int]] = [:]
for (index, day) in weekdaySymbols!.enumerated() {
dictOfDays[day] = [((index+1-translationToLocale)+7) % 8, index+1]
}
var result: [String:Int] = [:]
for (key,value )in dictOfDays.sorted(by: { $0.value[0] < $1.value[0] }) {
print(key, value[1])
}
print("----")
}
Передалал планы в Int. Локализация управляется через shift, которую надо будет зафиксировать в строковых переменных для разных локалей https://github.com/artwist-polyakov/tracker-app/commit/ed6111cad510bfef3ef04f43f8321a444b4974b7
В комите https://github.com/artwist-polyakov/tracker-app/commit/ed6111cad510bfef3ef04f43f8321a444b4974b7 логика реализована
Следует придумать как можно избавить от русского языка и в качестве дней расписания использовать просто цифры от 1 до 7 (самое сложное тут — локализация коротких написаний в зависимости от дней)