Отформатировать время строки меню в английские слова

3

Я видел этот скриншот чьей-то строки меню, и его форматирование времени установлено на удобочитаемом английском языке.

просмотр строки меню: «без пятнадцати»

Это приложение сторонней организации или настройка / скрипт, который я могу запустить в OS X?

Морган
источник
1
Также привет к источнику. Пожалуйста, проверьте madebybright.com .
Морган
Хорошее вольфрам альфа-приложение, которое работает в меню. Если вы много делаете на python, посмотрите на этот фреймворк: github.com/jaredks/rumps
bmike

Ответы:

2

Я написал скрипт для этого.

Чтобы показать это в меню, используйте BitBar . Небольшое приложение, которое создает элементы меню из вывода сценария оболочки.

menubar demo

Как только вы загрузите BitBar, сохраните следующий код в файле с именем и lingualtime.1s.phpукажите BitBar в том месте, где вы его сохранили.

#!/usr/bin/env php

<?php

# <bitbar.title>Lingual Clock</bitbar.title>
# <bitbar.version>v1.0</bitbar.version>
# <bitbar.author>Stan Hutcheon</bitbar.author>
# <bitbar.author.github>stnvh</bitbar.author.github>
# <bitbar.desc>displays the current time in a sentence</bitbar.desc>
# <bitbar.dependencies>php</bitbar.dependencies>

$time = array_map(function($time) {
    return intval($time);
}, explode(' ', date('g i')));

$st = array('hour' => '', 'minute' => '');

$past = '%s past %s'; $to = '%s to %s';

$pastHalf = false;

function get($int) {
    $numbers = array(
        1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine',
        11 => 'eleven', 12 => 'twelve', 13 => 'thirteen', 14 => 'fourteen', 15 => 'fifteen', 16 => 'sixteen', 17 => 'seventeen', 18 => 'eighteen', 19 => 'nineteen',
        10 => 'ten', 20 => 'twenty', 30 => 'thirty', 40 => 'fourty', 50 => 'fifty'
    );

    return isset($numbers[$int]) ? $numbers[$int] : '';
}

if($time[1] >= 35) {
    $pastHalf = true;

    $time[0] = $time[0] === 12 ? 1 : ++$time[0];
    $time[1] = 60 - $time[1];
}

# get lingual values
foreach(array('hour', 'minute') as $key => $part) {
    if($time[$key] < 20) {
        $st[$part] = get($time[$key]);
    } else {
        $currTenth = floor($time[$key] / 10) * 10;
        $currRem = $time[$key] - $currTenth;

        $ling = get($currTenth);
        if($ext = get($currRem)) {
            $ling .= '-' . $ext;
        }

        $st[$part] = $ling;
    }
}

printf(($pastHalf ? $to : $past) . PHP_EOL, $st['minute'], $st['hour']);
Стэн Хатчон
источник
BitBar говорит мне, что не может открывать файлы в формате «PHP-скрипт».
Морган
Вы не открываете это непосредственно; Откройте BitBar, нажмите «BitBar» в меню> настройки> открыть папку плагинов. Затем скопируйте сохраненный файл туда.
Стэн Хатчон
Просто обновление этого ответа, с последней версией BitBar, вы можете установить эту функцию прямо с сайта BitBar
deluan
1

Я считаю, что приложение, которое вы ищете, называется World Time . Это платное приложение ($ 1,99 USD), и оно должно делать все, что вы хотите. Хотя я не знаю бесплатных альтернатив.

chrisjr
источник
0

Вы смотрите на FuzzyClock, который бесплатен, но больше не поддерживается разработчиками. Я размещал приложение на тот случай, если оно кому-то понадобится. Это все еще работает на Эль-Капитане: http://sayzlim.net/reading-time-on-mac-with-fuzzyclock/

sayzlim
источник