SlideShare a Scribd company logo
1 of 28
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 notesVIKAS SINGH BHADOURIA
 
Principles of programming
Principles of programmingPrinciples of programming
Principles of programmingRob 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 languagesFrankie Jones
 
Programming languages
Programming languagesProgramming languages
Programming languagesMuntasirMuhit
 
Programming Languages
Programming Languages Programming Languages
Programming Languages knowledge1995
 
Logic Formulation 1
Logic Formulation 1Logic Formulation 1
Logic Formulation 1deathful
 
03 the c language
03 the c language03 the c language
03 the c languagearafatmirza
 
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 languagesnahianzarif
 
Program logic formulation
Program logic formulationProgram logic formulation
Program logic formulationSara Corpuz
 
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 principlesNIKANOR THOMAS
 
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 criteriaannahallare_
 

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 abaituasircana04
 
Translators
TranslatorsTranslators
TranslatorsMrsEhm
 
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 translatorShruti Pendharkar
 
Natural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityNatural Interfaces for Augmented Reality
Natural Interfaces for Augmented RealityMark Billinghurst
 
Civil Engineering Project Presentation
Civil Engineering Project PresentationCivil Engineering Project Presentation
Civil Engineering Project PresentationIbrahim 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 principleShreya Ahuja
 
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 PresentationStrongpages
 
Presentation on project report
Presentation on project reportPresentation on project report
Presentation on project reportramesh_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 EngineeringSADEED 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 softwareRai University
 
Unit 2 computer software
Unit 2 computer softwareUnit 2 computer software
Unit 2 computer softwareHardik Patel
 
Lean translation management for better results
Lean translation management for better resultsLean translation management for better results
Lean translation management for better resultsLingoHub
 
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 softwareRai 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 softwareRai University
 
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 softwareRai University
 
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 ProjectDashamir Hoxha
 
Software Development presentation basic only
Software Development presentation basic onlySoftware Development presentation basic only
Software Development presentation basic onlyAbhishekMishra498106
 
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 softwareRai 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.pptxAsst.prof M.Gokilavani
 
Basic Introduction to Web Development
Basic Introduction to Web DevelopmentBasic Introduction to Web Development
Basic Introduction to Web DevelopmentBurhan 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.5hepeiwei
 
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 189Mahmoud Samir Fayed
 
Computer Program- Introduction, characteristics and stages
Computer Program- Introduction, characteristics and stagesComputer Program- Introduction, characteristics and stages
Computer Program- Introduction, characteristics and stagesAnjali Technosoft
 
Code, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayCode, ci, infrastructure - the gophers way
Code, ci, infrastructure - the gophers wayAlex 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 -- CheatsheetDashamir Hoxha
 
Autobiography of Benjamin Franklin
Autobiography of Benjamin FranklinAutobiography of Benjamin Franklin
Autobiography of Benjamin FranklinDashamir Hoxha
 
Easy Blogging With Emacs
Easy Blogging With EmacsEasy Blogging With Emacs
Easy Blogging With EmacsDashamir Hoxha
 
Easy Blogging With Emacs
Easy Blogging With EmacsEasy Blogging With Emacs
Easy Blogging With EmacsDashamir Hoxha
 
Development Setup of B-Translator
Development Setup of B-TranslatorDevelopment Setup of B-Translator
Development Setup of B-TranslatorDashamir Hoxha
 
Using Drupal Features in B-Translator
Using Drupal Features in B-TranslatorUsing Drupal Features in B-Translator
Using Drupal Features in B-TranslatorDashamir Hoxha
 
IT Strategy of Albanian Customs
IT Strategy of Albanian CustomsIT Strategy of Albanian Customs
IT Strategy of Albanian CustomsDashamir 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 ShqiptareDashamir 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 ServiceDashamir 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
 
PPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusPPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusDashamir Hoxha
 
PPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusPPPoE With Mikrotik and Radius
PPPoE With Mikrotik and RadiusDashamir Hoxha
 
Using OpenFire With OpenLDAP
Using OpenFire With OpenLDAPUsing OpenFire With OpenLDAP
Using OpenFire With OpenLDAPDashamir Hoxha
 
phpWebApp presentation
phpWebApp presentationphpWebApp presentation
phpWebApp presentationDashamir Hoxha
 
Managing HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusManaging HotSpot Clients With FreeRadius
Managing HotSpot Clients With FreeRadiusDashamir 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 ModelsDashamir 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

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 

Recently uploaded (20)

DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 

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