SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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_
 

Tendances (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
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

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