Skip to content

Commit

Permalink
Replace old translator json with crowdin link (#4395)
Browse files Browse the repository at this point in the history
* Replace old translator json with crowdin link

Enlarge the main view for the about window to fit the license, fix #4300

* Fix typo
  • Loading branch information
uiryuu committed May 5, 2023
1 parent d1fec00 commit 7bfd560
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 572 deletions.
8 changes: 0 additions & 8 deletions iina.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -299,8 +299,6 @@
E3CB258F222799B800A62C47 /* MPVHook.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3CB258E222799B800A62C47 /* MPVHook.swift */; };
E3CB75BB1FD998F5004DB10A /* Regex.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84A886F21E26CA24008755BB /* Regex.swift */; };
E3CB75BD1FDACB82004DB10A /* SavedFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3CB75BC1FDACB82004DB10A /* SavedFilter.swift */; };
E3DBD239218B057A00B3AFBF /* Translators.json in Resources */ = {isa = PBXBuildFile; fileRef = E3DBD238218B057A00B3AFBF /* Translators.json */; };
E3DBD23B218B199700B3AFBF /* Translators.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3DBD23A218B199700B3AFBF /* Translators.swift */; };
E3DBD23E218EF4F100B3AFBF /* AboutWindowContributorAvatarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3DBD23C218EF4F100B3AFBF /* AboutWindowContributorAvatarItem.swift */; };
E3DBD23F218EF4F100B3AFBF /* AboutWindowContributorAvatarItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = E3DBD23D218EF4F100B3AFBF /* AboutWindowContributorAvatarItem.xib */; };
E3DE8DCD1FD8166A0021921C /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3DE8DCC1FD8166A0021921C /* main.swift */; };
Expand Down Expand Up @@ -1662,8 +1660,6 @@
E3CB258A2222885E00A62C47 /* JavascriptAPIOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JavascriptAPIOverlay.swift; sourceTree = "<group>"; };
E3CB258E222799B800A62C47 /* MPVHook.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MPVHook.swift; sourceTree = "<group>"; };
E3CB75BC1FDACB82004DB10A /* SavedFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SavedFilter.swift; sourceTree = "<group>"; };
E3DBD238218B057A00B3AFBF /* Translators.json */ = {isa = PBXFileReference; indentWidth = 4; lastKnownFileType = text.json; path = Translators.json; sourceTree = "<group>"; tabWidth = 4; };
E3DBD23A218B199700B3AFBF /* Translators.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Translators.swift; sourceTree = "<group>"; };
E3DBD23C218EF4F100B3AFBF /* AboutWindowContributorAvatarItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutWindowContributorAvatarItem.swift; sourceTree = "<group>"; };
E3DBD23D218EF4F100B3AFBF /* AboutWindowContributorAvatarItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AboutWindowContributorAvatarItem.xib; sourceTree = "<group>"; };
E3DE8DCA1FD8166A0021921C /* iina-cli */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "iina-cli"; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -2010,8 +2006,6 @@
845AC09E1E1AE6C10080B614 /* Localizable.strings */,
84AF03D41E67492C003E3753 /* Contribution.rtf */,
8483FAFF1EDFF325000F55D6 /* Credits.rtf */,
E3DBD238218B057A00B3AFBF /* Translators.json */,
E3DBD23A218B199700B3AFBF /* Translators.swift */,
);
name = Assets;
sourceTree = "<group>";
Expand Down Expand Up @@ -2589,7 +2583,6 @@
84A0BA951D2F9E9600BC8DA1 /* MainMenu.xib in Resources */,
8400D5D81E1AB31B006785F5 /* AboutWindowController.xib in Resources */,
8400D5F31E1AB348006785F5 /* PrefSubViewController.xib in Resources */,
E3DBD239218B057A00B3AFBF /* Translators.json in Resources */,
84D0FB821F5E6A3800C6A6A7 /* FreeSelectingViewController.xib in Resources */,
8400D5E11E1AB32F006785F5 /* PrefUIViewController.xib in Resources */,
E338368A202651CF00ABC812 /* PrefOSCToolbarDraggingItemViewController.xib in Resources */,
Expand Down Expand Up @@ -2737,7 +2730,6 @@
E3CB75BD1FDACB82004DB10A /* SavedFilter.swift in Sources */,
E337D5E4241C12BE00B5729A /* PrefPluginPermissionListView.swift in Sources */,
E342832F20B7149800139865 /* Logger.swift in Sources */,
E3DBD23B218B199700B3AFBF /* Translators.swift in Sources */,
84F725561D4783EE000DEF1B /* VolumeSliderCell.swift in Sources */,
845040401E0ACADD0079C194 /* MPVNode.swift in Sources */,
84795C3A1E083EE30059A648 /* PrefControlViewController.swift in Sources */,
Expand Down
68 changes: 4 additions & 64 deletions iina/AboutWindowController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,10 @@ class AboutWindowController: NSWindowController {
@IBOutlet weak var creditsButton: AboutWindowButton!
@IBOutlet weak var tabView: NSTabView!
@IBOutlet weak var contributorsCollectionView: NSCollectionView!
@IBOutlet weak var contributorsCollectionViewHeightConstraint: NSLayoutConstraint!
@IBOutlet weak var contributorsFooterView: NSVisualEffectView!
@IBOutlet weak var contributorsFooterImage: NSImageView!
@IBOutlet weak var translatorsTableView: NSTableView!

private lazy var contributors = getContributors()
private lazy var translators = loadTraslators()

override func windowDidLoad() {
super.windowDidLoad()
Expand Down Expand Up @@ -114,9 +111,6 @@ class AboutWindowController: NSWindowController {
}

contributorsCollectionView.enclosingScrollView?.contentInsets.bottom = contributorsFooterView.frame.height * loc[colors.firstIndex(of: 0)! - 1]

translatorsTableView.dataSource = self
translatorsTableView.delegate = self
}

@IBAction func sectionBtnAction(_ sender: NSButton) {
Expand All @@ -130,6 +124,10 @@ class AboutWindowController: NSWindowController {
@IBAction func contributorsBtnAction(_ sender: Any) {
NSWorkspace.shared.open(URL(string: AppData.contributorsLink)!)
}

@IBAction func translatorsBtnAction(_ sender: Any) {
NSWorkspace.shared.open(URL(string: AppData.crowdinMembersLink)!)
}
}

extension AboutWindowController: NSCollectionViewDataSource {
Expand Down Expand Up @@ -157,9 +155,6 @@ extension AboutWindowController: NSCollectionViewDataSource {
let prevCount = self.contributors.count
guard let data = response.content,
let contributors = try? JSONDecoder().decode([Contributor].self, from: data) else {
DispatchQueue.main.async {
self.contributorsCollectionViewHeightConstraint.constant = 24
}
return
}
self.contributors.append(contentsOf: contributors)
Expand Down Expand Up @@ -190,61 +185,6 @@ fileprivate let identifierMap: [NSUserInterfaceItemIdentifier: NSUserInterfaceIt
.translatorColumn: .translatorCell
]

extension AboutWindowController: NSTableViewDataSource, NSTableViewDelegate {
func numberOfRows(in tableView: NSTableView) -> Int {
return translators.count
}

func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
return translators[at: row]
}

func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
guard
let translatorInfo = translators[at: row],
let tableColumn = tableColumn,
let identifier = identifierMap[tableColumn.identifier],
let view = tableView.makeView(withIdentifier: identifier, owner: self) as? NSTableCellView
else { return nil }
if identifier == .langCell {
view.textField!.stringValue = translatorInfo["lang"]!
} else {
view.textField!.setHTMLValue(translatorInfo["translator"]!)
}
return view
}

private func loadTraslators() -> [[String: String]] {
let locale = NSLocale.current
var result: [[String: String]] = []

let languages = Translator.all.keys.sorted()

for langCode in languages {
let translators = Translator.all[langCode]!
let splitted = langCode.split(separator: "-").map(String.init)
let baseLangCode = locale.localizedString(forLanguageCode: splitted[0]) ?? ""
let language: String
if splitted.count == 1 {
language = baseLangCode
} else {
let desc = locale.localizedString(forScriptCode: splitted[1]) ??
locale.localizedString(forRegionCode: splitted[1]) ?? ""
language = "\(baseLangCode) (\(desc))"
}
for (index, translator) in translators.enumerated() {
let urlString = translator.url == nil ? nil : "(<a href=\"\(translator.url!)\">\(translator.title!)</a>)"
let emailString = translator.email == nil ? nil : "<a href=\"mailto:\(translator.email!)\">\(translator.email!)</a>"
result.append([
"lang": index == 0 ? language : "",
"translator": ["\(translator.name)", urlString, emailString].compactMap { $0 }.joined(separator: " ")
])
}
}
return result
}
}

class AboutWindowButton: NSButton {

override func awakeFromNib() {
Expand Down
1 change: 1 addition & 0 deletions iina/AppData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ struct AppData {

static let githubLink = "https://github.com/iina/iina"
static let contributorsLink = "https://github.com/iina/iina/graphs/contributors"
static let crowdinMembersLink = "https://crowdin.com/project/iina/members"
static let wikiLink = "https://github.com/iina/iina/wiki"
static let websiteLink = "https://iina.io"
static let emailLink = "developers@iina.io"
Expand Down
Loading

0 comments on commit 7bfd560

Please sign in to comment.