Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      Sunshine And March Vibes (2025 Wallpapers Edition)

      May 16, 2025

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      May 16, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      May 16, 2025

      How To Prevent WordPress SQL Injection Attacks

      May 16, 2025

      Microsoft has closed its “Experience Center” store in Sydney, Australia — as it ramps up a continued digital growth campaign

      May 16, 2025

      Bing Search APIs to be “decommissioned completely” as Microsoft urges developers to use its Azure agentic AI alternative

      May 16, 2025

      Microsoft might kill the Surface Laptop Studio as production is quietly halted

      May 16, 2025

      Minecraft licensing robbed us of this controversial NFL schedule release video

      May 16, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      The power of generators

      May 16, 2025
      Recent

      The power of generators

      May 16, 2025

      Simplify Factory Associations with Laravel’s UseFactory Attribute

      May 16, 2025

      This Week in Laravel: React Native, PhpStorm Junie, and more

      May 16, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Microsoft has closed its “Experience Center” store in Sydney, Australia — as it ramps up a continued digital growth campaign

      May 16, 2025
      Recent

      Microsoft has closed its “Experience Center” store in Sydney, Australia — as it ramps up a continued digital growth campaign

      May 16, 2025

      Bing Search APIs to be “decommissioned completely” as Microsoft urges developers to use its Azure agentic AI alternative

      May 16, 2025

      Microsoft might kill the Surface Laptop Studio as production is quietly halted

      May 16, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»Development»Improving inclusion and accessibility through automated document translation with an open source app using Amazon Translate

    Improving inclusion and accessibility through automated document translation with an open source app using Amazon Translate

    May 1, 2024

    Organizations often offer support in multiple languages, saying “contact us for translations.” However, customers who don’t speak the predominant language often don’t know that translations are available or how to request them. This can lead to poor customer experience and lost business. A better approach is proactively providing information in multiple languages so customers can access it directly. This leads to more informed, satisfied, and included customers.

    In this post, we share how we identified these challenges and overcame them through our work with Swindon Borough Council. We developed the Document Translation app, which uses Amazon Translate, to address these issues. The app is a business user app for self-serve translations. The app is created in partnership with Swindon Council and released as open source code freely available for your organization to use.

    Translation challenges

    We identified three key challenges:

    Accuracy and quality
    Cost to translate
    Time to translate

    Accuracy and quality

    Translation accuracy and quality are critical, because the results must be accurate and understood. As quoted in the Swindon Borough Council case study:

    “The council ran small-scale trials with the main digital translation providers that can support the different languages spoken by Swindon’s citizens. It recruited local bilingual volunteers to assess the quality of the machine translations against their first languages, and Amazon Translate came out on top.”

    The Document Translation app uses Amazon Translate for performing translations. Amazon Translate provides high-quality document translations for contextual, accurate, and fluent translations. It supports many languages and dialects, providing broad coverage for customers worldwide. Custom terminology, a feature of Amazon Translate,is dynamically utilized by the app workflow when a language has matching custom terminology available.

    Cost to translate

    High costs of manual translation can prohibit organizations from supporting multiple languages, straining already tight budgets. Balancing language inclusivity and budget limitations poses a significant challenge when relying solely on traditional translation methods.

    Swindon Borough Council paid around £159.81 ($194.32 USD) per single-page document, limiting them to providing translation only where legally required. As discussed in the case study, Swindon Borough Council slashed 99.96% of translation costs using Amazon Translate:

    “Such dramatic savings mean that it’s no longer limited to translating only documents it is legally required to provide—it can offer citizens wider access to content for minimal extra cost.”

    Customers report third-party translation services fees as a major cost. The neural machine translation technology of Amazon Translate dramatically lowers these costs.

    Following the Cost Optimization pillar of the AWS Well-Architected Framework further led to implementing an AWS Graviton architecture using AWS Lambda and an infrequently accessed Amazon DynamoDB table class. With no server management overhead or continually running systems, this helps keep costs low.

    Time to translate

    Manual translation delays that lower customer satisfaction also include internal processes, approvals, and logistics arrangements in place to control costs and protect sensitive and private content. Swindon Borough Council stated that turnaround times could take up to 17 days:

    “First, it was slow. The internal process required manual inputs from many different people. On average, that process took up to 12 days, and the time required by the translation agency was 3–5 days. That meant total translation time for a document was up to 17 days.”

    This app offers a business user self-serve portal for document translations. Users can upload documents and download translations for sharing without slow manual intervention. Amazon Translate can perform translations in about 10 minutes.

    Solution overview

    The app’s business user portal is a browser-based UI that has been translated into all languages and dialects supported by Amazon Translate. The dynamic React UI doesn’t require server software. To accelerate development, UI components such as buttons and input boxes come from the AWS Cloudscape Design library. For interacting with AWS services, the AWS Amplify JS library for React simplifies the authentication, security, and API requests.

    Fig.1 – Translating a document.

    Fig.2 – Localized user interface.

    Fig.3 – Client architecture overview.

    The backend uses several serverless and event-driven AWS services, including AWS Step Functions for low-code workflows, AWS AppSync for a GraphQL API, and Amazon Translate. This architecture enables fast development and reduces ongoing management overhead, as shown in the following diagram.

    Fig.4 – Translation architecture overview.

    The app is built with Infrastructure as Code (IaC) using the AWS Cloud Development Kit (AWS CDK). The AWS CDK is an open source software development framework used to model and provision cloud applications. Using the Typescript CDK provides a reliable, repeatable, and extensible foundation for deployments. Paired with a consistent continuous integration and delivery (CI/CD) pipeline, deployments are predictable. Reusable components are extracted into constructs and imported where needed, providing consistency and best practices such as AWS Identity and Access Management (IAM) roles, Amazon CloudWatch logging, and AWS X-Ray tracing for all Lambda functions.

    Fig.5 – Continuous integration and continuous delivery pipeline overview.

    App deployment

    The app is effortless to deploy using the AWS CDK. The AWS CDK allows modeling of the entire stack, including frontend React code, backend functions and workflows, and cloud infrastructure definitions packaged together.

    Before deployment, review any prerequisites you may want to use, such as connecting this to your organization’s single sign-on with the SAML provider.

    The installation wizard provides the necessary commands. AWS CloudShell allows you to run these commands without installing anything locally. The app documentation covers all advanced options available. Installation takes 30–60 minutes and is monitored from AWS CodePipeline.

    Fig.6 – Installation wizard.

    A self-paced Immersion Day is available for your technical teams to get hands-on experience with the services and build core components. Alternatively, your AWS account team can provide personalized guidance through the workshop.

    Additional feature: Simply Readable

    This app is designed with multiple features (as of this writing, Document Translation and Simply Readable). Simply Readable enables you to create Easy Read documents with generative artificial intelligence (AI) using Amazon Bedrock. The app can be installed with or without this feature.

    Conclusion

    The Document Translation app provides translations in your customers’ native languages. Amazon Translate enables accurate translation at scale. Communicating in customers’ languages shows respect, improves understanding, and builds trust.

    Translation capabilities should be core to any growth strategy, building loyalty and revenue through superior localized experiences.

    Business leaders should evaluate solutions like Amazon Translate to overcome language barriers and share their brand. Enabling multilingual communication conveys “We value you, we hear you, and we want your experience with us to be positive.”

    To learn more about the app, see the FAQ.

    About the Author

    Philip Whiteside is a Solutions Architect (SA) at Amazon Web Services. Philip is passionate about overcoming barriers by utilizing technology.

    Source: Read More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleSimple guide to training Llama 2 with AWS Trainium on Amazon SageMaker
    Next Article Automate chatbot for document and data retrieval using Agents and Knowledge Bases for Amazon Bedrock

    Related Posts

    Security

    Nmap 7.96 Launches with Lightning-Fast DNS and 612 Scripts

    May 16, 2025
    Common Vulnerabilities and Exposures (CVEs)

    CVE-2025-47916 – Invision Community Themeeditor Remote Code Execution

    May 16, 2025
    Leave A Reply Cancel Reply

    Continue Reading

    HyPO: A Hybrid Reinforcement Learning Algorithm that Uses Offline Data for Contrastive-based Preference Optimization and Online Unlabeled Data for KL Regularization

    Development

    Building SaaS Website #05: Total.js View Engine Basics

    Development

    A New Challenge for AI: Humanity’s Last Exam

    Web Development

    MediaTek May 2025 Security Bulletin: Chipset Vulnerabilities Disclosed

    Security

    Highlights

    Where to edit Script1.groovy as seen in the error?

    May 10, 2024

    I am very new to Jenkins – I am trying to run a multibranch pipeline script on Jenkins version 2.375.1. The builds are triggered with commits and PR’s filed on Github. On committing a new file or initiating a PR, Jenkins auto triggers a build but consistently stops as it hits this issue.
    org.jenkinsci.plugins.workflow.cps.CpsCompilationErrorsException: startup failed:
    Script1.groovy: 1: unexpected char: ” @ line 1, column 2.
    {rtf1ansiansicpg1252cocoartf2513

    I have added a Jenkinsfile.Jenkinsfile and Example.groovy script in my repo with this code ->
    Jenkinsfile.Jenkinsfile (note the .Jenkinsfile extension is hidden in the repo)
    node {
    // Git checkout before load source the file
    checkout scm

    // To know files are checked out or not
    sh ”’
    ls -lhrt
    ”’

    def rootDir = pwd()
    println(“Current Directory: ” + rootDir)

    // point to exact source file
    def example = load “${rootDir}/Example.Groovy”

    example.exampleMethod()
    example.otherExampleMethod()

    }
    Example.groovy (Note the .groovy extension is hidden in repo)
    import hudson.slaves.EnvironmentVariablesNodeProperty
    import hudson.EnvVars
    import jenkins.model.*
    jenkins = Jenkins.instance

    EnvironmentVariablesNodeProperty prop = jenkins.getGlobalNodeProperties().get(EnvironmentVariablesNodeProperty.class)
    EnvVars env = prop.getEnvVars()

    def MY_VAR = env[‘MY_JENKINS_VAR’]
    def exampleMethod() {
    println(“exampleMethod”)
    }

    def otherExampleMethod() {
    println(“otherExampleMethod”)
    }
    return this

    Self-Route: A Simple Yet Effective AI Method that Routes Queries to RAG or Long Context LC based on Model Self-Reflection

    July 26, 2024

    LG’s new UltraGear GX9 monitor lets you bend its OLED display

    January 3, 2025

    I tested Asus’ new ultraportable laptop, and it gives the MacBook Air a serious run for its money

    February 14, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.