#SidnetDonations: Michał for PostgreSQL and the “Futrzaki” Foundation

As we celebrate Internet Domain Day, we wish to support what made the Internet the way it is – databases and kittens. The man responsible for choosing the open-source and charity projects that we will be supporting this month is not just the mastermind of #SidnetDonations, but Sidnet overall.

Michał Wojciechowski has been managing our software house for 15 years. Throughout this time, he has participated in over 200 programming projects and more than 20 half-marathons – and he has also tried to stop his cats from meowing in the background during team teleconferences countless of times… 😉

Read on to find out more about Michał’s choices.

PostgreSQL

PostgreSQL is an open-source database management system. Apart from MySQL and SQLite, it is one of the most popular free solutions of this type. It is used by such companies as Skype, Instagram, TripAdvisor and The Guardian.

More than 500 volunteer creators are actively involved in working on PostgreSQL and they have been developing the project for over 30 (!) years. The result is an efficient, feature-rich and standards-compliant program, which includes more than a million lines of code and is fully owned by the community that designed it.

“Many people claim that PostgreSQL is a worthy competitor to Oracle – a commercial solution. We have used PostgreSQL in a number of projects, including a few web applications built for the Iconaris marketing agency. It also serves as a database for some of the tools we use internally, such as GitLab”, said Sidnet’s founder.

“Futrzaki” Foundation

The foundation was established in 2015 by a group of volunteers who strive to improve animal welfare. They often help stray cats and dogs, some of which are mutilated. They collect donations, organize adoptions and constantly promote having the right attitude towards animals.

“Thanks to the ‘Futrzaki’ foundation, I now have a new cat in my apartment – Lotka. The foundation volunteers put a lot of effort into finding people who are responsible owners and offer really good homes to animals. For example, the condition for adopting Lotka in the first place was to secure my balcony with a protective mesh”, said Michał.

Before they find a new home, many cats (including Lotka) are brought to the Bajka temporary shelter.

“I visited the place two times, once to familiarize myself with Lotka and then and finalize the adoption process. The temporary shelter is run by great people, who truly love animals”, said Michał.

#SidnetDonations: Wojciech for Linux Mint and the Znajdki Foundation

Calm, modest and a man of few words – Wojciech is certainly one of the most inconspicuous members of the Sidnet team. Yet, he also happens to be an effective Senior Full-Stack Developer, responsible for the continued development of the Fooder web and mobile application. Wojciech Wąsik excels in helping us achieve any business goals set by the app’s client (ZT Kruszwica S.A.), as well as the Iconaris marketing agency, which has been collaborating with us for 12 years now. Not to mention that he always beats us in poker, quiz games and Hero Realms at team meetups.

See which open-source and charity projects we will be supporting this month per Wojtek’s request.

Linux Mint

Linux Mint is an open-source operating system based on Ubuntu/Debian. Since it is not at all inferior to Windows in terms of ease of use, it is especially popular among novice Linux users. Compared to other Linux distributions, its characteristic features are the modern design and improved compatibility with software that is not 100% open-source. For example, it allows users to play audio/video files both in the system media player and the web browser immediately upon installation.

“I replaced Windows with Mint both at home and at work. Not only is Mint faster, but it is also free. It was an easy choice” – said Wojtek.

The creators of Linux Mint provide information on what they plan to do with the funds collected. They use voluntary donations to finance hosting, advertising, software distribution, equipment purchases, and the work of the people involved in the project.

Znajdki Foundation

The foundation strives to combat violence against animals and animal homelessness. Their workers take dogs and cats away from irresponsible owners and look after injured, abandoned animals. The foundation actively participates in events such as Warszawski Dzień Zwierząt (“Warsaw Animal Day”) and Bieg Chomika (“Hamster Charity Run”).

“The foundation’s volunteers encourage everyone to support their work in any way they can, depending on individual possibilities. Apart from obvious ways of providing support, such as donating money or creating a temporary shelter, the foundation is always eager to accept any help at all” – said our developer.

How you can help the animal shelter:

  • Donating any spare cleaning products, such as mops, brushes, washing powders and cleaning agents.
  • Help in publishing announcements on adoption websites.
  • Taking photos of the animals. Photos help pets find new homes or virtual caretakers.
  • Playing with the dogs at the shelter and taking them out on walks.

How to make your website multilingual. Case study part 3: A checklist

E-mails, forms, payment process steps… When making your website multilingual, make sure all the bits and pieces are translated. Use a checklist that we created, based on a recent project we completed partially pro bono as a Christmas gift for Sarcoma Association.

When translating a website, don’t forget about the contents of emails and attached files.

Step 3. Make sure there are no missing parts in your translations (a checklist)

Before adding another language to your website, check out our list of elements which need to be translated or which necessitate website alterations. On an example of a real implementation in the Onkobieg (Oncorun) registration website (still in the testing phase).

1) Text in graphical elements, photos and images.

Certain template elements can contain images with text in a given language. A solution to this problem is to add separate language versions of such images.

In the case of Onkobieg, however, we chose to adjust the website template (where possible and justified) to ensure that text content and images are separate.

Visual elements that highlights the date of the next edition of Onkobieg.

2) Interactive prompts.

Not all text content is available immediately upon entering a website, such as the content of subpages available from the menu or blog articles. Remember to translate all interactive elements: form validation, error messages and notifications.

The Onkobieg website contained several hundred prompts with information for users which needed to be translated.

3) External service integration (e.g. payment processing, YouTube website).

If the service provider’s system allows it, it is worth relaying information regarding the language version chosen by the user.

To make this possible, a single variable had to be added to the PayU integration code – ‘language’. As a result, a sudden change of language after being redirected to the PayU website will not prevent the user from making their payment.

Donation screen for English-speaking visitors of the Onkobieg site.

The home page of Oncorun website includes a YouTube video. We needed to make sure the language of the video player interface matched the current language version of the site. In order to do that, we added the “hl” parameter (namely, “?hl=en”) to the URL of the video shown on the English version.

YouTube video player shown in the language selected by the user.

4) Automated emails.

Remember to make sure that your users receive system messages in the same language in which they browsed your site. In order to do this, add information about the version used to the user’s session. Another possible solution is to save language preferences in user settings.

Translated text and attachments of a confirmation e-mail, sent upon registering for Onkobieg (Oncorun).

5) Number, currency, date and time formats.

Take into account differences in units of measurement and formats used in different countries. Establish how these elements will be displayed in the target language version of your website and be consistent. Examples?

  • Date format: DD.MM.YYYY vs. MM/DD/YYYY
  • Time format: 13:00 vs. 1:00 p.m.
  • Distance units: 1.609 kilometers vs. 1 mile
  • Currency: zł vs. PLN
Different currency formats: “zł” in Polish version, “PLN” in English version.

6) Different text length.

The same words and sentences can take up more or less space compared to the source when translated into a different language. Adjust your website template so that the content is displayed correctly in all language versions: avoid clipping, text extending outside button borders, etc.

Variable length of the slogan and button caption in different language versions.

7) Declension.

Take into account the types of declension present in the target language. Some words may have to be different depending on the number of errors detected by the system, for example: “To proceed, correct 1 error / 2 errors / 5 errors” (in Polish: “By przejść dalej, popraw 1 błąd / 2 błędy / 5 błędów”).

8) UTF-8 character encoding.

Use the UTF-8 encoding system (8-bit Unicode Transformation Format). It is widely supported by browsers and makes language-specific characters display correctly for users of different nationalities.

9) Language version switch.

The language button should be clearly visible – place it in an intuitive location such as the site header or main menu. Make sure that it remembers which language is chosen.

 Language switcher displayed in the header of Onkobieg website.

As a result of the changes, a growing number of Onkobieg (Oncorun) attendees from outside Poland will be able to register for the race in English. Thanks to our solution, the organizer will easily add new language versions at any time.

“A partner this involved is difficult to find. The majority of the translation was done free of charge as a Christmas present for the Association. We are very grateful for that!”

Szymon Bubiłek
Board Member, Sarcoma Association

How to make your website multilingual. Case study part 2: Common issues

Having chosen the right approach to implement multiple languages on your website, you should expect some challenges before you get everything working. Get prepared for a few common issues.

Learn what solutions we developed to resolve those common problems while working on a recent project, completed partially pro bono as a Christmas gift for Sarcoma Association.

Jak dodać wielojęzyczność na stronie. Częste problemy. Na przykładzie serwisu rejestracji na Onkobieg.
Translated consent clauses shown in the Onkobieg (Oncorun) registration process. English version is still in the testing phase.

This mini-series of articles outlines:

  1. How to select the appropriate method of adding support for multiple languages to your website.
  2. What common difficulties you may expect when going multilingual (below).
  3. Key things to keep in mind when translating a website.

Step 2. Keep an eye out for common issues plaguing multilingual websites

Use already existing solutions for common problems. Learn how we overcame the issues we encountered when translating the Onkobieg (Oncorun) website.

Functions shared by the entire system

Problem:

Certain system functions may be shared and not assigned to particular language versions.

User login form, shared between all language versions.

In the case of the Onkobieg website, the login form was such a shared function – it was available in a modal window which redirected the user to the main page after logging in. This solution was sufficient for a single-language website, but a website translated into different languages requires more context – information on the language version used by the visitor.

Solution:

Website language version info was added to the user’s session.

Content hard-coded in the site template

Problem:

Certain elements (e.g. website footer) can be hard-coded (fixed) in the template code. Implementing different language versions necessitates the transfer of such content to the CMS or language files.

The Oncobieg website footer. Links and images are hard-coded in the website template.

The complexity of the HTML code used by the Onkobieg website made it impossible to manage content via the CMS or a WYSIWYG editor. Such attempts could scramble the HTML code structure.

On the other hand, the website code contained links, for example. This is why it should not be copied to different language files.

Solution:

We rebuilt the problematic part. We rewrote the CSS rules, simplifying the HTML code so that it can be edited in the CMS.

Consent forms (e.g. GDPR)

Problem:

Some websites have advanced clause management systems.

For example, in order to participate in Onkobieg, you need to accept among others: the race terms and conditions, PayU terms of service and the privacy policy.

Examples of consent clauses used in the Oncobieg registration process.

Giving consent in one language should be equivalent to accepting the content of the translation. We decided to add some safety measures to protect our client should two translations of the same consent form differ from each other – for example when an updated version of the English clause is already in force, but its Polish version has not yet been uploaded.

Solution:

At this time, the clauses on the Onkobieg website are not grouped together. This means that accepting a clause in one language is not equivalent to accepting its translation.


As a result of the changes, a growing number of Onkobieg (Oncorun) attendees from outside Poland will be able to register for the race in English. Thanks to our solution, the organizer will easily add new language versions at any time.

“A partner this involved is difficult to find. The majority of the translation was done free of charge as a Christmas present for the Association. We are very grateful for that!”

Szymon Bubiłek
Board Member, Sarcoma Association

#SidnetDonations: Mariusz for Webpack and the TipTop Foundation

We have “one simple way” of dealing with the upcoming Blue Monday – supposedly the most depressing day of the year (though this has never been proven scientifically). We use this method once every month, and its results can be truly astonishing. How do we deal with the winter blues then? Through the monthly #SidnetDonations, of course. As part of this initiative, we donate funds to open-source and charity projects based on requests from our colleagues.

This time, the projects that we will be supporting were selected by Mariusz Różański. Despite being the youngest of our team members, he already has several years of experience in web development, as well as being a dad. Mariusz works remotely from Toruń, primarily on projects for our British clients: THG and UK2.

Webpack

Webpack is an open-source JavaScript tool. It allows the user to merge resources, styles, scripts and graphics to create a single, optimized output file. Webpack combines individual project modules (e.g. JavaScript, Sass, Less, HTML files, external libraries and others), while also taking order and dependencies into account.

Mariusz has been using this tool for several years, both for simple and complex web projects.

Which of Webpack’s features does he particularly like?

  • Configurability. Webpack is known for its extensive configuration options. It makes it possible to easily adjust every single detail to perfectly suit the project’s needs.
  • Website optimization. Webpack allows the user to split output files into smaller pieces. These so-called “chunks” may be set to load in certain circumstances but be skipped in others (e.g. in the mobile version).

“New frontend technologies are created virtually every day, with some being useless or borderline pointless. There is even a joke website counting the days since the creation of the last JavaScript framework, and so far I haven’t seen the counter go over 3 days. Among all these tools there are also those that actually increase productivity and become an inseparable element. For me, such a tool is Webpack,” Mariusz said.

TipTop Foundation

The organization helps children suffering due to disability, poverty or difficult life circumstances affecting their families.

“The TipTop Foundation is close to my heart because it helps children with reduced and increased muscle tone. The pain and discomfort that babies experience from the very first days of their lives make rehabilitation necessary and require strong perseverance on their parents’ part as well. This I know from personal experience,” our developer said.

The foundation supports parents through such activities as financing treatment, organizing rest and rehabilitation and assisting in collecting funds. It helps orphanages by carrying out renovation works thanks to donations, as well as providing the necessary equipment and helping the children directly.

“Some children are simply unable to develop properly without external assistance. It’s a wonderful thing that TipTop Foundation volunteers to look after them. If detected early, all ailments related to muscle tension can be cured completely. Therefore, nothing should prevent children affected by this condition from receiving the help they need to grow into strong, thoughtful people who will go on to build a better future for all of us,” Mariusz added.

How to make your website multilingual. Case study part 1: Select a method

Planning to add more language versions to your website? This is a step-by-step guide on how to do that. A real project we completed partially pro bono as a Christmas gift for a charity organization will serve as an example.

How to make a website multilingual. On an example of a real implementation of the Onkobieg registration website.
Two language versions of Onkobieg registration website – English version is still in the testing phase.

This mini-series of articles outlines:

  1. How to select the appropriate method of adding support for multiple languages to your website (below).
  2. What common difficulties you may expect when going multilingual.
  3. Key things to keep in mind when translating a website.

Step 1. Select the appropriate multi-language solution for your website

Before you start translating, take a moment to consider which method is best for your website.

We had 3 implementation models to choose from when taking on the Onkobieg (Oncorun) registration website CMS. Learn about the advantages and drawbacks of different solutions.

A. Copying the entire website

Procedure:

Copy the source code and the database. Launch the website under a different address and replace all text content with translations.

Advantages:

  • Simplicity. This solution is the simplest and quickest to implement.
  • No changes to the database. There is no need to modify the database – simply make a copy of it.
  • Altering text content in templates (e.g. footer content) is easy. Simply edit the content – no tools are necessary to handle multilingualism in templates.
  • Diverse content. Different language versions of the same site can differ from one another – some may have more content, some less.

Drawbacks:

  • Separate databases. Different language versions cannot share data without additional synchronization.
    Example: user accounts. If a user creates an account using the Polish language version, they will have to make another account if they want to use the English version.
  • No linking between subpages. Switching between different language versions of a single resource is more difficult.
    Example: returning to the main page from a subpage. If a user is browsing the Polish version of a subpage, they will be redirected to the home page after switching to the English version instead of staying on the same subpage.
  • Higher maintenance costs. Changes (to templates, database alterations, new functions) must be implemented separately for every language version.

B. Translation of individual database content

Procedure:

Add new language fields to the database (e.g. article title EN, article description EN). Translate the website by filling out the fields with content in the target language.

Advantages:

  • Little tampering with system architecture. Language switching is possible by adding a single global parameter to the website URL.
  • Easy switching between language versions. Every resource in the system exists in all language versions. This means that resource ID is the only thing required to retrieve data in a different language.
  • Single database. All language versions use the same database.
  • Low maintenance costs. Every change to a template affects every language version.

Drawbacks:

  • Identical website content. Language versions must be identical. This means that every resource must be translated into every language.
  • Altering text in templates is difficult. Text content needs to be placed in separate language files.
  • Limited scalability. Every new language version requires additional fields to be added for every resource in the administrator panel.

CSingle system for multiple website versions

Procedure:

Create separate language versions of a website within a single system. Link every website to a separate domain, subdomain or folder in the primary domain. Assign individual resources (e.g. subpages or blog articles) to the appropriate language version of the website.

Advantages:

  • Scalability. Once implemented it significantly simplifies adding new language versions.
  • Diverse content. Different language versions of the same site can differ from one another – some may have more content, some less. No need to translate all content (e.g. archived blog articles).
  • Easy switching between language versions. The database is shared. All language versions of every subpage have a common identifier.
  • Single database. All language versions use the same database.
  • Low maintenance costs. Every change to a template affects every language version.

Drawbacks:

  • Significant tampering with system architecture. Every module needs to be altered so that its resources are assigned to the appropriate site.
  • Altering text in templates is difficult. Text content needs to be placed in separate language files.

Our choice

Onkobieg is a registration website for a running event. It enables users to create accounts, make payments online and generate start cards for printing. The nature of the website makes it impossible to launch an English version using a separate database (method A.).

Ultimately, we opted for solution C. – though it is more labor-intensive, it also scales better and does not require all website content, such as archived posts, to be translated.

We also needed a tool for translating content embedded in the source code, such as content in the templates, notifications and error messages. As Onkobieg uses Laravel as its framework, we used its built-in translation package.


As a result of the changes, a growing number of Onkobieg (Oncorun) attendees from outside Poland will be able to register for the race in English. Thanks to our solution, the organizer will easily add new language versions at any time.

“A partner this involved is difficult to find. The majority of the translation was done free of charge as a Christmas present for the Association. We are very grateful for that!”

Szymon Bubiłek
Board Member, Sarcoma Association