我们将构建多语言Web应用程序,并考虑使用Yarp's Timeago jQuery plugin.

但是我们希望在我们的应用程序中支持阿拉伯语。如您所知,阿拉伯语对单数,复数和“双重”有不同的处理方式

例如


1分钟=>دقيقة单数
2分钟=>دقيقتينDual
3-10分钟=> 3دقائقPlural
超过10分钟=> 11دقيقةSingular


那么有没有办法在不影响英语的情况下支持阿拉伯语呢?

最佳答案

我最终得到的是库的更新版本,这里是新的js代码:

strings: {
    prefixAgo: null,
    prefixFromNow: null,
    suffixAgo: "ago",
    suffixFromNow: "from now",
    seconds: "less than a minute",
    minute: "about a minute",
    twominute: "%d minutes",
    lessthanorequaltwominutes: "%d minutes",
    lessthanorequaltenminutes: "%d minutes",
    minutes: "%d minutes",
    hour: "about an hour",
    twohour: "about %d hours",
    lessthanorequaltwohours: "about %d hours",
    lessthanorequaltenhours: "about %d hours",
    hours: "about %d hours",
    day: "a day",
    twoday: "%d days",
    lessthanorequaltwodays: "%d days",
    lessthanorequaltendays: "%d days",
    days: "%d days",
    month: "about a month",
    twomonth: "%d months",
    lessthanorequaltwomonths: "%d months",
    lessthanorequaltenmonths: "%d months",
    months: "%d months",
    year: "about a year",
    twoyear: "%d years",
    lessthanorequaltwoyears: "%d years",
    lessthanorequaltenyears: "%d years",
    years: "%d years",
    wordSeparator: " ",
    numbers: []
}


还有另一个地方需要更新为:

var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
    seconds < 90 && substitute($l.minute, 1) ||
    seconds > 90 && seconds < 120 && substitute($l.lessthanorequaltwominutes, 1) ||
    minutes >= 2 && minutes < 3 && substitute($l.twominute, 2) ||
    minutes < 11 && substitute($l.lessthanorequaltenminutes, Math.round(minutes)) ||
    minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
    minutes < 90 && substitute($l.hour, 1) ||
    minutes < 121 && minutes > 90 && substitute($l.lessthanorequaltwohours, 2) ||
    hours >= 2 && hours < 3 && substitute($l.twohour, 2) ||
    hours < 11 && substitute($l.lessthanorequaltenhours, Math.round(hours)) ||
    hours < 24 && substitute($l.hours, Math.round(hours)) ||
    hours < 42 && substitute($l.day, 1) ||
    hours < 48 && hours > 42 && substitute($l.lessthanorequaltwodays, 2) ||
    days >= 2 && days < 3 && substitute($l.twoday, 2) ||
    days < 11 && substitute($l.lessthanorequaltendays, Math.round(days)) ||
    days < 30 && substitute($l.days, Math.round(days)) ||
    days < 45 && substitute($l.month, 1) ||
    days > 59 && days < 63 && substitute($l.twomonth, 2) ||
    days < 75 && days > 45 && substitute($l.lessthanorequaltwomonths, 2) ||
    days < 310 && substitute($l.lessthanorequaltenmonths, Math.round(days / 30)) ||
    days < 365 && substitute($l.months, Math.round(days / 30)) ||
    days > 365 && days < 485 && substitute($l.year, 1) ||
    days > 485 && years < 2 && substitute($l.lessthanorequaltwoyears, 2) ||
    years >= 2 && years < 3 && substitute($l.twoyear, 2) ||
    years < 11 && substitute($l.lessthanorequaltenyears, Math.round(years)) ||
    years < 1.5 && substitute($l.year, 1) ||
    substitute($l.years, Math.round(years));

关于jquery - 对Timeago jQuery插件的阿拉伯语支持,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15805321/

10-12 07:22
查看更多