Language • The Trainslate Suite

The software Trainslate facilitates the habituation to foreign language vocabulary and expressions. The development commenced as I started to study Mandarin. Friends asked me to create additional specimen for more languages: German, Tajik, etc. Further development and testing continued over a period of more than a year. By now, Trainslate has evolved into a mature open-source software project with over 423 kB of Java code.

The software prints out sheets of vocabulary exercise that are personalized to your progress. Words and terms that you have difficulties remembering are asked repeatedly until you translate them correctly. Use Trainslate to enhance your skills in one of the languages listed!


读万卷书不如行万里路
proverb

Details about the Trainslate engine:

Lo que dicen las palabras no dura.
Las palabras permanecen.
Las palabras son siempre las mismas
pero lo que dicen nunca es igual.
Antonio Porchia

International Calendar from a Personal Photo Album

In order to share photos of mine in form of a calendar for friends and relatives, I made a software that engraves name of month, and weekdays into the pictures in a minimum invasive fashion. Also, I wanted each photo to feature one famous quote or proverb.

International calendar from personal photo album * Calendar.zip 17 kB
Calendar (two page sample) calendar.pdf 600 kB
* source code in Matlab and Java. The code requires a small adaptation to process your own photos

Here is the Matlab code that blends the black/white mask with the image. The objective is to filter sharp features within the letters, but preserve the overall hue.


letters pick up background
function IMG=insert(IMG,MSK,sgn)

IMG=double(IMG)/255;
MSK=MSK(:,:,1);
MSK=1-double(MSK)/255;

% blur image (otherwise edges/contrast appear in script)
BLR=convn(IMG,fspecial('disk',27),'same');
% blur mask to blend font mask
STN=convn(MSK,fspecial('disk',27),'same');
fac=max(max(STN));
STN=STN/fac;
STN=max(STN,MSK);

MSK=repmat(MSK,[1 1 3]);
STN=repmat(STN,[1 1 3]);

IMG=IMG.*(1-STN)+BLR.*(STN); % blend image with blurred image

switch sgn
case 0
  IMG=IMG-STN*0.5+MSK*0.6; % bright gnd
case 1
  IMG=IMG+STN*0.5-MSK*0.6; % dark gnd
otherwise
  disp('ERROR select sgn!!!')
end

IMG=uint8(IMG*255);
No questions is ever settled
until it's settled right.
Ella Wheeler Wilcox

The Trainslate Suite is a genuine product of Western Australia.