Merge branch 'master' into dev

This commit is contained in:
Dessalines 2020-06-09 22:43:28 -04:00
commit da2229a303
14 changed files with 65 additions and 24 deletions

2
README.md vendored
View file

@ -44,7 +44,7 @@ The overall goal is to create an easily self-hostable, decentralized alternative
Each lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing. Each lemmy server can set its own moderation policy; appointing site-wide admins, and community moderators to keep out the trolls, and foster a healthy, non-toxic environment where all can feel comfortable contributing.
*Note: Federation is still in active development* *Note: Federation is still in active development and the WebSocket, as well as, HTTP API are currently unstable*
### Why's it called Lemmy? ### Why's it called Lemmy?

2
ansible/VERSION vendored
View file

@ -1 +1 @@
v0.6.69 v0.6.71

View file

@ -1,4 +1,4 @@
version: '3.3' version: '2.2'
services: services:
postgres: postgres:
@ -12,7 +12,7 @@ services:
restart: always restart: always
lemmy: lemmy:
image: dessalines/lemmy:v0.6.69 image: dessalines/lemmy:v0.6.71
ports: ports:
- "127.0.0.1:8536:8536" - "127.0.0.1:8536:8536"
restart: always restart: always
@ -32,6 +32,7 @@ services:
volumes: volumes:
- ./volumes/pictshare:/usr/share/nginx/html/data - ./volumes/pictshare:/usr/share/nginx/html/data
restart: always restart: always
mem_limit: 100m
iframely: iframely:
image: dogbin/iframely:latest image: dogbin/iframely:latest
@ -40,3 +41,4 @@ services:
volumes: volumes:
- ./iframely.config.local.js:/iframely/config.local.js:ro - ./iframely.config.local.js:/iframely/config.local.js:ro
restart: always restart: always
mem_limit: 100m

View file

@ -1,6 +1,6 @@
# Lemmy API # Lemmy API
*Note: this may lag behind the actual API endpoints [here](../server/src/api).* *Note: this may lag behind the actual API endpoints [here](../server/src/api). The API should be considered unstable and may change any time.*
<!-- toc --> <!-- toc -->

View file

@ -1 +1 @@
pub const VERSION: &str = "v0.6.69"; pub const VERSION: &str = "v0.6.71";

View file

@ -10,10 +10,9 @@ interface SilverUser {
} }
let general = [ let general = [
'Ernest Wiśniewski',
'HN',
'Forrest Weghorst', 'Forrest Weghorst',
'Serge Tarkovski',
'alexx henry',
'Nathan J. Goode',
'Andre Vallestero', 'Andre Vallestero',
'NotTooHighToHack', 'NotTooHighToHack',
]; ];

10
ui/src/i18next.ts vendored
View file

@ -16,9 +16,14 @@ import { fi } from './translations/fi';
import { ca } from './translations/ca'; import { ca } from './translations/ca';
import { fa } from './translations/fa'; import { fa } from './translations/fa';
import { hi } from './translations/hi'; import { hi } from './translations/hi';
import { pl } from './translations/pl';
import { pt_BR } from './translations/pt_BR'; import { pt_BR } from './translations/pt_BR';
import { ja } from './translations/ja'; import { ja } from './translations/ja';
import { ka } from './translations/ka'; import { ka } from './translations/ka';
import { gl } from './translations/gl';
import { tr } from './translations/tr';
import { hu } from './translations/hu';
import { uk } from './translations/uk';
// https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66 // https://github.com/nimbusec-oss/inferno-i18next/blob/master/tests/T.test.js#L66
const resources = { const resources = {
@ -39,8 +44,13 @@ const resources = {
fi, fi,
ca, ca,
fa, fa,
pl,
pt_BR, pt_BR,
ja, ja,
gl,
tr,
hu,
uk,
}; };
function format(value: any, format: any, lng: any): any { function format(value: any, format: any, lng: any): any {

42
ui/src/utils.ts vendored
View file

@ -12,10 +12,15 @@ import 'moment/locale/it';
import 'moment/locale/fi'; import 'moment/locale/fi';
import 'moment/locale/ca'; import 'moment/locale/ca';
import 'moment/locale/fa'; import 'moment/locale/fa';
import 'moment/locale/pl';
import 'moment/locale/pt-br'; import 'moment/locale/pt-br';
import 'moment/locale/ja'; import 'moment/locale/ja';
import 'moment/locale/ka'; import 'moment/locale/ka';
import 'moment/locale/hi'; import 'moment/locale/hi';
import 'moment/locale/gl';
import 'moment/locale/tr';
import 'moment/locale/hu';
import 'moment/locale/uk';
import { import {
UserOperation, UserOperation,
@ -66,15 +71,20 @@ export const languages = [
{ code: 'eo', name: 'Esperanto' }, { code: 'eo', name: 'Esperanto' },
{ code: 'es', name: 'Español' }, { code: 'es', name: 'Español' },
{ code: 'de', name: 'Deutsch' }, { code: 'de', name: 'Deutsch' },
{ code: 'gl', name: 'Galego' },
{ code: 'hu', name: 'Magyar Nyelv' },
{ code: 'ka', name: 'ქართული ენა' }, { code: 'ka', name: 'ქართული ენა' },
{ code: 'hi', name: 'मानक हिन्दी' }, { code: 'hi', name: 'मानक हिन्दी' },
{ code: 'fa', name: 'فارسی' }, { code: 'fa', name: 'فارسی' },
{ code: 'ja', name: '日本語' }, { code: 'ja', name: '日本語' },
{ code: 'pl', name: 'Polski' },
{ code: 'pt_BR', name: 'Português Brasileiro' }, { code: 'pt_BR', name: 'Português Brasileiro' },
{ code: 'zh', name: '中文' }, { code: 'zh', name: '中文' },
{ code: 'fi', name: 'Suomi' }, { code: 'fi', name: 'Suomi' },
{ code: 'fr', name: 'Français' }, { code: 'fr', name: 'Français' },
{ code: 'sv', name: 'Svenska' }, { code: 'sv', name: 'Svenska' },
{ code: 'tr', name: 'Türkçe' },
{ code: 'uk', name: 'українська мова' },
{ code: 'ru', name: 'Русский' }, { code: 'ru', name: 'Русский' },
{ code: 'nl', name: 'Nederlands' }, { code: 'nl', name: 'Nederlands' },
{ code: 'it', name: 'Italiano' }, { code: 'it', name: 'Italiano' },
@ -366,6 +376,8 @@ export function getMomentLanguage(): string {
lang = 'ca'; lang = 'ca';
} else if (lang.startsWith('fa')) { } else if (lang.startsWith('fa')) {
lang = 'fa'; lang = 'fa';
} else if (lang.startsWith('pl')) {
lang = 'pl';
} else if (lang.startsWith('pt')) { } else if (lang.startsWith('pt')) {
lang = 'pt-br'; lang = 'pt-br';
} else if (lang.startsWith('ja')) { } else if (lang.startsWith('ja')) {
@ -378,6 +390,14 @@ export function getMomentLanguage(): string {
lang = 'el'; lang = 'el';
} else if (lang.startsWith('eu')) { } else if (lang.startsWith('eu')) {
lang = 'eu'; lang = 'eu';
} else if (lang.startsWith('gl')) {
lang = 'gl';
} else if (lang.startsWith('tr')) {
lang = 'tr';
} else if (lang.startsWith('hu')) {
lang = 'hu';
} else if (lang.startsWith('uk')) {
lang = 'uk';
} else { } else {
lang = 'en'; lang = 'en';
} }
@ -863,14 +883,18 @@ export function previewLines(text: string, lines: number = 3): string {
} }
function canUseWebP() { function canUseWebP() {
var elem = document.createElement('canvas'); // TODO pictshare might have a webp conversion bug, try disabling this
if (!!(elem.getContext && elem.getContext('2d'))) {
var testString = !(window.mozInnerScreenX == null) ? 'png' : 'webp';
// was able or not to get WebP representation
return elem.toDataURL('image/webp').startsWith('data:image/' + testString);
}
// very old browser like IE 8, canvas not supported
return false; return false;
// var elem = document.createElement('canvas');
// if (!!(elem.getContext && elem.getContext('2d'))) {
// var testString = !(window.mozInnerScreenX == null) ? 'png' : 'webp';
// // was able or not to get WebP representation
// return (
// elem.toDataURL('image/webp').startsWith('data:image/' + testString)
// );
// }
// // very old browser like IE 8, canvas not supported
// return false;
} }

2
ui/src/version.ts vendored
View file

@ -1 +1 @@
export const version: string = 'v0.6.69'; export const version: string = 'v0.6.71';

1
ui/translations/gl.json vendored Normal file
View file

@ -0,0 +1 @@
{}

1
ui/translations/hu.json vendored Normal file
View file

@ -0,0 +1 @@
{}

View file

@ -65,14 +65,14 @@
"remove_as_admin": "wycofaj uprawnienia administratora", "remove_as_admin": "wycofaj uprawnienia administratora",
"appoint_as_admin": "przyznaj uprawnienia administratora", "appoint_as_admin": "przyznaj uprawnienia administratora",
"remove": "usuń", "remove": "usuń",
"removed": "usunięte", "removed": "usunięte przez moderatora",
"locked": "zablokowane", "locked": "zablokowane",
"stickied": "przyklejone", "stickied": "przyklejone",
"reason": "Powód", "reason": "Powód",
"mark_as_read": "zaznacz jako przeczytane", "mark_as_read": "zaznacz jako przeczytane",
"mark_as_unread": "zaznacz jako nieprzeczytane", "mark_as_unread": "zaznacz jako nieprzeczytane",
"delete": "usuń", "delete": "usuń",
"deleted": "usunięte", "deleted": "usunięte przez autora",
"delete_account": "Usuń Konto", "delete_account": "Usuń Konto",
"delete_account_confirm": "Ostrzeżenie: twoje dane zostaną bezpowrotnie usunięte. Wpisz swoje hasło aby potwierdzić.", "delete_account_confirm": "Ostrzeżenie: twoje dane zostaną bezpowrotnie usunięte. Wpisz swoje hasło aby potwierdzić.",
"restore": "przywróć", "restore": "przywróć",
@ -189,7 +189,7 @@
"theme": "Motyw", "theme": "Motyw",
"sponsors": "Sponsorzy", "sponsors": "Sponsorzy",
"sponsors_of_lemmy": "Sponsorzy projektu Lemmy", "sponsors_of_lemmy": "Sponsorzy projektu Lemmy",
"sponsor_message": "Lemmy jest wolnym, <1>otwartoźródłowym</1> oprogramowaniem, co oznacza zero reklam, opłat, czy innych form kapitalizacji, od zawsze na zawsze. Twoje darowizny idą bezpośrednio na rozwój projektu w pełno-etatowym wymiarze. Specjalne wyrazy podziękowania dla następujących osób:", "sponsor_message": "Lemmy jest wolnym, <1>otwartoźródłowym</1> oprogramowaniem, bez reklam, opłat, czy innych form kapitalizacji, od zawsze na zawsze. Twoje darowizny idą bezpośrednio na rozwój projektu w pełno-etatowym wymiarze. Specjalne wyrazy podziękowania dla następujących osób:",
"support_on_patreon": "Wspieraj w serwisie Patreon", "support_on_patreon": "Wspieraj w serwisie Patreon",
"support_on_liberapay": "Wspieraj na Liberapay", "support_on_liberapay": "Wspieraj na Liberapay",
"donate_to_lemmy": "Przekaż datek na Lemmiego", "donate_to_lemmy": "Przekaż datek na Lemmiego",
@ -209,7 +209,7 @@
"are_you_sure": "na pewno?", "are_you_sure": "na pewno?",
"no": "nie", "no": "nie",
"powered_by": "Powered by", "powered_by": "Powered by",
"landing": "Lemmy jest <1>agregatorem linków</1> / alternatywą dla reddita. Jest przeznaczony do działania w ramach cyfrowej przestrzeni nazywanej <2>fediverse<2>. <3></3>Opiera się na samodzielnym hostingu, posiada aktualizowane na żywo wątki z komentarzami, i zajmuje bardzo mało miejsce (<4>~80kB</4>). Federacja w ramach sieci ActivityPub jest w planach. <5></5>Ta wersja jest <6>bardzo wczesną wersją beta</6>, co oznacza, że wiele funkcji nadal nie działa tak jak powinny. <7></7><8>Pod tym adresem</8> można sugerować nową funkcjonalność i zgłaszać błędy.<9></9>Stworzono z wykorzystaniem <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.", "landing_0": "Lemmy jest <1>agregatorem linków</1> / alternatywą dla reddita. Jest przeznaczony do działania w ramach cyfrowej przestrzeni nazywanej <2>fediverse</2>. <3></3>Opiera się na samodzielnym hostingu, posiada aktualizowane na żywo wątki z komentarzami, i zajmuje bardzo mało miejsce (<4>~80kB</4>). Federacja w ramach sieci ActivityPub jest w planach. <5></5>Ta wersja jest <6>bardzo wczesną wersją beta</6>, co oznacza, że wiele funkcji nadal nie działa tak jak powinny. <7></7><8>Pod tym adresem</8> można sugerować nową funkcjonalność i zgłaszać błędy.<9></9>Stworzono z wykorzystaniem <10>Rust</10>, <11>Actix</11>, <12>Inferno</12>, <13>Typescript</13>.",
"not_logged_in": "Nie jesteś zalogowana/y.", "not_logged_in": "Nie jesteś zalogowana/y.",
"logged_in": "Zalogowano.", "logged_in": "Zalogowano.",
"community_ban": "Zostałaś/eś zbanowana/y z tej społeczności.", "community_ban": "Zostałaś/eś zbanowana/y z tej społeczności.",
@ -260,5 +260,7 @@
"site_saved": "Witryna Zapisana.", "site_saved": "Witryna Zapisana.",
"admin_settings": "Ustawienia Administratora", "admin_settings": "Ustawienia Administratora",
"emoji_picker": "Wybór Emoji", "emoji_picker": "Wybór Emoji",
"silver_sponsors": "Srebrni Sponsorzy to ci, którzy wpłacili co najmniej $40 na Lemmiego." "silver_sponsors": "Srebrni Sponsorzy to ci, którzy wpłacili co najmniej $40 na Lemmiego.",
"select_a_community": "Wybierz społeczność",
"invalid_username": "Nieprawidłowa nazwa użytkownika."
} }

1
ui/translations/tr.json vendored Normal file
View file

@ -0,0 +1 @@
{}

1
ui/translations/uk.json vendored Normal file
View file

@ -0,0 +1 @@
{}