2

有什么方法可以本地化 Eureka 的所有输出?

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

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

4

1 回答 1

1

您好,要使 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
        })

你可以处理本地化,然后定义你的键k_hourk_min在你的 Localizable.string 中你必须有这个结果

在此处输入图像描述

我希望这可以帮助你,

于 2017-02-20T13:04:56.773 回答