Eureka的本地化输出?

时间:2017-01-11 12:56:19

标签: swift eureka-forms

有没有办法本地化Eureka的所有输出?

我现在面临的主要问题是更改CountDownRow中的文本。我想改成行中的输出。我找不到编辑“小时”和“分钟”文本的方法

忽略可选标签。我认为这是一个单独的问题。

1 个答案:

答案 0 :(得分:0)

你好使Localized成为countDownCell,你必须创建自己的子类,因为这似乎是框架实现的一个错误,但是要创建一个这样的子类

//
//  MyCountDownRow.swift
//  EurekaExamplesSwift3
//
//  Created by Reinier Melian on 2/20/17.
//  Copyright © 2017 Reinier Melian. All rights reserved.
//

import UIKit
import Eureka

final class MyCountDownRow: _CountDownRow,RowType {

    required public init(tag: String?) {
        super.init(tag: tag)
        displayValueFor = { [unowned self] value in
            guard let val = value else {
                return nil
            }
            if let formatter = self.dateFormatter {
                return formatter.string(from: val)
            }
            let components = Calendar.current.dateComponents([Calendar.Component.minute, Calendar.Component.hour], from: val)
            var hourString = NSLocalizedString("k_hour", comment: "")
            if components.hour != 1{
                hourString += "s"
            }
            return  "\(components.hour!) \(hourString) \(components.minute!) \(NSLocalizedString("k_min", comment: ""))"
        }
    }

}

使用您自己的班级

<<< MyCountDownRow(){
                $0.title = "Spanish"
            }.cellSetup({ (dateCell, myCoutDownRow) in

            let currentDate = NSDate() as Date
            myCoutDownRow.dateFormatter?.dateStyle = .short
            myCoutDownRow.dateFormatter?.timeStyle = .short
            dateCell.row.value = currentDate
        })

您可以处理本地化,然后在Localizable.string中定义密钥k_hourk_min,您必须拥有此结果

enter image description here

我希望这可以帮到你,