Commit Graph

5497 Commits

Author SHA1 Message Date
Hosted Weblate
1641423224
Merge branch 'origin/development' into Weblate. 2023-09-12 19:39:04 +02:00
Dragibus Noir
97e9407e6f
Translated using Weblate (French)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/
2023-09-12 19:38:46 +02:00
Ettore Atalan
c096f74360
Translated using Weblate (German)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/
2023-09-12 19:38:45 +02:00
ChunkyProgrammer
67bdf718c0
Fix localization of counts (#4011)
* Fix localization of counts

* Apply suggestions from code review

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

* Remove unused locale resources

---------

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-12 19:38:36 +02:00
trostboot
b4223e5f29
Sort list of external players (#4036)
* Sort list of external players

* Condense sorting logic

* Rework sorting in utils.js

* Simplify sorting logic
2023-09-12 19:21:52 +02:00
Dragibus Noir
148b40683c
Translated using Weblate (French)
Currently translated at 99.8% (719 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/
2023-09-12 16:52:52 +02:00
Sveinn í Felli
0ffa54740e
Translated using Weblate (Icelandic)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/
2023-09-12 13:51:53 +02:00
Priit Jõerüüt
3ba8260232
Translated using Weblate (Estonian)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/et/
2023-09-12 10:50:38 +02:00
Jeff Huang
ab7d26f7fb
Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/
2023-09-12 06:51:27 +02:00
Massimo Pissarello
f6d98049b7
Translated using Weblate (Italian)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/
2023-09-12 04:51:59 +02:00
Jason
efaf50ec8f
Implement Favorites icon persisting for favorited videos (#4012) 2023-09-12 09:09:49 +08:00
Ihor Hordiichuk
7366e2a16e
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/uk/
2023-09-12 01:54:53 +02:00
Oğuz Ersen
c991712e5a
Translated using Weblate (Turkish)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/
2023-09-11 20:55:21 +02:00
Grzegorz Wójcicki
8aa4ace695
Translated using Weblate (Polish)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/
2023-09-11 20:55:20 +02:00
dependabot[bot]
8c356389aa
Bump marked from 8.0.0 to 9.0.0 (#4032)
Bumps [marked](https://github.com/markedjs/marked) from 8.0.0 to 9.0.0.
- [Release notes](https://github.com/markedjs/marked/releases)
- [Changelog](https://github.com/markedjs/marked/blob/master/.releaserc.json)
- [Commits](https://github.com/markedjs/marked/compare/v8.0.0...v9.0.0)

---
updated-dependencies:
- dependency-name: marked
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 17:27:07 +02:00
dependabot[bot]
a4550f2ff9
Bump youtubei.js from 6.3.0 to 6.4.0 (#4030)
Bumps [youtubei.js](https://github.com/LuanRT/YouTube.js) from 6.3.0 to 6.4.0.
- [Release notes](https://github.com/LuanRT/YouTube.js/releases)
- [Changelog](https://github.com/LuanRT/YouTube.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/LuanRT/YouTube.js/compare/v6.3.0...v6.4.0)

---
updated-dependencies:
- dependency-name: youtubei.js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 17:26:34 +02:00
Fjuro
8a14b3211b
Translated using Weblate (Czech)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/
2023-09-11 15:54:12 +02:00
dependabot[bot]
1237858186
Bump the stylelint group with 1 update (#4029)
Bumps the stylelint group with 1 update: [postcss-scss](https://github.com/postcss/postcss-scss).

- [Changelog](https://github.com/postcss/postcss-scss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss-scss/compare/4.0.7...4.0.8)

---
updated-dependencies:
- dependency-name: postcss-scss
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: stylelint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 12:55:04 +00:00
dependabot[bot]
88c9327518
Bump the eslint group with 2 updates (#4028)
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n).


Updates `eslint` from 8.48.0 to 8.49.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.48.0...v8.49.0)

Updates `eslint-plugin-n` from 16.0.2 to 16.1.0
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/16.0.2...16.1.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-n
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 08:03:05 -04:00
dependabot[bot]
ae40e46fe6
Bump the babel group with 1 update (#4027)
Bumps the babel group with 1 update: [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core).

- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.22.17/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-11 08:02:38 -04:00
Saeid Eslami
8a0193db60
Translated using Weblate (Persian)
Currently translated at 99.1% (714 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fa/
2023-09-11 12:47:55 +02:00
gallegonovato
1c3cec5092
Translated using Weblate (Spanish)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/
2023-09-11 12:47:54 +02:00
Rex_sa
b0abead455
Translated using Weblate (Arabic)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/
2023-09-11 12:47:53 +02:00
Yaron Shahrabani
1c016bb02c
Translated using Weblate (Hebrew)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/
2023-09-11 08:57:06 +02:00
Yaron Shahrabani
ca8b3226e9
Translated using Weblate (Hebrew)
Currently translated at 100.0% (720 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/
2023-09-11 06:53:38 +02:00
Eric
0961d5a4e9
Translated using Weblate (Chinese (Simplified))
Currently translated at 99.8% (719 of 720 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hans/
2023-09-11 01:53:16 +02:00
Benjababe
8c07ef3521
Add subscribed icon to comments (#4007)
* add subscribed icon to comments

* update subscribed img src

* update subscribed icon css

* add author id to local api comments

* update subscribe icon on theme change

* add subscription icon to comment replies

* Update src/renderer/components/watch-video-comments/watch-video-comments.css

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-09-11 07:14:18 +08:00
Sveinn í Felli
c96f8c58c9
Translated using Weblate (Icelandic)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/is/
2023-09-10 15:19:49 +02:00
Fjuro
a64cff4c01
Translated using Weblate (Czech)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/
2023-09-10 15:19:48 +02:00
Rusi Dimitrov
9dfbeee099
Translated using Weblate (Bulgarian)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/
2023-09-10 15:19:47 +02:00
Grzegorz Wójcicki
b682fc292a
Translated using Weblate (Polish)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pl/
2023-09-10 15:19:47 +02:00
Rex_sa
10816b6ddf
Translated using Weblate (Arabic)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/
2023-09-10 11:24:20 +02:00
Retrial
1210554668
Translated using Weblate (Greek)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/el/
2023-09-10 04:12:18 +02:00
Massimo Pissarello
c01201adfa
Translated using Weblate (Italian)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/
2023-09-10 04:12:17 +02:00
Eric
eb394046b6
Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hans/
2023-09-10 04:12:16 +02:00
ovari
2a64488281
Translated using Weblate (Hungarian)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/
2023-09-10 02:11:13 +02:00
Carlos Luiz
81942b2beb
Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_BR/
2023-09-10 02:11:12 +02:00
Ihor Hordiichuk
90b323e7cc
Translated using Weblate (Ukrainian)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/uk/
2023-09-10 00:18:41 +02:00
gallegonovato
a65df4d15c
Translated using Weblate (Spanish)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/
2023-09-10 00:18:40 +02:00
Yaron Shahrabani
cf83de2081
Translated using Weblate (Hebrew)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/
2023-09-09 21:15:12 +02:00
Oğuz Ersen
4d2d0cc64c
Translated using Weblate (Turkish)
Currently translated at 100.0% (719 of 719 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/tr/
2023-09-09 21:15:11 +02:00
ChunkyProgrammer
c7025b648c
Search: Add hashtags to results (#3780)
* Add hashtags to search results

* add global count , implement changes from code review

Co-Authored-By: absidue <48293849+absidue@users.noreply.github.com>

* use h3 for title of hashtag element

* implement suggestions from code review

* use hashtag.text, move url update logic

* encodeURI for hashtag url

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
2023-09-09 18:32:59 +02:00
Jason
6f2a535212
Implement right-to-left interface (#3970)
* Replace margin-left with margin-inline-start

* Replace margin-right with margin-inline-end

* Replace padding-left with padding-inline-start

* Replace padding-right with padding-inline-end

* Replace padding-top & padding-bottom with padding-block; continue replacing  padding-left and padding-right with padding-inline-start and padding-inline-end

* Add updated rtl-compatible margins to ft-slider and fix indentation

* Replace margin-top & margin-bottom with margin-block; continue replacing margin-left and margin-right with margin-inline-start and margin-inline-end

* Continue replacing with margin-block and margin-inline

* Replace left and right with inset-inline-start and inset-inline-end

This commit also changes border-left to border-inline-start, and border-right to border-inline-end.

* Replace margin-bottom, top, and bottom with margin-block-end, inset-block-start, and inset-block-end

This commit also replaces border-top and border-bottom with border-block-start and border-block-end.

* Replace text-align left and right with text-align start and end

* Fix syntax error with inset-block-end

* Implement dynamic float: left/right based on direction ltr/rtl

* Implement dynamic navigation arrow placement based on direction ltr/rtl

To the fullest of my understanding, it is expected for the left navigation in rtl-supporting browsers to be for forward navigation, and the right one to be for backward navigation.

* Add direction to body based on preferred language

* Implement horizontal directionality coefficient to fix translate working in wrong x-direction for rtl languages

* Add explicit text-align: start in places to ensure rtl version is correctly aligned

* Add text-align: start to places where it is not inferred to enable proper rtl text orientation

* Fix search bar magnifying glass being too far right issue

* Move body.dir-setting logic to setLocale to fix dir not setting correctly on page reload

* Change .switchColumn to have align-items: start instead of justify-items: start

I have validated this for all settings tabs; the justify-content: start did nothing in any language, left-to-right or right-to-left. Replacing it with align-items: start aligned all menu switch items by their switches, not by their labels. This makes for a much more uniform settings section for trl languages.

* Fix emergent bug in which history icons are temporarily disabled on changing language to one with different directionality

Given that which icon is displayed for which history arrow is now dynamic based on the user's directionality, changing of the icon resets the font-awesome-icon state and thus re-adds the base disabled class to both arrows. This means that changing your language to one that has a different directionality was falsely setting the arrows to their disabled state (until the route is changed, after which the history icons will be fully back to normal). This commmit refactors the history icon setting logic to use class binding to two booleans in the top-nav component's data rather than adding and removing the disabled classes directly to the arrow elements' classLists, thus cleaning up the implementation and fixing the bug.

* Add Kurdish to rtl languages list & add li items to be right-aligned on rtl languages

* Force FreeTube logo to be ordered left-to-right for 'brand consistency'

* Add styling flipping font-awesome icons for rtl languages except for exclusion list

* Update isRightAligned with additional languages, and use it instead of locale value from store

Kudos to absidue for pointing out this existing function for representing this, and that it grabs directly from the i18n object. This means that FreeTube will display the proper rtl interface if one is the user's system language, where it did not before.

* Update isRightAligned property name to more clearly reflect rtl purpose

* Simplify left/right arrow display logic

Leverage the icons being flipped rather than manually setting the classes to their opposites when the directionality is RTL.

* Replace justify-self: left & justify-self: right with justify-self; start and justify-self: end

* Remove misguided attempt to emulate directionality-agnosticism with rightAligned class

* Explicitly center FreeTube version on About page

* Replace pre-existing identation issue

* Replace margin-left with margin-inline-start

* Replace margin-right with margin-inline-end

* Replace padding-left with padding-inline-start

* Replace padding-right with padding-inline-end

* Replace padding-top & padding-bottom with padding-block; continue replacing  padding-left and padding-right with padding-inline-start and padding-inline-end

* Add updated rtl-compatible margins to ft-slider and fix indentation

* Replace margin-top & margin-bottom with margin-block; continue replacing margin-left and margin-right with margin-inline-start and margin-inline-end

* Continue replacing with margin-block and margin-inline

* Replace left and right with inset-inline-start and inset-inline-end

This commit also changes border-left to border-inline-start, and border-right to border-inline-end.

* Replace margin-bottom, top, and bottom with margin-block-end, inset-block-start, and inset-block-end

This commit also replaces border-top and border-bottom with border-block-start and border-block-end.

* Replace text-align left and right with text-align start and end

* Fix syntax error with inset-block-end

* Implement dynamic float: left/right based on direction ltr/rtl

* Implement dynamic navigation arrow placement based on direction ltr/rtl

To the fullest of my understanding, it is expected for the left navigation in rtl-supporting browsers to be for forward navigation, and the right one to be for backward navigation.

* Add direction to body based on preferred language

* Implement horizontal directionality coefficient to fix translate working in wrong x-direction for rtl languages

* Add explicit text-align: start in places to ensure rtl version is correctly aligned

* Add text-align: start to places where it is not inferred to enable proper rtl text orientation

* Fix search bar magnifying glass being too far right issue

* Move body.dir-setting logic to setLocale to fix dir not setting correctly on page reload

* Change .switchColumn to have align-items: start instead of justify-items: start

I have validated this for all settings tabs; the justify-content: start did nothing in any language, left-to-right or right-to-left. Replacing it with align-items: start aligned all menu switch items by their switches, not by their labels. This makes for a much more uniform settings section for trl languages.

* Fix emergent bug in which history icons are temporarily disabled on changing language to one with different directionality

Given that which icon is displayed for which history arrow is now dynamic based on the user's directionality, changing of the icon resets the font-awesome-icon state and thus re-adds the base disabled class to both arrows. This means that changing your language to one that has a different directionality was falsely setting the arrows to their disabled state (until the route is changed, after which the history icons will be fully back to normal). This commmit refactors the history icon setting logic to use class binding to two booleans in the top-nav component's data rather than adding and removing the disabled classes directly to the arrow elements' classLists, thus cleaning up the implementation and fixing the bug.

* Add Kurdish to rtl languages list & add li items to be right-aligned on rtl languages

* Force FreeTube logo to be ordered left-to-right for 'brand consistency'

* Add styling flipping font-awesome icons for rtl languages except for exclusion list

* Update isRightAligned with additional languages, and use it instead of locale value from store

Kudos to absidue for pointing out this existing function for representing this, and that it grabs directly from the i18n object. This means that FreeTube will display the proper rtl interface if one is the user's system language, where it did not before.

* Update isRightAligned property name to more clearly reflect rtl purpose

* Simplify left/right arrow display logic

Leverage the icons being flipped rather than manually setting the classes to their opposites when the directionality is RTL.

* Replace justify-self: left & justify-self: right with justify-self; start and justify-self: end

* Remove misguided attempt to emulate directionality-agnosticism with rightAligned class

* Explicitly center FreeTube version on About page

* Fix question mark reversing logic for Arabic, Hebrew, Persian, and Urdu

* Fix minor indentation issue

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* Remove unused function

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>

* Update src/renderer/components/ft-slider/ft-slider.css

Co-authored-by: PikachuEXE <pikachuexe@gmail.com>

---------

Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
Co-authored-by: PikachuEXE <pikachuexe@gmail.com>
2023-09-09 18:29:26 +02:00
Philip Goto
24ee3289fe
Translated using Weblate (Dutch)
Currently translated at 98.4% (706 of 717 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/
2023-09-09 11:55:57 +02:00
ovari
68dd15baff
Translated using Weblate (Hungarian)
Currently translated at 99.7% (715 of 717 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/
2023-09-09 05:16:08 +02:00
ChunkyProgrammer
1533e9ec90
Enable Persian language (#4010) 2023-09-08 23:37:16 +00:00
Ettore Atalan
6a6f37e286
Translated using Weblate (German)
Currently translated at 100.0% (717 of 717 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/
2023-09-08 18:57:55 +02:00
dependabot[bot]
754afef419
Bump electron from 22.3.18 to 22.3.21 (#4008)
Bumps [electron](https://github.com/electron/electron) from 22.3.18 to 22.3.21.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v22.3.18...v22.3.21)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-08 11:42:46 -04:00
gallegonovato
edd4e1cc63
Translated using Weblate (Spanish)
Currently translated at 100.0% (717 of 717 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/
2023-09-08 15:56:46 +02:00
Dragibus Noir
110e68f073
Translated using Weblate (French)
Currently translated at 100.0% (717 of 717 strings)

Translation: FreeTube/Translations
Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/fr/
2023-09-08 15:56:45 +02:00