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

translation text longer than ~700 chars bug #9

Open
VladaHejda opened this issue Dec 1, 2014 · 2 comments
Open

translation text longer than ~700 chars bug #9

VladaHejda opened this issue Dec 1, 2014 · 2 comments
Labels

Comments

@VladaHejda
Copy link
Owner

Ahoj,
doufám že ti nevadí že ti rovnou tykám, ale jsem nettař z neťácký komunity, tak snad to nevadí, kdyby jo, řekni si.

via [email protected]

Chtěl jsem ti jednak poděkovat za LiveTranslátor, je to super věc, ale ač nerad, objevil jsem jeden bug.

Teď na novém projektu ho využíváme a máme tam Nette 2.2.2 a tvůj LiveTrasnlátor 1.0.0-RC.
Chyba nastává, když překládáme text delší než ~700 znaků (nevím úplně přesně). Pak mi to vrátí 101:ERR_CONNECTION_RESET.

Jenom jsem ti o tom chtěl říct, abys o tom věděl. Samozřejmě není problém ten řetězec rozdělit.

Tak ti přeji pěkný den.

Michal Odcházel, jednatel
Litea Solution s.r.o.
777030589

@VladaHejda VladaHejda added the bug label Dec 1, 2014
@patrickkusebauch
Copy link

Při použití datábáze a dodaného skriptu (NetteDatabase.createTable.namespaced.sql) je problém už u textů delších než 255 znaků. Na vině je sloupec localization.translation a jeho maximální délka. Osobně jsem to vyřešil změnou z varchar na text

@miloslavkostir
Copy link

Na vině je kromě sloupce localization.translation také sloupec localization_text.text - stejně jako petrickkusebauch jsem oba sloupce změnil na text, pak ale přijde problém s UNIQUE indexem v tabulce localization_text. Vytvořil jsem tedy další sloupec localization_text.hash, kde se ukládá md5 hash ze sloupců localization_text.ns a localization_text.text. Na tento sloupec jsem pak nastavil UNIQUE index.

Pro vytváření md5 hashe jsem si v DB vytvořil triggery

Tabulka pak vypadá asi takhle:

CREATE TABLE `localization_text` (
  `id` int(1) UNSIGNED NOT NULL AUTO_INCREMENT,
  `ns` varchar(24) NULL,
  `text` text NOT NULL,
  `hash` varchar(32) NOT NULL,
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE (`hash`)
) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_bin COMMENT='default texts for translations';

DELIMITER ;;

CREATE TRIGGER `LocalizationTextInsertHash` BEFORE INSERT ON `localization_text` FOR EACH ROW
SET NEW.hash = MD5(CONCAT(NEW.ns, NEW.text));;

CREATE TRIGGER `LocalizationTextUpdateHash` BEFORE UPDATE ON `localization_text` FOR EACH ROW
SET NEW.hash = MD5(CONCAT(NEW.ns, NEW.text));;

DELIMITER ;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants