[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| 
Re: [babel-dev] Translations and Project Versions
 | 
Gabe,
Thanks for the update. 
As per todays' call, I'm not sure we all agree with the project/version 
layout that is suggested below.  As Kit mentioned, his design idea calls 
for each version to have its own set of translatable strings, with the 
import process dealing with the merge. Kit's idea also allows for newer 
versions to drop strings that were there in past versions. 
My vote is to leave the project/version/string setup as-is: each version 
with its own set of translatable strings.
Thanks,
Denis
Gabe O'Brien wrote:
Greetings Bablers,
   With the new year ahead of us and holidays behind us it is time to 
peer into the future and see what we can do to get babel up and 
running.   I am starting by reworking the database a bit.  My goal is 
to change the database as little as possible while making the future 
better.
   The basic issue I am running into has to do with projects and 
versions.  The importing spec that we have been following 
(http://wiki.eclipse.org/Babel_/_Server_Tool_Specification) (*note 
this is a new location for this wiki page) doesn't really address 
versions for projects.
   What seems to make sense to me is that  when importing an English 
string (Bar) for project Foo version 1 we should only have one copy of 
'Bar' for all future release of Foo (version 2,3,4..).   This side 
effect of this is will be if we change the translation of Bar it will 
be changed in ALL versions of Foo.
   One way  to handle this would be to treat each Project/Version as 
if it were is own project.  So when we import a new .property file we 
look at each key/value pair and see if that key/value/filepath already 
exists (in the srtings table), if so we use it.  If not we add a new 
entry into the strings table.
   This requires adding a new table (call it filestrings) that will 
map all the incoming strings from a file (hence the clever name).  
This new table will simply hold 2 keys one to the file table, and one 
to the strings table.
    Below is the old merge algorithm and below that is my new proposed 
algorithm.
====Input Merge==== (OLD)
# For each key-value in the Babel database, check if the key exists in 
the input. If not, delete the key-value from the Babel database 
(saving it in the audit trail and history), of course.
# For each key-value in the input, check if the key exists in the 
Babel database.
## If so, check if the value is the same.
### If so, no action.
### If not, replace the value and mark all translations as potentially 
incorrect.
## If not, add the key and value to the Babel database.
====Input Merge==== (PROPOSED *note has a new table filestrings)
#For each key-value in the input
## if key-value exist in strings table and is from the same file
### True add link from filestrings table to the existing entry in the 
strings table
### If not, insert a new key and value into strings table and make 
link in filestrings
  If anyone has input or concerns please let us know.  The current 
database schema can be found in CVS for the babel project (the file is 
'babel-setup.sql').
Thanks,
Gabe O'Brien
Darn Good Developer
The Eclipse Foundation
_______________________________________________
babel-dev mailing list
babel-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/babel-dev
--
Denis Roy
Manager, IT Infrastructure
Eclipse Foundation, Inc.  --  http://www.eclipse.org/
Office: 613.224.9461 x224 (Eastern time)
Cell: 819.210.6481
denis.roy@xxxxxxxxxxx