Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Russian Language support. Based on Stefans offline commit #378

Merged
merged 6 commits into from
Mar 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ English description further below.
Dies ist ein Projekt für eine mehrsprachige Wortuhr auf Grundlage eines ESP8266-Mikrocontrollers und einer programmierbaren LED-Leiste (WS2812 oder SK6812). Eine Wortuhr ist ein wunderschönes DIY-Projekt für Anfänger, das Technologie und Design kombiniert, um eine funktionale und ästhetisch ansprechende Uhr zu schaffen.
Egal, ob Sie ein Anfänger oder ein erfahrener Bastler sind, dieses Projekt ist eine großartige Möglichkeit, Ihre Fähigkeiten unter Beweis zu stellen und etwas wirklich Besonderes zu schaffen.
Die Software hat viele Funktionen:
- Mehrsprachig (🇬🇧, 🇩🇪, 🇪🇸, 🇮🇹, 🇳🇱, 🇭🇺)
- Mehrsprachig (🇬🇧, 🇩🇪, 🇪🇸, 🇮🇹, 🇳🇱, 🇭🇺, 🇷🇴, 🇨🇭, 🇷🇺, 🇸🇪, 🇫🇷)
- Unterstützung für mehrere Layouts und LED-Abstände
- Farbwechsel der Displayfarbe möglich (RGB oder RGBW)
- Digitale Uhranzeige
Expand Down Expand Up @@ -105,7 +105,7 @@ Die einzige Bedingung ist, dass der Copyright-Hinweis des Originalprogramms nich
This is a project for a multilingual word clock based on an ESP8266 microcontroller and a programmable LED strip (WS2812 or SK6812). A word clock is a beautiful DIY project for beginners that combines technology and design to create a functional and aesthetically pleasing clock.
Whether you're a beginner or an experienced hobbyist, this project is a great way to show off your skills and create something truly special.
The software has many features:
- Multilingual (🇬🇧, 🇩🇪, 🇪🇸, 🇮🇹, 🇳🇱, 🇭🇺)
- Multilingual (🇬🇧, 🇩🇪, 🇪🇸, 🇮🇹, 🇳🇱, 🇭🇺, 🇷🇴, 🇨🇭, 🇷🇺, 🇸🇪, 🇫🇷)
- Support for multiple layouts and LED spacing
- Colour change of the display colour possible (RGB or RGBW)
- Digital clock display
Expand Down
1 change: 1 addition & 0 deletions eslintrc.json
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,7 @@
"TRANSLATION_IT": "readonly",
"TRANSLATION_ES": "readonly",
"TRANSLATION_HU": "readonly",
"TRANSLATION_RU": "readonly",
"i18next": "readonly",
"isLocalEnvironment": "readonly"
}
Expand Down
1 change: 1 addition & 0 deletions include/Uhr.h
Original file line number Diff line number Diff line change
Expand Up @@ -272,6 +272,7 @@ enum ClockType {
Ro10x11 = 19,
Fr10x11 = 21,
Se10x11 = 22,
Ru10x11 = 23,
};

enum Icons {
Expand Down
4 changes: 2 additions & 2 deletions include/Uhrtypes/HU10x10.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
/*
* Layout Front
* COL
* X 9 8 7 6 5 4 3 2 1 0
* ROW + - - - - - - - - - - -
* 9 8 7 6 5 4 3 2 1 0
* ROW + - - - - - - - - - -
* 0 | Ö T B T Í Z J A S U
* 1 | P E R C C E L E W O
* 2 | M Ú L T A M Ú L V A
Expand Down
227 changes: 227 additions & 0 deletions include/Uhrtypes/RU10x11.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,227 @@
#pragma once

#include "Uhrtype.hpp"

/*
* Layout Front by Ragman
* COL
* X 9 8 7 6 5 4 3 2 1 0
* ROW + - - - - - - - - - - -
* 0 | О Д И Н П Я Т Ь Д В А
* 1 | Д Е Ш Е С Т Ь В Я Т Ь
* 2 | В О Ч Е C E M Ь Т Р И
* 3 | Т Ы Д В Е Р Е С Я Т Ь
* 4 | Н А Д Ц А Т Ь Ч А С А
* 5 | Ч А С О В Д С О Р О К
* 6 | Т Р И Д В А Д П Я Т Ь
* 7 | П Я Т Н А Д Е Ц А Т Ь
* 8 | A M Д Е С Я Т С Я Т Ь
* 9 | П Я Т Ь Я Р М И Н У Т
*/

class Ru10x11_t : public iUhrType {
public:
virtual LanguageAbbreviation usedLang() override {
return LanguageAbbreviation::RU;
};

//------------------------------------------------------------------------------

virtual const bool hasZwanzig() override { return true; }

//------------------------------------------------------------------------------

virtual const bool hasTwentyfive() override { return true; }

//------------------------------------------------------------------------------

virtual const bool hasThirtyfive() override { return true; }

//------------------------------------------------------------------------------

virtual const bool hasForty() override { return true; }

//------------------------------------------------------------------------------

virtual const bool hasDreiviertel() override { return true; }

//------------------------------------------------------------------------------

virtual const bool hasFifty() override { return true; }

//------------------------------------------------------------------------------

virtual const bool hasFiftyFive() override { return true; }

//------------------------------------------------------------------------------

void show(FrontWord word) override {
switch (word) {

case FrontWord::es_ist:
// Ч А С О В (5 ... 12)
setFrontMatrixWord(5, 6, 10);
break;

case FrontWord::es_ist___plural___:
// Ч А С A (2 ...4)
setFrontMatrixWord(4, 0, 3);
break;

case FrontWord::es_ist__singular__:
// Ч А С (1)
setFrontMatrixWord(4, 1, 3);
break;

case FrontWord::hour_1:
// О Д И Н
setFrontMatrixWord(0, 7, 10);
break;

case FrontWord::hour_2:
// Д В А
setFrontMatrixWord(0, 0, 2);
break;

case FrontWord::hour_3:
// Т Р И
setFrontMatrixWord(2, 0, 2);
break;

case FrontWord::hour_4:
// Ч Е Т Ы Р Е
setFrontMatrixWord(2, 7, 8);
setFrontMatrixWord(3, 9, 10);
setFrontMatrixWord(3, 4, 5);
break;

case FrontWord::hour_5:
// П Я Т Ь
setFrontMatrixWord(0, 3, 6);
break;

case FrontWord::hour_6:
// Ш Е С Т Ь
setFrontMatrixWord(1, 4, 8);
break;

case FrontWord::hour_7:
// C E M Ь
setFrontMatrixWord(2, 3, 6);
break;

case FrontWord::hour_8:
// B O C E M Ь
setFrontMatrixWord(2, 9, 10);
setFrontMatrixWord(2, 3, 6);
break;

case FrontWord::hour_9:
// Д Е В Я Т Ь
setFrontMatrixWord(1, 9, 10);
setFrontMatrixWord(1, 0, 3);
break;

case FrontWord::hour_10:
// Д Е С Я Т Ь
setFrontMatrixWord(1, 9, 10);
setFrontMatrixWord(3, 0, 3);
break;

case FrontWord::hour_11:
// О Д И Н Н А Д Ц А Т Ь
setFrontMatrixWord(0, 7, 10);
setFrontMatrixWord(4, 4, 10);
break;

case FrontWord::hour_12:
// Д В Е Н А Д Ц А Т Ь
setFrontMatrixWord(3, 6, 8);
setFrontMatrixWord(4, 4, 10);
break;

case FrontWord::min_5:
// П Я Т Ь М И Н У Т
setFrontMatrixWord(9, 7, 10);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_10:
// Д Е С Я Т Ь М И Н У Т
setFrontMatrixWord(8, 7, 8);
setFrontMatrixWord(8, 0, 3);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::viertel:
// П Я Т Н А Д Ц А Т Ь М И Н У Т
setFrontMatrixWord(7, 5, 10);
setFrontMatrixWord(7, 0, 3);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_20:
// Д В А Д Ц А Т Ь М И Н У Т
setFrontMatrixWord(6, 4, 7);
setFrontMatrixWord(7, 0, 3);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_25:
// Д В А Д Ц А Т Ь П Я Т Ь М И Н У Т
setFrontMatrixWord(6, 4, 7);
setFrontMatrixWord(7, 0, 3);
setFrontMatrixWord(9, 7, 10);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::halb:
// Т Р И Д Ц А Т Ь М И Н У Т
setFrontMatrixWord(6, 7, 10);
setFrontMatrixWord(7, 0, 3);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_35:
// Т Р И Д Ц А Т Ь П Я Т Ь М И Н У Т
setFrontMatrixWord(6, 7, 10);
setFrontMatrixWord(7, 0, 3);
setFrontMatrixWord(9, 7, 10);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_40:
// C O P O K М И Н У Т
setFrontMatrixWord(5, 0, 4);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::dreiviertel:
// C O P O K П Я Т Ь М И Н У Т
setFrontMatrixWord(5, 0, 4);
setFrontMatrixWord(9, 7, 10);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_50:
// П Я Т Ь Д Е С Я Т М И Н У Т
setFrontMatrixWord(6, 0, 3);
setFrontMatrixWord(8, 4, 8);
setFrontMatrixWord(9, 0, 4);
break;

case FrontWord::min_55:
// П Я Т Ь Д Е С Я Т П Я Т Ь М И Н У Т
setFrontMatrixWord(6, 0, 3);
setFrontMatrixWord(8, 4, 8);
setFrontMatrixWord(9, 7, 10);
setFrontMatrixWord(9, 0, 4);
break;

default:
break;
};
};
};

Ru10x11_t _ru10x11;
9 changes: 8 additions & 1 deletion include/Uhrtypes/Uhrtype.hpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#pragma once

enum class LanguageAbbreviation { DE, EN, ES, IT, NL, HU, RO, FR, SE };
enum class LanguageAbbreviation { DE, EN, ES, IT, NL, HU, RO, FR, SE, RU };

enum class FrontWord {
error,
Expand Down Expand Up @@ -69,6 +69,7 @@ enum class FrontWord {
m_num4,

es_ist,
es_ist__singular__,
es_ist___plural___,
nach,
vor,
Expand Down Expand Up @@ -181,6 +182,12 @@ class iUhrType {

virtual const bool hasThirtyfive() { return false; }

virtual const bool hasForty() { return false; }

virtual const bool hasFifty() { return false; }

virtual const bool hasFiftyFive() { return false; }

virtual const bool hasMitternacht() { return false; }

virtual const bool has24HourLayout() { return false; }
Expand Down
3 changes: 3 additions & 0 deletions include/clockWork.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ class ClockWork {
void showMinute(uint8_t min);
void resetMinVariantIfNotAvailable();
FrontWord getFrontWordForNum(uint8_t min);
bool hasTwentyAndCheckForUsage();
bool hasDreiviertelAndCheckForUsage();
void setMinute(uint8_t min, uint8_t &offsetHour, bool &fullHour);

//------------------------------------------------------------------------------
Expand All @@ -46,6 +48,7 @@ class ClockWork {
WordclockChanges changesInClockface();
void calcClockface();
void setClock();
void DetermineWhichItIsToShow(uint8_t offsetHour);
void clearClockByProgInit();

public:
Expand Down
Loading
Loading