SlideShare a Scribd company logo
B-Translator
                            as a
     Software Engineering Project

                   Dashamir Hoxha
                    dashohoxha@gmail.com


● Presentation of the project B-Translator
● Illustration of software engineering concepts and practices
What is Software Engineering
●   Soft-Eng = Programing + Project Management
●   Software Engineering tries to make efficient
    and effective the process of developing new
    software, by identifying and trying to use
    principles and practices that have proved to be
    successful on the past projects.
●   It is more like an art than like an exact
    discipline.
Basic development models and steps
●   Development models        ●   Waterfall steps
     –   Waterfall                –   requirements
     –   Iterative and            –   analysis
         incremental              –   design
     –   Agile development        –   implementation
     –   Extreme programing       –   testing
     –   Etc.                     –   deployment
                                  –   maintenance
Requirements:
1 - Conception of the software
●   Why it is needed, what it will be used for?
●   The problems that B-Translator tries to solve
    –   Getting feedback about the translations from a wide
        crowd of people and users.
        ●   votes for the best translation
        ●   a new alternative translation
        ●   a new translation suggestion
    –   Helping to ensure consistency among the translations.
    –   Merging translations from different sources.
●   Are there any existing alternatives
    –   Maybe Pootle?
The meaning of B-Translator
Requirements:
2 - Description of desired features
●   Description of what the software should do and
    how it should do it.
●    The features of B-Translator
    –   Open access
    –   Authenticated voting
    –   Tracking votes
    –   Highly customizable
    –   Evaluating the performance
    –   Detailed and comprehensive reporting and statistics
    –   Integration with the existing workflow of the project
        translations
Analysis:
3 - The functionality in more details
●   Think about how the software should work.
●   Steps of the functional analysis:
    –   identify the actors (users or other
        programs/components that are interacting with our
        software/system)
    –   identify use cases (all the different cases when
        the actors need to interact with our
        software/system)
    –   describe each use case (the details of how each
        interaction is done)
The actors of B-Translator
●   guest (anonymous user)
●   contributor (authenticated user)
●   translator
●   moderator
●   administrator
●   script
●   peer B-Translator installation
The use-cases of B-Translator (1)
●   guest (anonymous user)
    –   get translation suggestions for a string
    –   search strings and translations
    –   export translations
    –   comment on translations
●   contributor (authenticated user)
    –   all the use-cases of guest
    –   customize his own preferences and settings
    –   vote (or like) translations
    –   suggest new translations
    –   flag inappropriate comments or translations
    –   check his own contribution details in a dashboard
The use-cases of B-Translator (2)
●   translator
    –   all the use-cases of contributor
    –   import translation files
    –   export translations and suggestions
●   moderator
    –   all the use-cases of contributor
    –   access statistics and other details
    –   resolve flagged comments and translations
●   administrator
    –   manage overall software configuration
    –   manage user access rights and permissions
The use-cases of B-Translator (3)
●   script
    –   update translation data with the latest versions
    –   notify users about relevant issues
    –   apply suggested translations upstream, wherever
        possible and suitable
●   peer B-Translator installation
    –   request sync data (in case there are several B-
        Translation installations, they should be able to
        synchronize the data with each-other, if needed)
Analysis:
3 - The functionality in more details
●   Describing user interfaces (UI) helps to define
    the functionality.
●   User Interfaces of B-Translator:
    –   search existing strings and translations
    –   vote existing translations or suggest new ones
    –   export/import PO files
    –   Admin interfaces (general config, reports and
        stats, etc.)
    –   User profile (preferencies, settings, etc.)
Design:
4 – Designing the software
●   Design is a description in logical (abstract) terms of the parts and
    components that will make up the software, how they are
    composed, how they interact with each-other, etc.
●   The design usually describes:
    –   database entities and relationships
    –   interfaces of the application (in more details)
    –   APIs (Application Programing Interfaces)
    –   classes, objects and their relationships
    –   the most important processes and algorithms, etc.
●   UML diagrams can be useful again for describing concisely and
    clearly the entities, their relationships and interactions.
●   A good design should try to capture only the most important things,
    leaving out the obvious or unimportant things.
The DB schema of B-Translator
●   The DB tables of B-Translator:
    –   Files: Translation (PO) files that can be imported and exported from the DB.
    –   Templates: POT files that are imported.
    –   Projects: A project is the software/application which is translated by the PO files.
    –   Locations: Locations (lines) where a l10n string is found.
    –   Strings: Translatable strings that are extracted from projects.
    –   Translations: Translations/suggestions of the l10n strings. For each string there
        can be translations for different languages, and more than one translation for each
        language.
    –   Votes: Votes for each translation/suggestion.
    –   Users: Users that contribute translations/suggestions/votes.
    –   Snapshots: Snapshots are tgz archives of project-lng translation files.
    –   Diffs: Diffs between the current state and the last snapshot.
DB Diagram: Tables and their relations.
Structure of the DB (1)
Structure of the DB (2)
Structure of the DB (3)
Implementation:
5 – Development tools and infrastructure
●   Implementation is the process of actually building the
    software. Before the implementation starts, several
    decisions have to be done, like:
    –   what platform to use
    –   what programing language or framework should be used
    –   what database should be used
    –   what tools to use for development
    –   how to coordinate the work of several developers
    –   programing standards to be used
    –   etc.
Development infrastructure of B-Translator

●   web application running on LAMP
    (Linux+Apache+MySQL+PHP)
●   Drupal7 as a development framework
●   Emacs for coding
●   Git on github.com for configuration
    management:
    https://github.com/dashohoxha/B-Translator
●   There is a group/forum/mailing-list B-Translator
    on Google, for notifications, discussions, etc.
●   chatroom #btranslator on irc.freenode.net
6 - Managing the project
●   Software engineering is not just about programing or
    development, but also about project management. Project
    management includes:
    –   making a plan about how we are going to build the software
    –   defining the things or tasks that need to be done
    –   breaking down the tasks into smaller ones
    –   assigning importance or priorities to the tasks
    –   finding inter-dependencies between the tasks
    –   defining milestones and grouping tasks to them
    –   assigning tasks to people, etc
●   The tool that I use for keeping the project organized is the
    mode-org of Emacs (http://orgmode.org)
B-Translator has followed an iterative and
              incremental life cycle
●   The design of the database became more clear only after starting to
    implement it.
●   Actually I had to change the structure of the database several times,
    until it was suitable.
●   Initially I depended on importing the data collected by open-tran.eu.
    However, I decided later to implement my own scripts for getting
    translation files and importing them on the DB.
●   Integration with the existing workflow of the project translations was
    something that occurred to me later, after I had started
    implementation.
●   Integration required the ability to import and export PO files, and this
    made me add some extra tables for keeping the relevant information.
●   Initially I did not think about the possibility of exporting diff (and ediff)
    files. After deciding to implement such a feature, I had to add a few
    more tables in the design of the database.
●   The possibility for appending comments to each translation was
    suggested to me by one of the translators.
How to install B-Translator
●   Install the Drupal7 profile btranslator:
     cd /var/www/
     sudo git clone https://github.com/dashohoxha/B-Translator.git
     sudo B-Translator/install/all.sh

●   Apache configuration:
      ### directory where application is installed
      <Directory /var/www/l10n-dev/>
        Options Indexes FollowSymLinks MultiViews
        # AllowOverride None
        AllowOverride All ### this is needed for clean URLs
        Order allow,deny
        allow from all
      </Directory>
Documentation:
How B-Translator works
The process/workflow for a project without translation:

   1. Checkout POT files from the repository of the project.
   2. Import them into the DB.
   3. Over some time, collect translation suggestions from the users.
     These translations can also be reviewed and evaluated by other
     users.
   4. Export the PO files from the DB.
   5. Review, fix and reformat them as needed.
   6. Upload/commit the PO files into the repository of the project.
   7. When a new POT file is released, start over again from the
     beginning (but this time we also import the PO file, besides the
     POT file).
Documentation:
How B-Translator works
The process/workflow for the case when the feedback provided by the
system is integrated in the mainstream translation:

   1. Checkout the latest version of the POT and PO files from the repository of
      the project.
   2. Import POT files and PO files into the DB.
   3. Over some time, collect votes and new translation suggestions from the
      users.
   4. Time after time (for example each month), the mainstream translator
      checks out the last diffs, containing the latest suggestions (and makes a
      snapshot as well).
   5. The translator reviews the latest suggestions and applies them in the
      mainstream translation, if he finds them appropriate.
   6. Periodically (for example once or twice a year) go back to steps (1) and
      (2) and import the POT and PO files again. This re-import may introduce
      new strings and translations, but will not affect the existing strings,
      translations and votes.
Some software development
                general principles and advices
●   First make it work, then make it better.
    –   Build a working prototype, then improve it by incremental changes.
●   Don't break the code, keep it always running.
    –   Don't push anything without testing it thoroughly.
    –   If possible apply automated testing.
    –   Apply zero tolerance to bugs and errors.
●   Solve first the most risky problems.
●   Be transparent with users and stakeholders.
    –   Involve users since the early stages.
    –   Release early, release often.
    –   Try to build a community.
●   Write code for other people.
    –   Write clean and readable code.
    –   Comment properly.
    –   Don't neglect documentation.
Where is used B-Translator
●   There is a working demo/testing site at:
      https://l10n.org.al/translations/
●   The main goal of the site is to help the process of
    translating programs into Albanian.
●   It also serves as a testbed for B-Translator.

●   If you would like to help, register there and give your
    feedback for translations and for B-Translator.

●   If you would like to help for developing B-Translator,
    contact me at: dashohoxha@gmail.com

More Related Content

What's hot

Principles of programming languages. Detail notes
Principles of programming languages. Detail notesPrinciples of programming languages. Detail notes
Principles of programming languages. Detail notes
VIKAS SINGH BHADOURIA
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programming
Rob Paok
 
Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)
Rajkumar Pawar
 
Introduction to programming principles languages
Introduction to programming principles languagesIntroduction to programming principles languages
Introduction to programming principles languages
Frankie Jones
 
Cd unit i
Cd unit iCd unit i
Cd unit i
Abhimanyu Mishra
 
Programming languages
Programming languagesProgramming languages
Programming languages
MuntasirMuhit
 
PROGRAMMING AND LANGUAGES
PROGRAMMING AND LANGUAGES  PROGRAMMING AND LANGUAGES
Programming Languages
Programming Languages Programming Languages
Programming Languages
knowledge1995
 
Logic Formulation 1
Logic Formulation 1Logic Formulation 1
Logic Formulation 1
deathful
 
C programming
C programmingC programming
C programming
Anurag Byala
 
03 the c language
03 the c language03 the c language
03 the c language
arafatmirza
 
Chap1
Chap1Chap1
Logical programming languages and functional programming languages
Logical programming languages and functional programming languagesLogical programming languages and functional programming languages
Logical programming languages and functional programming languages
nahianzarif
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulation
Sara Corpuz
 
Organizing Libreplan free software project
Organizing Libreplan free software projectOrganizing Libreplan free software project
Organizing Libreplan free software project
LibrePlan Open Web Planning
 
programming and languages (chapter 14)
programming and languages (chapter 14)programming and languages (chapter 14)
programming and languages (chapter 14)
Fadilah Badari
 
Cmp2412 programming principles
Cmp2412 programming principlesCmp2412 programming principles
Cmp2412 programming principles
NIKANOR THOMAS
 
Lo 20
Lo 20Lo 20
Lo 20
liankei
 
Game development (Game Architecture)
Game development (Game Architecture)Game development (Game Architecture)
Game development (Game Architecture)
Rajkumar Pawar
 
2.2. language evaluation criteria
2.2. language evaluation criteria2.2. language evaluation criteria
2.2. language evaluation criteria
annahallare_
 

What's hot (20)

Principles of programming languages. Detail notes
Principles of programming languages. Detail notesPrinciples of programming languages. Detail notes
Principles of programming languages. Detail notes
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programming
 
Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)Initial Architectural Design (Game Architecture)
Initial Architectural Design (Game Architecture)
 
Introduction to programming principles languages
Introduction to programming principles languagesIntroduction to programming principles languages
Introduction to programming principles languages
 
Cd unit i
Cd unit iCd unit i
Cd unit i
 
Programming languages
Programming languagesProgramming languages
Programming languages
 
PROGRAMMING AND LANGUAGES
PROGRAMMING AND LANGUAGES  PROGRAMMING AND LANGUAGES
PROGRAMMING AND LANGUAGES
 
Programming Languages
Programming Languages Programming Languages
Programming Languages
 
Logic Formulation 1
Logic Formulation 1Logic Formulation 1
Logic Formulation 1
 
C programming
C programmingC programming
C programming
 
03 the c language
03 the c language03 the c language
03 the c language
 
Chap1
Chap1Chap1
Chap1
 
Logical programming languages and functional programming languages
Logical programming languages and functional programming languagesLogical programming languages and functional programming languages
Logical programming languages and functional programming languages
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulation
 
Organizing Libreplan free software project
Organizing Libreplan free software projectOrganizing Libreplan free software project
Organizing Libreplan free software project
 
programming and languages (chapter 14)
programming and languages (chapter 14)programming and languages (chapter 14)
programming and languages (chapter 14)
 
Cmp2412 programming principles
Cmp2412 programming principlesCmp2412 programming principles
Cmp2412 programming principles
 
Lo 20
Lo 20Lo 20
Lo 20
 
Game development (Game Architecture)
Game development (Game Architecture)Game development (Game Architecture)
Game development (Game Architecture)
 
2.2. language evaluation criteria
2.2. language evaluation criteria2.2. language evaluation criteria
2.2. language evaluation criteria
 

Viewers also liked

Presentacion abaitua
Presentacion abaituaPresentacion abaitua
Presentacion abaitua
sircana04
 
Translators
TranslatorsTranslators
Translators
MrsEhm
 
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
Inflectiontech Ltd
 
Computer generation and language translator
Computer generation and language translatorComputer generation and language translator
Computer generation and language translator
Shruti Pendharkar
 
Natural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityNatural Interfaces for Augmented Reality
Natural Interfaces for Augmented Reality
Mark Billinghurst
 
Civil Engineering Project Presentation
Civil Engineering Project PresentationCivil Engineering Project Presentation
Civil Engineering Project Presentation
Ibrahim Ali
 
Earpiece Language Translator
Earpiece Language Translator   Earpiece Language Translator
Earpiece Language Translator
isarevi
 
pH meter design and working principle
pH meter design and working principlepH meter design and working principle
pH meter design and working principle
Shreya Ahuja
 
Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project Presentation
Ghulam Mustafa Vira
 
19 Final Slide Ideas for Concluding Your Presentation
19 Final Slide Ideas for Concluding Your Presentation19 Final Slide Ideas for Concluding Your Presentation
19 Final Slide Ideas for Concluding Your Presentation
Strongpages
 
Presentation on project report
Presentation on project reportPresentation on project report
Presentation on project report
ramesh_x
 

Viewers also liked (11)

Presentacion abaitua
Presentacion abaituaPresentacion abaitua
Presentacion abaitua
 
Translators
TranslatorsTranslators
Translators
 
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
DCD London 2016 - OCP Data Center Project Engineering Workshop Presentation D...
 
Computer generation and language translator
Computer generation and language translatorComputer generation and language translator
Computer generation and language translator
 
Natural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityNatural Interfaces for Augmented Reality
Natural Interfaces for Augmented Reality
 
Civil Engineering Project Presentation
Civil Engineering Project PresentationCivil Engineering Project Presentation
Civil Engineering Project Presentation
 
Earpiece Language Translator
Earpiece Language Translator   Earpiece Language Translator
Earpiece Language Translator
 
pH meter design and working principle
pH meter design and working principlepH meter design and working principle
pH meter design and working principle
 
Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project Presentation
 
19 Final Slide Ideas for Concluding Your Presentation
19 Final Slide Ideas for Concluding Your Presentation19 Final Slide Ideas for Concluding Your Presentation
19 Final Slide Ideas for Concluding Your Presentation
 
Presentation on project report
Presentation on project reportPresentation on project report
Presentation on project report
 

Similar to B-Translator as a Software Engineering Project

Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
yaminohime
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
SADEED AMEEN
 
Bba i-introduction to computer-u-2- application and system software
Bba  i-introduction to computer-u-2- application and system softwareBba  i-introduction to computer-u-2- application and system software
Bba i-introduction to computer-u-2- application and system software
Rai University
 
Unit 2 computer software
Unit 2 computer softwareUnit 2 computer software
Unit 2 computer software
Hardik Patel
 
Lean translation management for better results
Lean translation management for better resultsLean translation management for better results
Lean translation management for better results
LingoHub
 
Bca i-fundamental of computer-u-2- application and system software
Bca  i-fundamental of  computer-u-2- application and system softwareBca  i-fundamental of  computer-u-2- application and system software
Bca i-fundamental of computer-u-2- application and system software
Rai University
 
Bsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareBsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system software
Rai University
 
SudhanshuKumar
SudhanshuKumarSudhanshuKumar
SudhanshuKumar
Sudhanshu Kumar
 
Mca i-fundamental of computer-u-2- application and system software
Mca  i-fundamental of  computer-u-2- application and system softwareMca  i-fundamental of  computer-u-2- application and system software
Mca i-fundamental of computer-u-2- application and system software
Rai University
 
Hotel management
Hotel managementHotel management
Hotel management
Nishant Bhardwaj
 
B-Translator as a Software Engineering Project
B-Translator as a Software Engineering ProjectB-Translator as a Software Engineering Project
B-Translator as a Software Engineering Project
Dashamir Hoxha
 
Software Development presentation basic only
Software Development presentation basic onlySoftware Development presentation basic only
Software Development presentation basic only
AbhishekMishra498106
 
Mba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareMba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer software
Rai University
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
Asst.prof M.Gokilavani
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web Development
Burhan Khalid
 
Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5
hepeiwei
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
Mahmoud Samir Fayed
 
Software engineering
Software engineeringSoftware engineering
Software engineering
Xavient Information Systems
 
Computer Program- Introduction, characteristics and stages
Computer Program- Introduction, characteristics and stagesComputer Program- Introduction, characteristics and stages
Computer Program- Introduction, characteristics and stages
Anjali Technosoft
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers way
Alex Baitov
 

Similar to B-Translator as a Software Engineering Project (20)

Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
Understanding Computers: Today and Tomorrow, 13th Edition Chapter 13 - Progra...
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Bba i-introduction to computer-u-2- application and system software
Bba  i-introduction to computer-u-2- application and system softwareBba  i-introduction to computer-u-2- application and system software
Bba i-introduction to computer-u-2- application and system software
 
Unit 2 computer software
Unit 2 computer softwareUnit 2 computer software
Unit 2 computer software
 
Lean translation management for better results
Lean translation management for better resultsLean translation management for better results
Lean translation management for better results
 
Bca i-fundamental of computer-u-2- application and system software
Bca  i-fundamental of  computer-u-2- application and system softwareBca  i-fundamental of  computer-u-2- application and system software
Bca i-fundamental of computer-u-2- application and system software
 
Bsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareBsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system software
 
SudhanshuKumar
SudhanshuKumarSudhanshuKumar
SudhanshuKumar
 
Mca i-fundamental of computer-u-2- application and system software
Mca  i-fundamental of  computer-u-2- application and system softwareMca  i-fundamental of  computer-u-2- application and system software
Mca i-fundamental of computer-u-2- application and system software
 
Hotel management
Hotel managementHotel management
Hotel management
 
B-Translator as a Software Engineering Project
B-Translator as a Software Engineering ProjectB-Translator as a Software Engineering Project
B-Translator as a Software Engineering Project
 
Software Development presentation basic only
Software Development presentation basic onlySoftware Development presentation basic only
Software Development presentation basic only
 
Mba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer softwareMba i-ifm-u-2-computer software
Mba i-ifm-u-2-computer software
 
Unit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptxUnit 1_Evaluation Criteria_session 3.pptx
Unit 1_Evaluation Criteria_session 3.pptx
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web Development
 
Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5Introduction to domino_global_workbench_8.5
Introduction to domino_global_workbench_8.5
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Computer Program- Introduction, characteristics and stages
Computer Program- Introduction, characteristics and stagesComputer Program- Introduction, characteristics and stages
Computer Program- Introduction, characteristics and stages
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers way
 

More from Dashamir Hoxha

Easy Blogging With Emacs -- Cheatsheet
Easy Blogging With Emacs -- CheatsheetEasy Blogging With Emacs -- Cheatsheet
Easy Blogging With Emacs -- Cheatsheet
Dashamir Hoxha
 
Autobiography of Benjamin Franklin
Autobiography of Benjamin FranklinAutobiography of Benjamin Franklin
Autobiography of Benjamin Franklin
Dashamir Hoxha
 
Easy Blogging With Emacs
Easy Blogging With EmacsEasy Blogging With Emacs
Easy Blogging With Emacs
Dashamir Hoxha
 
Easy Blogging With Emacs
Easy Blogging With EmacsEasy Blogging With Emacs
Easy Blogging With Emacs
Dashamir Hoxha
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-Translator
Dashamir Hoxha
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-Translator
Dashamir Hoxha
 
IT Strategy of Albanian Customs
IT Strategy of Albanian CustomsIT Strategy of Albanian Customs
IT Strategy of Albanian Customs
Dashamir Hoxha
 
Strategjia për IT-në e Doganës Shqiptare
Strategjia për IT-në e Doganës ShqiptareStrategjia për IT-në e Doganës Shqiptare
Strategjia për IT-në e Doganës Shqiptare
Dashamir Hoxha
 
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as Service
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as ServiceCertificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as Service
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as Service
Dashamir Hoxha
 
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...
Dashamir Hoxha
 
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...
Dashamir Hoxha
 
Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...
Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...
Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...
Dashamir Hoxha
 
Udhëzuesi i Kturtle
Udhëzuesi i KturtleUdhëzuesi i Kturtle
Udhëzuesi i Kturtle
Dashamir Hoxha
 
PPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusPPPoE With Mikrotik and Radius
PPPoE With Mikrotik and Radius
Dashamir Hoxha
 
PPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusPPPoE With Mikrotik and Radius
PPPoE With Mikrotik and Radius
Dashamir Hoxha
 
Using OpenFire With OpenLDAP
Using OpenFire With OpenLDAPUsing OpenFire With OpenLDAP
Using OpenFire With OpenLDAP
Dashamir Hoxha
 
phpWebApp presentation
phpWebApp presentationphpWebApp presentation
phpWebApp presentation
Dashamir Hoxha
 
phpWebApp article
phpWebApp articlephpWebApp article
phpWebApp article
Dashamir Hoxha
 
Managing HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusManaging HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadius
Dashamir Hoxha
 
The Digital Signature and the X.509/OpenPGP Authentication Models
The Digital Signature and the X.509/OpenPGP Authentication ModelsThe Digital Signature and the X.509/OpenPGP Authentication Models
The Digital Signature and the X.509/OpenPGP Authentication Models
Dashamir Hoxha
 

More from Dashamir Hoxha (20)

Easy Blogging With Emacs -- Cheatsheet
Easy Blogging With Emacs -- CheatsheetEasy Blogging With Emacs -- Cheatsheet
Easy Blogging With Emacs -- Cheatsheet
 
Autobiography of Benjamin Franklin
Autobiography of Benjamin FranklinAutobiography of Benjamin Franklin
Autobiography of Benjamin Franklin
 
Easy Blogging With Emacs
Easy Blogging With EmacsEasy Blogging With Emacs
Easy Blogging With Emacs
 
Easy Blogging With Emacs
Easy Blogging With EmacsEasy Blogging With Emacs
Easy Blogging With Emacs
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-Translator
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-Translator
 
IT Strategy of Albanian Customs
IT Strategy of Albanian CustomsIT Strategy of Albanian Customs
IT Strategy of Albanian Customs
 
Strategjia për IT-në e Doganës Shqiptare
Strategjia për IT-në e Doganës ShqiptareStrategjia për IT-në e Doganës Shqiptare
Strategjia për IT-në e Doganës Shqiptare
 
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as Service
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as ServiceCertificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as Service
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.1x Software as Service
 
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS188.1x Artificial Intelli...
 
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...
Certificate -- Dashamir Hoxha -- edX/BerkeleyX -- CS169.2x Advanced Software ...
 
Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...
Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...
Certificate -- Dashamir Hoxha -- edX/MITx -- 6.00x Introduction to Computer S...
 
Udhëzuesi i Kturtle
Udhëzuesi i KturtleUdhëzuesi i Kturtle
Udhëzuesi i Kturtle
 
PPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusPPPoE With Mikrotik and Radius
PPPoE With Mikrotik and Radius
 
PPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusPPPoE With Mikrotik and Radius
PPPoE With Mikrotik and Radius
 
Using OpenFire With OpenLDAP
Using OpenFire With OpenLDAPUsing OpenFire With OpenLDAP
Using OpenFire With OpenLDAP
 
phpWebApp presentation
phpWebApp presentationphpWebApp presentation
phpWebApp presentation
 
phpWebApp article
phpWebApp articlephpWebApp article
phpWebApp article
 
Managing HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusManaging HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadius
 
The Digital Signature and the X.509/OpenPGP Authentication Models
The Digital Signature and the X.509/OpenPGP Authentication ModelsThe Digital Signature and the X.509/OpenPGP Authentication Models
The Digital Signature and the X.509/OpenPGP Authentication Models
 

Recently uploaded

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
Pixlogix Infotech
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website20 Comprehensive Checklist of Designing and Developing a Website
20 Comprehensive Checklist of Designing and Developing a Website
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

B-Translator as a Software Engineering Project

  • 1. B-Translator as a Software Engineering Project Dashamir Hoxha dashohoxha@gmail.com ● Presentation of the project B-Translator ● Illustration of software engineering concepts and practices
  • 2. What is Software Engineering ● Soft-Eng = Programing + Project Management ● Software Engineering tries to make efficient and effective the process of developing new software, by identifying and trying to use principles and practices that have proved to be successful on the past projects. ● It is more like an art than like an exact discipline.
  • 3. Basic development models and steps ● Development models ● Waterfall steps – Waterfall – requirements – Iterative and – analysis incremental – design – Agile development – implementation – Extreme programing – testing – Etc. – deployment – maintenance
  • 4. Requirements: 1 - Conception of the software ● Why it is needed, what it will be used for? ● The problems that B-Translator tries to solve – Getting feedback about the translations from a wide crowd of people and users. ● votes for the best translation ● a new alternative translation ● a new translation suggestion – Helping to ensure consistency among the translations. – Merging translations from different sources. ● Are there any existing alternatives – Maybe Pootle?
  • 5. The meaning of B-Translator
  • 6. Requirements: 2 - Description of desired features ● Description of what the software should do and how it should do it. ● The features of B-Translator – Open access – Authenticated voting – Tracking votes – Highly customizable – Evaluating the performance – Detailed and comprehensive reporting and statistics – Integration with the existing workflow of the project translations
  • 7. Analysis: 3 - The functionality in more details ● Think about how the software should work. ● Steps of the functional analysis: – identify the actors (users or other programs/components that are interacting with our software/system) – identify use cases (all the different cases when the actors need to interact with our software/system) – describe each use case (the details of how each interaction is done)
  • 8. The actors of B-Translator ● guest (anonymous user) ● contributor (authenticated user) ● translator ● moderator ● administrator ● script ● peer B-Translator installation
  • 9. The use-cases of B-Translator (1) ● guest (anonymous user) – get translation suggestions for a string – search strings and translations – export translations – comment on translations ● contributor (authenticated user) – all the use-cases of guest – customize his own preferences and settings – vote (or like) translations – suggest new translations – flag inappropriate comments or translations – check his own contribution details in a dashboard
  • 10. The use-cases of B-Translator (2) ● translator – all the use-cases of contributor – import translation files – export translations and suggestions ● moderator – all the use-cases of contributor – access statistics and other details – resolve flagged comments and translations ● administrator – manage overall software configuration – manage user access rights and permissions
  • 11. The use-cases of B-Translator (3) ● script – update translation data with the latest versions – notify users about relevant issues – apply suggested translations upstream, wherever possible and suitable ● peer B-Translator installation – request sync data (in case there are several B- Translation installations, they should be able to synchronize the data with each-other, if needed)
  • 12.
  • 13. Analysis: 3 - The functionality in more details ● Describing user interfaces (UI) helps to define the functionality. ● User Interfaces of B-Translator: – search existing strings and translations – vote existing translations or suggest new ones – export/import PO files – Admin interfaces (general config, reports and stats, etc.) – User profile (preferencies, settings, etc.)
  • 14. Design: 4 – Designing the software ● Design is a description in logical (abstract) terms of the parts and components that will make up the software, how they are composed, how they interact with each-other, etc. ● The design usually describes: – database entities and relationships – interfaces of the application (in more details) – APIs (Application Programing Interfaces) – classes, objects and their relationships – the most important processes and algorithms, etc. ● UML diagrams can be useful again for describing concisely and clearly the entities, their relationships and interactions. ● A good design should try to capture only the most important things, leaving out the obvious or unimportant things.
  • 15. The DB schema of B-Translator ● The DB tables of B-Translator: – Files: Translation (PO) files that can be imported and exported from the DB. – Templates: POT files that are imported. – Projects: A project is the software/application which is translated by the PO files. – Locations: Locations (lines) where a l10n string is found. – Strings: Translatable strings that are extracted from projects. – Translations: Translations/suggestions of the l10n strings. For each string there can be translations for different languages, and more than one translation for each language. – Votes: Votes for each translation/suggestion. – Users: Users that contribute translations/suggestions/votes. – Snapshots: Snapshots are tgz archives of project-lng translation files. – Diffs: Diffs between the current state and the last snapshot.
  • 16. DB Diagram: Tables and their relations.
  • 20. Implementation: 5 – Development tools and infrastructure ● Implementation is the process of actually building the software. Before the implementation starts, several decisions have to be done, like: – what platform to use – what programing language or framework should be used – what database should be used – what tools to use for development – how to coordinate the work of several developers – programing standards to be used – etc.
  • 21. Development infrastructure of B-Translator ● web application running on LAMP (Linux+Apache+MySQL+PHP) ● Drupal7 as a development framework ● Emacs for coding ● Git on github.com for configuration management: https://github.com/dashohoxha/B-Translator ● There is a group/forum/mailing-list B-Translator on Google, for notifications, discussions, etc. ● chatroom #btranslator on irc.freenode.net
  • 22. 6 - Managing the project ● Software engineering is not just about programing or development, but also about project management. Project management includes: – making a plan about how we are going to build the software – defining the things or tasks that need to be done – breaking down the tasks into smaller ones – assigning importance or priorities to the tasks – finding inter-dependencies between the tasks – defining milestones and grouping tasks to them – assigning tasks to people, etc ● The tool that I use for keeping the project organized is the mode-org of Emacs (http://orgmode.org)
  • 23. B-Translator has followed an iterative and incremental life cycle ● The design of the database became more clear only after starting to implement it. ● Actually I had to change the structure of the database several times, until it was suitable. ● Initially I depended on importing the data collected by open-tran.eu. However, I decided later to implement my own scripts for getting translation files and importing them on the DB. ● Integration with the existing workflow of the project translations was something that occurred to me later, after I had started implementation. ● Integration required the ability to import and export PO files, and this made me add some extra tables for keeping the relevant information. ● Initially I did not think about the possibility of exporting diff (and ediff) files. After deciding to implement such a feature, I had to add a few more tables in the design of the database. ● The possibility for appending comments to each translation was suggested to me by one of the translators.
  • 24. How to install B-Translator ● Install the Drupal7 profile btranslator: cd /var/www/ sudo git clone https://github.com/dashohoxha/B-Translator.git sudo B-Translator/install/all.sh ● Apache configuration: ### directory where application is installed <Directory /var/www/l10n-dev/> Options Indexes FollowSymLinks MultiViews # AllowOverride None AllowOverride All ### this is needed for clean URLs Order allow,deny allow from all </Directory>
  • 25. Documentation: How B-Translator works The process/workflow for a project without translation: 1. Checkout POT files from the repository of the project. 2. Import them into the DB. 3. Over some time, collect translation suggestions from the users. These translations can also be reviewed and evaluated by other users. 4. Export the PO files from the DB. 5. Review, fix and reformat them as needed. 6. Upload/commit the PO files into the repository of the project. 7. When a new POT file is released, start over again from the beginning (but this time we also import the PO file, besides the POT file).
  • 26. Documentation: How B-Translator works The process/workflow for the case when the feedback provided by the system is integrated in the mainstream translation: 1. Checkout the latest version of the POT and PO files from the repository of the project. 2. Import POT files and PO files into the DB. 3. Over some time, collect votes and new translation suggestions from the users. 4. Time after time (for example each month), the mainstream translator checks out the last diffs, containing the latest suggestions (and makes a snapshot as well). 5. The translator reviews the latest suggestions and applies them in the mainstream translation, if he finds them appropriate. 6. Periodically (for example once or twice a year) go back to steps (1) and (2) and import the POT and PO files again. This re-import may introduce new strings and translations, but will not affect the existing strings, translations and votes.
  • 27. Some software development general principles and advices ● First make it work, then make it better. – Build a working prototype, then improve it by incremental changes. ● Don't break the code, keep it always running. – Don't push anything without testing it thoroughly. – If possible apply automated testing. – Apply zero tolerance to bugs and errors. ● Solve first the most risky problems. ● Be transparent with users and stakeholders. – Involve users since the early stages. – Release early, release often. – Try to build a community. ● Write code for other people. – Write clean and readable code. – Comment properly. – Don't neglect documentation.
  • 28. Where is used B-Translator ● There is a working demo/testing site at: https://l10n.org.al/translations/ ● The main goal of the site is to help the process of translating programs into Albanian. ● It also serves as a testbed for B-Translator. ● If you would like to help, register there and give your feedback for translations and for B-Translator. ● If you would like to help for developing B-Translator, contact me at: dashohoxha@gmail.com