Merge ~renanrodrigo/ubuntu/+source/ubuntu-advantage-tools:upload-30-mantic into ubuntu/+source/ubuntu-advantage-tools:ubuntu/devel

Proposed by Renan Rodrigo
Status: Merged
Merge reported by: Andreas Hasenack
Merged at revision: af525f1830824cdf8132346a0f166f51fb8c0f7f
Proposed branch: ~renanrodrigo/ubuntu/+source/ubuntu-advantage-tools:upload-30-mantic
Merge into: ubuntu/+source/ubuntu-advantage-tools:ubuntu/devel
Diff against target: 36851 lines (+18318/-4441)
220 files modified
.github/ISSUE_TEMPLATE/bug_report.md (+35/-0)
.github/ISSUE_TEMPLATE/feature_request.md (+23/-0)
.github/ISSUE_TEMPLATE/question.md (+18/-0)
.github/workflows/ci-base.yaml (+6/-2)
apport/source_ubuntu-advantage-tools.py (+1/-4)
apt-hook/json-hook-main.cc (+4/-0)
apt-hook/json-hook.cc (+285/-77)
apt-hook/json-hook.hh (+3/-3)
debian/changelog (+72/-0)
debian/control (+9/-0)
debian/po/Makefile (+10/-0)
debian/po/POTFILES.in (+2/-0)
debian/po/pt_BR.po (+3428/-0)
debian/po/ubuntu-pro.pot (+3056/-0)
debian/rules (+1/-0)
debian/tests/control (+1/-1)
debian/ubuntu-advantage-tools.maintscript (+1/-0)
debian/ubuntu-pro-client-l10n.install (+1/-0)
dev/null (+0/-10)
features/airgapped.feature (+3/-3)
features/anbox.feature (+8/-10)
features/api.feature (+20/-18)
features/api_fix_execute.feature (+273/-0)
features/api_fix_plan.feature (+42/-26)
features/api_magic_attach.feature (+1/-1)
features/api_packages.feature (+1/-1)
features/api_unattended_upgrades.feature (+6/-0)
features/apt_messages.feature (+25/-25)
features/attach_invalidtoken.feature (+3/-3)
features/attach_validtoken.feature (+10/-7)
features/attached_commands.feature (+435/-103)
features/attached_enable.feature (+78/-65)
features/attached_status.feature (+18/-12)
features/cloud.py (+11/-2)
features/cloud_pro_clone.feature (+1/-0)
features/collect_logs.feature (+4/-12)
features/daemon.feature (+37/-36)
features/docker.feature (+6/-6)
features/enable_fips_cloud.feature (+55/-4)
features/enable_fips_container.feature (+4/-3)
features/enable_fips_pro.feature (+9/-9)
features/enable_fips_vm.feature (+70/-13)
features/environment.py (+7/-0)
features/fix.feature (+15/-9)
features/i18n.feature (+84/-4)
features/landscape.feature (+5/-11)
features/livepatch.feature (+61/-0)
features/motd_messages.feature (+12/-17)
features/proxy_config.feature (+1/-1)
features/realtime_kernel.feature (+13/-10)
features/retry_auto_attach.feature (+2/-2)
features/schemas/cve_fix_execute.json (+73/-0)
features/schemas/cve_fix_plan.json (+12/-0)
features/schemas/ua_status.json (+0/-6)
features/schemas/usn_fix_execute.json (+89/-0)
features/schemas/usn_fix_plan.json (+28/-2)
features/steps/machines.py (+11/-0)
features/steps/packages.py (+19/-4)
features/steps/ubuntu_advantage_tools.py (+11/-4)
features/ubuntu_pro.feature (+72/-63)
features/ubuntu_pro_fips.feature (+59/-55)
features/ubuntu_upgrade.feature (+3/-3)
features/ubuntu_upgrade_unattached.feature (+2/-2)
features/unattached_commands.feature (+20/-21)
features/unattached_status.feature (+69/-43)
features/util.py (+77/-5)
integration-requirements.txt (+1/-1)
lib/daemon.py (+10/-39)
lib/migrate_user_config.py (+0/-2)
lib/patch_status_json.py (+4/-6)
lib/reboot_cmds.py (+5/-11)
lib/timer.py (+17/-28)
lib/upgrade_lts_contract.py (+1/-1)
preferences.d/ubuntu-pro-esm-apps (+11/-0)
preferences.d/ubuntu-pro-esm-infra (+10/-0)
setup.py (+2/-1)
sru/release-30/test-status-output-when-translated.sh (+94/-0)
systemd/ubuntu-advantage.service (+0/-2)
test-requirements.txt (+5/-0)
tools/README.md (+0/-1)
tools/create-lp-release-branches.sh (+1/-1)
tools/test-in-lxd.sh (+6/-3)
tools/test-in-multipass.sh (+10/-5)
tools/update-pos.sh (+9/-0)
tox.ini (+4/-35)
uaclient-devel.conf (+0/-2)
uaclient/actions.py (+10/-45)
uaclient/api/api.py (+18/-47)
uaclient/api/errors.py (+27/-15)
uaclient/api/exceptions.py (+5/-9)
uaclient/api/tests/test_api.py (+44/-46)
uaclient/api/tests/test_api_u_pro_attach_auto_full_auto_attach_v1.py (+24/-14)
uaclient/api/tests/test_api_u_pro_attach_auto_should_auto_attach.py (+4/-4)
uaclient/api/tests/test_api_u_pro_packages_updates.py (+1/-1)
uaclient/api/tests/test_api_u_pro_security_fix_execute.py (+345/-0)
uaclient/api/tests/test_api_u_pro_version.py (+5/-5)
uaclient/api/tests/test_api_u_unattended_upgrades_status_v1.py (+28/-0)
uaclient/api/tests/test_fix.py (+356/-277)
uaclient/api/u/pro/attach/auto/full_auto_attach/v1.py (+4/-3)
uaclient/api/u/pro/packages/updates/v1.py (+2/-2)
uaclient/api/u/pro/security/fix/__init__.py (+302/-94)
uaclient/api/u/pro/security/fix/_common/__init__.py (+47/-0)
uaclient/api/u/pro/security/fix/_common/execute/__init__.py (+0/-0)
uaclient/api/u/pro/security/fix/_common/execute/v1.py (+273/-0)
uaclient/api/u/pro/security/fix/cve/execute/__init__.py (+0/-0)
uaclient/api/u/pro/security/fix/cve/execute/v1.py (+77/-0)
uaclient/api/u/pro/security/fix/cve/plan/v1.py (+2/-23)
uaclient/api/u/pro/security/fix/usn/execute/__init__.py (+0/-0)
uaclient/api/u/pro/security/fix/usn/execute/v1.py (+108/-0)
uaclient/api/u/pro/security/fix/usn/plan/v1.py (+2/-23)
uaclient/api/u/pro/version/v1.py (+3/-2)
uaclient/api/u/unattended_upgrades/status/v1.py (+22/-3)
uaclient/apt.py (+292/-111)
uaclient/apt_news.py (+8/-5)
uaclient/cli/__init__.py (+202/-473)
uaclient/cli/constants.py (+8/-0)
uaclient/cli/fix.py (+921/-0)
uaclient/cli/tests/test_cli.py (+88/-92)
uaclient/cli/tests/test_cli_api.py (+4/-3)
uaclient/cli/tests/test_cli_attach.py (+41/-33)
uaclient/cli/tests/test_cli_auto_attach.py (+9/-8)
uaclient/cli/tests/test_cli_collect_logs.py (+16/-9)
uaclient/cli/tests/test_cli_config.py (+4/-3)
uaclient/cli/tests/test_cli_config_set.py (+6/-4)
uaclient/cli/tests/test_cli_config_unset.py (+1/-0)
uaclient/cli/tests/test_cli_detach.py (+9/-4)
uaclient/cli/tests/test_cli_disable.py (+72/-17)
uaclient/cli/tests/test_cli_enable.py (+77/-29)
uaclient/cli/tests/test_cli_fix.py (+10/-13)
uaclient/cli/tests/test_cli_refresh.py (+6/-6)
uaclient/cli/tests/test_cli_security_status.py (+2/-1)
uaclient/cli/tests/test_cli_status.py (+53/-42)
uaclient/clouds/aws.py (+12/-11)
uaclient/clouds/azure.py (+1/-1)
uaclient/clouds/gcp.py (+6/-9)
uaclient/clouds/identity.py (+10/-6)
uaclient/clouds/tests/test_aws.py (+7/-7)
uaclient/clouds/tests/test_azure.py (+3/-3)
uaclient/clouds/tests/test_gcp.py (+5/-9)
uaclient/clouds/tests/test_identity.py (+1/-1)
uaclient/config.py (+25/-36)
uaclient/conftest.py (+14/-14)
uaclient/contract.py (+67/-70)
uaclient/daemon/__init__.py (+2/-2)
uaclient/daemon/poll_for_pro_license.py (+2/-3)
uaclient/daemon/retry_auto_attach.py (+10/-6)
uaclient/daemon/tests/test_daemon.py (+2/-2)
uaclient/daemon/tests/test_poll_for_pro_license.py (+7/-6)
uaclient/daemon/tests/test_retry_auto_attach.py (+13/-7)
uaclient/data_types.py (+45/-41)
uaclient/defaults.py (+3/-15)
uaclient/entitlements/__init__.py (+7/-6)
uaclient/entitlements/anbox.py (+6/-4)
uaclient/entitlements/base.py (+96/-45)
uaclient/entitlements/cc.py (+8/-12)
uaclient/entitlements/cis.py (+12/-22)
uaclient/entitlements/entitlement_status.py (+2/-0)
uaclient/entitlements/esm.py (+8/-6)
uaclient/entitlements/fips.py (+99/-29)
uaclient/entitlements/landscape.py (+20/-18)
uaclient/entitlements/livepatch.py (+47/-17)
uaclient/entitlements/realtime.py (+21/-15)
uaclient/entitlements/repo.py (+215/-44)
uaclient/entitlements/ros.py (+10/-5)
uaclient/entitlements/tests/conftest.py (+1/-0)
uaclient/entitlements/tests/test_base.py (+45/-12)
uaclient/entitlements/tests/test_cc.py (+7/-9)
uaclient/entitlements/tests/test_cis.py (+10/-10)
uaclient/entitlements/tests/test_entitlements.py (+3/-1)
uaclient/entitlements/tests/test_fips.py (+58/-30)
uaclient/entitlements/tests/test_livepatch.py (+113/-13)
uaclient/entitlements/tests/test_repo.py (+311/-20)
uaclient/exceptions.py (+383/-374)
uaclient/files/data_types.py (+2/-2)
uaclient/files/files.py (+18/-28)
uaclient/files/notices.py (+15/-13)
uaclient/files/tests/test_notices.py (+4/-2)
uaclient/gpg.py (+2/-4)
uaclient/http/__init__.py (+20/-23)
uaclient/http/tests/test_http.py (+7/-11)
uaclient/livepatch.py (+18/-30)
uaclient/lock.py (+2/-4)
uaclient/log.py (+9/-0)
uaclient/messages/__init__.py (+2524/-0)
uaclient/messages/urls.py (+48/-0)
uaclient/security.py (+128/-119)
uaclient/security_status.py (+98/-106)
uaclient/snap.py (+26/-16)
uaclient/status.py (+102/-60)
uaclient/system.py (+57/-27)
uaclient/testing/fakes.py (+5/-1)
uaclient/tests/test_actions.py (+10/-75)
uaclient/tests/test_apt.py (+343/-67)
uaclient/tests/test_apt_news.py (+4/-4)
uaclient/tests/test_config.py (+11/-58)
uaclient/tests/test_contract.py (+68/-49)
uaclient/tests/test_data_types.py (+112/-51)
uaclient/tests/test_esm_cache.py (+6/-6)
uaclient/tests/test_gpg.py (+2/-2)
uaclient/tests/test_lib_auto_attach.py (+1/-1)
uaclient/tests/test_lock.py (+14/-6)
uaclient/tests/test_reboot_cmds.py (+10/-4)
uaclient/tests/test_security.py (+40/-44)
uaclient/tests/test_security_status.py (+48/-77)
uaclient/tests/test_snap.py (+44/-1)
uaclient/tests/test_status.py (+3/-3)
uaclient/tests/test_system.py (+106/-8)
uaclient/tests/test_ua_timer.py (+3/-1)
uaclient/tests/test_upgrade_lts_contract.py (+13/-19)
uaclient/tests/test_util.py (+4/-92)
uaclient/tests/test_version.py (+16/-22)
uaclient/timer/__init__.py (+2/-2)
uaclient/timer/tests/test_update_messaging.py (+18/-14)
uaclient/timer/update_contract_info.py (+6/-6)
uaclient/timer/update_messaging.py (+12/-7)
uaclient/upgrade_lts_contract.py (+21/-15)
uaclient/util.py (+31/-70)
uaclient/version.py (+8/-12)
uaclient/yaml.py (+9/-6)
ubuntu-advantage.1 (+2/-10)
Reviewer Review Type Date Requested Status
Bryce Harrington (community) Approve
Andreas Hasenack Approve
Canonical Server Reporter Pending
Review via email: mp+452846@code.launchpad.net

Description of the change

This is the release of ubuntu-advantage-tools version 30.

See the CHANGELOG and related bug for more information.

To post a comment you must log in.
Revision history for this message
Bryce Harrington (bryce) wrote :
Download full text (3.7 KiB)

It is a bit confusing that only 10 commits are listed on this MP, but there seem to be a lot more referenced in d/changelog, and indeed `git log pkg/import/29.. | grep ^commit | wc -l` shows 185 commits?

Below is review on the 10 from this MP, the other 175 will take me awhile assuming they also need reviewed. Nothing major (these 10 are pretty straightforward) but a couple questions/fixups:

### Commit-by-Commit Review ###

15f4506... by Renan Rodrigo on 2023-10-03
    messages: add gettext to new purge messages

+1 Simple refactor to add gettext() calls

------------------------------------------------------------------------
573c3ec... by Renan Rodrigo on 2023-10-03
    disable: messages to warn that --purge is experimental

- Changelog entry should be "messages that warn that --purge"

- For the warning itself, I'd suggest a slightly different wording:

  +PURGE_EXPERIMENTAL = t.gettext(
  + "(The --purge flag is still experimental - use with caution)"
  +)

------------------------------------------------------------------------
629fc4d... by Renan Rodrigo on 2023-10-03
    po: run tools/update-pos.sh

+1 (Just translations)

------------------------------------------------------------------------
fa7505d... by Renan Rodrigo 5 hours ago
    fix: reposition message to avoid po conflicts

+1 (Trivial refactor, no actual code change)

------------------------------------------------------------------------
9e5cfc2... by Renan Rodrigo 16 hours ago
    chore: archive release-29 sru scripts
    also create a folder for release-30 and let the esm pinning test rest
    there

+1 (Just directory housekeeping)

------------------------------------------------------------------------
9bb2be3... by Renan Rodrigo 20 hours ago
    esm: pin repositories to a higher priority using static files
    This reverts commit 1dfcade40602ff820017bdf6b260b066e77f740d.

? I grepped the codebase for '500' for any other pinning instances.
   The following files seem to all be tests, and may not be app or infra
   related, so I'm guessing these are not affected, but can you confirm?

  ./features/anbox.feature
  ./features/attached_enable.feature
  ./features/realtime_kernel.feature
  ./uaclient/tests/test_apt.py
  ./uaclient/entitlements/tests/test_repo.py
  ./apt-hook/json-hook.test.cc

------------------------------------------------------------------------
a8e1aca... by Renan Rodrigo 20 hours ago
    esm: add comment to preference files
    This reverts commit 71aab656ea44aa1421fa59c8fec3d6935d9ec6c7.

+1 Comments in a preferences config file, entirely replaced in next
    commit...

------------------------------------------------------------------------
bef8bad... by Renan Rodrigo 20 hours ago
    Update esm pin file comment
    This reverts commit a8d66f68088c267cdf7a6f5a114547f4a3360fc5.

+1 Comments in a preferences config file, so safe. No errors in
    grammar, and the changes read ok.

I'm curious though why this isn't squashed with a8e1aca?

------------------------------------------------------------------------
a334bcf... by Lucas Albuquerque Medeiros de Moura 4 hours ago
    fips-preview: add gpg key for the service
    To enable ...

Read more...

review: Needs Information
Revision history for this message
Renan Rodrigo (renanrodrigo) wrote (last edit ):

You are correct, 154 commits should be part of the MR... I wonder what did happen here - will try to fix it up

Revision history for this message
Renan Rodrigo (renanrodrigo) wrote :

Nothing to fix it seems \_("/)_/

Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks for doublechecking, I suppose Launchpad is the thing needing fixed in this case...

Revision history for this message
Bryce Harrington (bryce) wrote :

I've performed the required commit-by-commit review, in particular focusing on the types of changes identified by https://wiki.ubuntu.com/UbuntuAdvantageToolsUpdates - apt, systemd, config files, etc. Due to the number of commits in this release, the full report is pretty long, so rather than paste it into Launchpad I put it in Ubuntu's pastebin, which hopefully will be easier to read, copy, and/or download.

    https://paste.ubuntu.com/p/fQYm9QfGWm/

Hopefully this works ok for you. I have flagged all the actual notes with 'FIXME' tags for your search convenience, though as you'll see in some cases it's just questions or reminders on things to do or check later.

There were >180 commits in the branch to be reviewed. I reduced this list somewhat by using this command:

    last_release="29.4"

    # Exclude commits that *only* touch translations, tests, gpg keys, and
    # team internal tooling.
    git log pkg/import/${last_release}.. -- . \
        ':(exclude)debian/po' \
        ':(exclude)features' \
        ':(exclude)keyrings' \
        ':(exclude)tools' \
        ':(exclude)uaclient/cli/tests' \
        ':(exclude)uaclient/util.py'

I understand Robie used a similar approach, and he may have a more extensive set of excludes than me. This would be a good thing to add to the review docs for future reviewers. In my case, for R30.0 this reduced the number of commits by only 30. Despite that, I think this could be a good approach to help narrow the scope of work for review; as it was it ate the better part of 2 days just to glance through the 150 commits to find the ones needing deeper review. Being able to further filter the list of items requiring our review would be super helpful.

review: Needs Fixing
Revision history for this message
Renan Rodrigo (renanrodrigo) wrote :

Thanks again for the review, Bryce.
I will be working on the FIXME items, and posting answers here when that's the case.

There is a new (small) set of commits to add to this branch, most tests and fixes for the purge things. I will add everything before asking for a new review.

Revision history for this message
Renan Rodrigo (renanrodrigo) wrote :

Added 9 new commits adressing test changes and fixes related to those tests.

Revision history for this message
Renan Rodrigo (renanrodrigo) wrote (last edit ):

Added 14 commits addressing Bryce's 'Needs Fixing' review.
Besides that, I have a reply to the pastebin with some answers and excuses for those changes added here:

https://paste.ubuntu.com/p/mjgXyZZnw5/

Revision history for this message
Bryce Harrington (bryce) wrote :

5f0434a6b57825464591e6892c4a4ba7b0c538f2
  LGTM, +1

f126a05dcfaf3fb39526675be07edae2f52a0063
  LGTM, +1

67f8d1c4f8219d816b70b2847ab2f26a0b86a68b
  "test(aws): include deprecated aws pro fips images (CPC-3030)"
  Verified that pycloudlib 5.6.0 updates the api to add the include_deprecated param
  https://github.com/canonical/pycloudlib/releases/tag/1!5.6.0
  https://github.com/canonical/pycloudlib/pull/320/commits/3b13a3ace4871ea5fc5c702e65a3ec57f9cc1965

I don't fully understand the original problem that this is solving, or if there might be any side effects from the fix. The original bug report is terse, is there another discussion somewhere that could be referenced?

Moreover, if I understand the pycloudlib commit correctly the include_deprecated parameter only applies to the EC2 Cloud Class and classes derived from it, but here in uatools it's being used in uatool's Cloud base class which I assume is intended to work not just with EC2 clouds but others as well? Is that true, or can you help clear my misunderstanding?

Test case coverage would be nice to have as well, if at all possible...

bd8089d7f06661bf1fb457881778f2eedef71493
  "apt: change algorithm to look for valid versions"

This looks like a good refactoring, particularly in that it eliminates the extra looping for exclude_origin.

The first paragraph of the commit message is a bit confusing, and I don't quite understand the condition that leads to the issue, however shouldn't whatever that was also have a corresponding check added in the test cases?

I notice that one of the changes is an added check for `file.component != "now"`, which may be a bit obscure (I didn't know it offhand, at least), so may be worth a comment in either the code or commit message. I don't know if there is an Apt reference doc explaining it, but https://askubuntu.com/questions/892572/what-does-a-component-or-archive-now-mean-in-the-apt-python-api has a sensible answer.

4a73dd2a4fe4f56c029ccb0b2f148bdcca2bf9a3
  LGTM, +1

0e5d48afbbc2bb3aca1b405258818e8c2c8efbbc
  LGTM, +1

  The commit messages Real-time kernel as an exception but I don't see anything about that in the code; hopefully that doesn't indicate anything is missing?

fdc278965eb7980fbfd9f5ca27d7ee130b4b1568
  LGTM, +1
  Great to see the extra tests for the kernel purge case!

7dde9c533c07fba7a896c974ef85e876cc7ef032
  po update, +1

ee1e66de621ad98814f6e4be741e38fa67196fff
  tests ftw, +1

review: Needs Information
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

#: ../../uaclient/messages/__init__.py:697
#, python-brace-format
msgid ""
"This machine is receiving security patching for Ubuntu Main/Restricted\n"
"repository until {date}."
msgstr ""
"Esta máquina está recebendo patches de segurança para o repositório\n"
"Main/Restricted do Ubuntu até"

The pt_BR translation is missing the "{date}." variable.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

There are a few fuzzy pt_BR translations still:
$ grep fuzzy -r debian/po/ | grep -v \\.pot
debian/po/pt_BR.po:#, fuzzy
debian/po/pt_BR.po:#, fuzzy
debian/po/pt_BR.po:#, fuzzy, python-brace-format
debian/po/pt_BR.po:#, fuzzy
debian/po/pt_BR.po:#, fuzzy, python-brace-format
debian/po/pt_BR.po:#, fuzzy, python-brace-format
debian/po/pt_BR.po:#, fuzzy, python-brace-format
debian/po/pt_BR.po:#, fuzzy

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

We talked about this already, but just so we don't forget (as there won't be bionic-specific MPs here in LP):

bionic doesn't support systemd's type exec:

/lib/systemd/system/ubuntu-advantage.service:27: Failed to parse service type, ignoring: exec

review: Needs Fixing
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

I filed https://github.com/canonical/ubuntu-pro-client/issues/2805 about an issue with `pro disable fips --purge`. I know --purge is marked as experimental, so I'll leave it up to you to decide how to handle it.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

Also a reminder about https://github.com/canonical/ubuntu-pro-client/pull/2804, if you would like to have that in the release too.

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

misaligned columns in translated status output: https://github.com/canonical/ubuntu-pro-client/issues/2806

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

unattached status output has untranslated pt_BR strings:

# pro status
SERVIÇO DISPONÍVEL DESCRIÇÃO
anbox-cloud yes Android escalável na nuvem
esm-apps yes Expanded Security Maintenance for Applications
esm-infra yes Expanded Security Maintenance for Infrastructure
livepatch yes Canonical Livepatch service
realtime-kernel yes Ubuntu kernel with PREEMPT_RT patches integrated
usg yes Security compliance and audit tools

That "yes" needs to be handled carefully: there are places where it must not be translated I heard, like machine-parsable output (json).

Revision history for this message
Andreas Hasenack (ahasenack) wrote :

There seem to be different encodings at play in the `pro status --format` output, at least for json and yaml.

json:
"execution_details": "Nenhuma opera\u00e7\u00e3o Ubuntu Pro est\u00e1 sendo executada"

yaml:
execution_details: "Nenhuma opera\xE7\xE3o Ubuntu Pro est\xE1 sendo executada"

Unsure if this is a problem. I quickly imported those into python using json and yaml, and nothing crashed at least.

Revision history for this message
Grant Orndorff (orndorffgrant) wrote :

On the unicode character encoding differences: we use python stdlib json, and pyyaml without any customization, so all should be fine. And I went ahead and checked the JSON and YAML specs and this is the correct encoding for each, respectively.

JSON requires the "\u1234" encoding even for codepoints < 0xFF. See "9 String" here: https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf

YAML allows different encoding for 8-bit, 16-bit and 32-bit codepoints. The 8-bit encoding looks like "\x12" and that is what is being used here. See "rule-ns-esc-8-bit" here: https://yaml.org/spec/1.2.2/#escaped-characters

Revision history for this message
Renan Rodrigo (renanrodrigo) wrote :

@bryce:

> 67f8d1c4f8219d816b70b2847ab2f26a0b86a68b
> I don't fully understand the original problem that this is
> solving, or if there might be any side effects from the
> fix. The original bug report is terse, is there another
> discussion somewhere that could be referenced?

The referenced Jira ticket is the best we have
https://warthogs.atlassian.net/browse/CPC-3030

There should be no side effects: when testing, we include deprecated images in the search for the daily image.
That is pretty much it.
It happens because AWS is (incorrectly) setting some valid images as deprecated, and it was breaking us.
CPC is now aware and monitoring those things with AWS.

> Moreover, if I understand the pycloudlib commit correctly
> the include_deprecated parameter only applies to the EC2
> Cloud Class and classes derived from it, but here in
> uatools it's being used in uatool's Cloud base class which
> I assume is intended to work not just with EC2 clouds but
> others as well? Is that true, or can you help clear my
> misunderstanding?
Yes, this is currently only implemented on EC2, and could be implemented in the respective module... However, we only use this for our own test suite - we may change it if something breaks but it is unlikely.

> Test case coverage would be nice to have as well, if at all possible...
This is mostly a pycloudlib change that we adapted, and it is only part of our test suite - does not affect the package at all, so we don't have tests for these changes.

> 0e5d48afbbc2bb3aca1b405258818e8c2c8efbbc
> The commit messages Real-time kernel as an exception but
> I don't see anything about that in the code; hopefully
> that doesn't indicate anything is missing?

I double checked that, and supports_purge is set to False in Real-time kernel - so we should be good here, all set.

Revision history for this message
Renan Rodrigo (renanrodrigo) wrote :

Added 21 more commits, addressing Andreas' review, and rounding up integration tests and PO file structure. This MP should be ready for another round now.

Revision history for this message
Bryce Harrington (bryce) wrote :

Thanks for adding the test case I flagged.

I still think you should leave some breadcrumbs for the deprecated images issue, since that seems like one of those weird glitchy corner cases that'll pop up some day, and a future engineer might appreciate pointers. And I also still think that using it from the base Cloud class will eventually cause problems. However, you're right this is only affecting test code, so irrelevant for the release as long as the test cases pass, and can be addressed/ignored at your discretion.

I don't spot anything in the new complaints to raise any concerns about.

review: Approve
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

+1

review: Approve
Revision history for this message
Renan Rodrigo (renanrodrigo) wrote :

Thanks for the approval, Andreas!

We still need to coordinate uploads, because of pkgbinarymangler (https://bugs.launchpad.net/ubuntu/+source/pkgbinarymangler/+bug/2037584) - will get in touch soon so we can do it correctly

af525f1... by Renan Rodrigo

changelog backport to mantic

Revision history for this message
Bryce Harrington (bryce) wrote :

The two code changes and changelog entry LGTM, rest are just test updates.

review: Approve
Revision history for this message
Andreas Hasenack (ahasenack) wrote :

This landed already. For some reason the bot didn't pick up the approval votes.

I'm marking this MP as merged to reflect the current status.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
2new file mode 100644
3index 0000000..4ed9ebf
4--- /dev/null
5+++ b/.github/ISSUE_TEMPLATE/bug_report.md
6@@ -0,0 +1,35 @@
7+---
8+name: Report a bug
9+about: Create a report to help us fix or improve the Pro Client
10+title: 'Bug: '
11+labels: 'bug'
12+
13+---
14+
15+**Description of the bug**
16+
17+A clear and concise description of what the bug is.
18+
19+**Expected behavior**
20+
21+A clear and concise description of what you expected to happen.
22+
23+**Current behavior**
24+
25+A clear and concise description of what is happening now
26+Feel free to include screenshots or quoted output if relevant.
27+
28+**To Reproduce**
29+
30+Please include details on how to reproduce the bug.
31+1. Launch a VM/Container
32+2. Run ...
33+
34+**System information:**
35+
36+- Ubuntu release: <!-- $ grep 'VERSION=' /etc/os-release -->
37+- Pro Client version: <!-- $ pro version -->
38+
39+**Additional context**
40+
41+Add any other context about the problem here.
42diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
43new file mode 100644
44index 0000000..93b941f
45--- /dev/null
46+++ b/.github/ISSUE_TEMPLATE/feature_request.md
47@@ -0,0 +1,23 @@
48+---
49+name: Suggest a new feature
50+about: Suggest an idea for the Pro Client
51+title: 'Feature: '
52+labels: 'feature'
53+
54+---
55+
56+**Please describe the scenario where the new feature would be useful**
57+
58+What is the situation that made you realize this feature is necessary?
59+
60+**Describe the solution you'd like**
61+
62+A clear and concise description of what you want to happen.
63+
64+**Current behavior**
65+
66+Is this partially implemented somehow? Is there any alternative way to solve the problem?
67+
68+**Additional context**
69+
70+Add any other context about the feature request here.
71diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
72new file mode 100644
73index 0000000..d6db408
74--- /dev/null
75+++ b/.github/ISSUE_TEMPLATE/question.md
76@@ -0,0 +1,18 @@
77+---
78+name: Ask for guidance / documentation
79+about: Ask questions, and potentially help us improve our docs
80+title: 'Question: '
81+labels: 'docs'
82+
83+---
84+
85+**What is the subject you need more information on?**
86+
87+Let us know how can we help.
88+
89+**Did you check the documentation first?**
90+
91+After looking for guidance in [the Pro Client documentation](https://canonical-ubuntu-pro-client.readthedocs-hosted.com/en/latest/), mark one of the following checkboxes:
92+
93+ - [ ] There is documentation about this, but it needs improvement
94+ - [ ] There is no documentation about this
95diff --git a/.github/workflows/ci-base.yaml b/.github/workflows/ci-base.yaml
96index 59174bf..b1dd0f1 100644
97--- a/.github/workflows/ci-base.yaml
98+++ b/.github/workflows/ci-base.yaml
99@@ -18,7 +18,7 @@ jobs:
100 - name: Install dependencies
101 run: |
102 sudo DEBIAN_FRONTEND=noninteractive apt-get -qy update
103- sudo DEBIAN_FRONTEND=noninteractive apt-get -qy install tox
104+ sudo DEBIAN_FRONTEND=noninteractive apt-get -qy install tox libapt-pkg-dev intltool
105 - name: Git checkout
106 uses: actions/checkout@v3
107 - name: Formatting
108@@ -29,6 +29,10 @@ jobs:
109 run: tox -e mypy
110 - name: Version Consistency
111 run: python3 ./tools/check-versions-are-consistent.py
112+ - name: Translation Template Updated
113+ run: |
114+ ./tools/update-pos.sh
115+ [ $(git diff --ignore-matching-lines="POT-Creation-Date" | wc -c) = "0" ]
116 unit-tests:
117 name: Unit Tests
118 runs-on: ubuntu-22.04
119@@ -36,7 +40,7 @@ jobs:
120 - name: Install dependencies
121 run: |
122 sudo DEBIAN_FRONTEND=noninteractive apt-get -qy update
123- sudo DEBIAN_FRONTEND=noninteractive apt-get -qy install tox
124+ sudo DEBIAN_FRONTEND=noninteractive apt-get -qy install tox libapt-pkg-dev
125 - name: Git checkout
126 uses: actions/checkout@v3
127 - name: Unit
128diff --git a/apport/source_ubuntu-advantage-tools.py b/apport/source_ubuntu-advantage-tools.py
129index f2c4f1a..6489d1d 100644
130--- a/apport/source_ubuntu-advantage-tools.py
131+++ b/apport/source_ubuntu-advantage-tools.py
132@@ -20,14 +20,11 @@ def add_info(report, ui=None):
133 "ua-status.json-error",
134 "livepatch-status.txt",
135 "livepatch-status.txt-error",
136+ "pro-journal.txt",
137 os.path.basename(cfg.cfg_path),
138 os.path.basename(cfg.log_file),
139- os.path.basename(cfg.timer_log_file),
140- os.path.basename(cfg.daemon_log_file),
141 os.path.basename(cfg.data_path("jobs-status")),
142 os.path.basename(defaults.CONFIG_DEFAULTS["log_file"]),
143- os.path.basename(defaults.CONFIG_DEFAULTS["timer_log_file"]),
144- os.path.basename(defaults.CONFIG_DEFAULTS["daemon_log_file"]),
145 }
146 for f in auto_include_log_files:
147 attach_file_if_exists(report, os.path.join(output_dir, f), key=f)
148diff --git a/apt-hook/json-hook-main.cc b/apt-hook/json-hook-main.cc
149index 50f4935..30e770d 100644
150--- a/apt-hook/json-hook-main.cc
151+++ b/apt-hook/json-hook-main.cc
152@@ -1,8 +1,12 @@
153+#include <libintl.h>
154+
155 #include "json-hook.hh"
156
157 int main(int argc, char *argv[])
158 {
159 (void) argc;
160 (void) argv;
161+ setlocale(LC_ALL, "");
162+ textdomain("ubuntu-pro");
163 return run();
164 }
165diff --git a/apt-hook/json-hook.cc b/apt-hook/json-hook.cc
166index 61548b7..30f9791 100644
167--- a/apt-hook/json-hook.cc
168+++ b/apt-hook/json-hook.cc
169@@ -2,6 +2,7 @@
170 #include <fstream>
171 #include <iostream>
172 #include <json-c/json.h>
173+#include <libintl.h>
174 #include <sstream>
175 #include <string>
176 #include <vector>
177@@ -146,57 +147,213 @@ bool count_security_packages_from_apt_stats_json(json_object *stats, security_pa
178 return true;
179 }
180
181+#define MAX_COUNT_MESSAGE_LEN 256
182 std::string create_count_message(security_package_counts &counts) {
183- std::vector<std::string> count_msgs;
184-
185- if (counts.standard + counts.esm_infra + counts.esm_apps == 0) {
186- return "";
187- }
188-
189- if (counts.standard > 0) {
190- std::stringstream ss;
191- ss << counts.standard << " standard LTS security update";
192- if (counts.standard != 1) {
193- ss << "s";
194- }
195- count_msgs.push_back(ss.str());
196- }
197- if (counts.esm_infra > 0) {
198- std::stringstream ss;
199- ss << counts.esm_infra << " esm-infra security ";
200- ss << "update";
201- if (counts.esm_infra != 1) {
202- ss << "s";
203+ char buf[MAX_COUNT_MESSAGE_LEN] = {0};
204+
205+ if (counts.esm_apps == 0) {
206+ if (counts.esm_infra == 0) {
207+ if (counts.standard == 0) {
208+ return "";
209+ } else if (counts.standard == 1) {
210+ return std::string(gettext("1 standard LTS security update"));
211+ } else if (counts.standard > 1) {
212+ std::snprintf(
213+ buf,
214+ MAX_COUNT_MESSAGE_LEN,
215+ gettext("%lu standard LTS security updates"),
216+ counts.standard
217+ );
218+ return std::string(buf);
219+ }
220+ } else if (counts.esm_infra == 1) {
221+ if (counts.standard == 0) {
222+ return std::string(gettext("1 esm-infra security update"));
223+ } else if (counts.standard == 1) {
224+ return std::string(gettext("1 standard LTS security update and 1 esm-infra security update"));
225+ } else if (counts.standard > 1) {
226+ std::snprintf(
227+ buf,
228+ MAX_COUNT_MESSAGE_LEN,
229+ gettext("%lu standard LTS security updates and 1 esm-infra security update"),
230+ counts.standard
231+ );
232+ return std::string(buf);
233+ }
234+ } else if (counts.esm_infra > 1) {
235+ if (counts.standard == 0) {
236+ std::snprintf(
237+ buf,
238+ MAX_COUNT_MESSAGE_LEN,
239+ gettext("%lu esm-infra security updates"),
240+ counts.esm_infra
241+ );
242+ return std::string(buf);
243+ } else if (counts.standard == 1) {
244+ std::snprintf(
245+ buf,
246+ MAX_COUNT_MESSAGE_LEN,
247+ gettext("1 standard LTS security update and %lu esm-infra security updates"),
248+ counts.esm_infra
249+ );
250+ return std::string(buf);
251+ } else if (counts.standard > 1) {
252+ std::snprintf(
253+ buf,
254+ MAX_COUNT_MESSAGE_LEN,
255+ gettext("%lu standard LTS security updates and %lu esm-infra security updates"),
256+ counts.standard,
257+ counts.esm_infra
258+ );
259+ return std::string(buf);
260+ }
261 }
262- count_msgs.push_back(ss.str());
263- }
264- if (counts.esm_apps > 0) {
265- std::stringstream ss;
266- ss << counts.esm_apps << " esm-apps security ";
267- ss << "update";
268- if (counts.esm_apps != 1) {
269- ss << "s";
270+ } else if (counts.esm_apps == 1) {
271+ if (counts.esm_infra == 0) {
272+ if (counts.standard == 0) {
273+ return std::string(gettext("1 esm-apps security update"));
274+ } else if (counts.standard == 1) {
275+ return std::string(gettext("1 standard LTS security update and 1 esm-apps security update"));
276+ } else if (counts.standard > 1) {
277+ std::snprintf(
278+ buf,
279+ MAX_COUNT_MESSAGE_LEN,
280+ gettext("%lu standard LTS security updates and 1 esm-apps security update"),
281+ counts.standard
282+ );
283+ return std::string(buf);
284+ }
285+ } else if (counts.esm_infra == 1) {
286+ if (counts.standard == 0) {
287+ return std::string(gettext("1 esm-infra security update and 1 esm-apps security update"));
288+ } else if (counts.standard == 1) {
289+ return std::string(gettext("1 standard LTS security update, 1 esm-infra security update and 1 esm-apps security update"));
290+ } else if (counts.standard > 1) {
291+ std::snprintf(
292+ buf,
293+ MAX_COUNT_MESSAGE_LEN,
294+ gettext("%lu standard LTS security updates, 1 esm-infra security update and 1 esm-apps security update"),
295+ counts.standard
296+ );
297+ return std::string(buf);
298+ }
299+ } else if (counts.esm_infra > 1) {
300+ if (counts.standard == 0) {
301+ std::snprintf(
302+ buf,
303+ MAX_COUNT_MESSAGE_LEN,
304+ gettext("%lu esm-infra security updates and 1 esm-apps security update"),
305+ counts.esm_infra
306+ );
307+ return std::string(buf);
308+ } else if (counts.standard == 1) {
309+ std::snprintf(
310+ buf,
311+ MAX_COUNT_MESSAGE_LEN,
312+ gettext("1 standard LTS security update, %lu esm-infra security updates and 1 esm-apps security update"),
313+ counts.esm_infra
314+ );
315+ return std::string(buf);
316+ } else if (counts.standard > 1) {
317+ std::snprintf(
318+ buf,
319+ MAX_COUNT_MESSAGE_LEN,
320+ gettext("%lu standard LTS security updates, %lu esm-infra security updates and 1 esm-apps security update"),
321+ counts.standard,
322+ counts.esm_infra
323+ );
324+ return std::string(buf);
325+ }
326 }
327- count_msgs.push_back(ss.str());
328- }
329-
330- std::stringstream message_ss;
331- for (uint i = 0; i < count_msgs.size(); i++) {
332- if (count_msgs.size() == 3) {
333- if (i == 1) {
334- message_ss << ", ";
335- } else if (i == 2) {
336- message_ss << " and ";
337+ } else if (counts.esm_apps > 1) {
338+ if (counts.esm_infra == 0) {
339+ if (counts.standard == 0) {
340+ std::snprintf(
341+ buf,
342+ MAX_COUNT_MESSAGE_LEN,
343+ gettext("%lu esm-apps security updates"),
344+ counts.esm_apps
345+ );
346+ return std::string(buf);
347+ } else if (counts.standard == 1) {
348+ std::snprintf(
349+ buf,
350+ MAX_COUNT_MESSAGE_LEN,
351+ gettext("1 standard LTS security update and %lu esm-apps security updates"),
352+ counts.esm_apps
353+ );
354+ return std::string(buf);
355+ } else if (counts.standard > 1) {
356+ std::snprintf(
357+ buf,
358+ MAX_COUNT_MESSAGE_LEN,
359+ gettext("%lu standard LTS security updates and %lu esm-apps security updates"),
360+ counts.standard,
361+ counts.esm_apps
362+ );
363+ return std::string(buf);
364+ }
365+ } else if (counts.esm_infra == 1) {
366+ if (counts.standard == 0) {
367+ std::snprintf(
368+ buf,
369+ MAX_COUNT_MESSAGE_LEN,
370+ gettext("1 esm-infra security update and %lu esm-apps security updates"),
371+ counts.esm_apps
372+ );
373+ return std::string(buf);
374+ } else if (counts.standard == 1) {
375+ std::snprintf(
376+ buf,
377+ MAX_COUNT_MESSAGE_LEN,
378+ gettext("1 standard LTS security update, 1 esm-infra security update and %lu esm-apps security updates"),
379+ counts.esm_apps
380+ );
381+ return std::string(buf);
382+ } else if (counts.standard > 1) {
383+ std::snprintf(
384+ buf,
385+ MAX_COUNT_MESSAGE_LEN,
386+ gettext("%lu standard LTS security updates, 1 esm-infra security update and %lu esm-apps security updates"),
387+ counts.standard,
388+ counts.esm_apps
389+ );
390+ return std::string(buf);
391 }
392- } else if (count_msgs.size() == 2) {
393- if (i == 1) {
394- message_ss << " and ";
395+ } else if (counts.esm_infra > 1) {
396+ if (counts.standard == 0) {
397+ std::snprintf(
398+ buf,
399+ MAX_COUNT_MESSAGE_LEN,
400+ gettext("%lu esm-infra security updates and %lu esm-apps security updates"),
401+ counts.esm_infra,
402+ counts.esm_apps
403+ );
404+ return std::string(buf);
405+ } else if (counts.standard == 1) {
406+ std::snprintf(
407+ buf,
408+ MAX_COUNT_MESSAGE_LEN,
409+ gettext("1 standard LTS security update, %lu esm-infra security updates and %lu esm-apps security updates"),
410+ counts.esm_infra,
411+ counts.esm_apps
412+ );
413+ return std::string(buf);
414+ } else if (counts.standard > 1) {
415+ std::snprintf(
416+ buf,
417+ MAX_COUNT_MESSAGE_LEN,
418+ gettext("%lu standard LTS security updates, %lu esm-infra security updates and %lu esm-apps security updates"),
419+ counts.standard,
420+ counts.esm_infra,
421+ counts.esm_apps
422+ );
423+ return std::string(buf);
424 }
425 }
426- message_ss << count_msgs[i];
427 }
428
429- return message_ss.str();
430+ return "";
431 }
432
433 enum CloudID {AWS, AZURE, GCE, NONE};
434@@ -235,61 +392,113 @@ ESMInfraSeries get_esm_infra_series() {
435 return ret;
436 }
437
438-struct ESMContext {
439- std::string context;
440- std::string url;
441-};
442-
443-ESMContext get_esm_context() {
444+void print_learn_more_with_context() {
445 CloudID cloud_id = get_cloud_id();
446 ESMInfraSeries esm_infra_series = get_esm_infra_series();
447
448- ESMContext ret;
449- ret.context = "";
450- ret.url = "https://ubuntu.com/pro";
451-
452 if (esm_infra_series == XENIAL) {
453 if (cloud_id == AZURE) {
454- ret.context = " for 16.04 on Azure";
455- ret.url = "https://ubuntu.com/16-04/azure";
456+ printf(
457+ gettext(
458+ "Learn more about Ubuntu Pro for 16.04 on Azure at %s"
459+ ),
460+ "https://ubuntu.com/16-04/azure"
461+ );
462+ printf("\n");
463+ return;
464 } else {
465- ret.context = " for 16.04";
466- ret.url = "https://ubuntu.com/16-04";
467+ printf(
468+ gettext(
469+ "Learn more about Ubuntu Pro for 16.04 at %s"
470+ ),
471+ "https://ubuntu.com/16-04"
472+ );
473+ printf("\n");
474+ return;
475 }
476 } else if (esm_infra_series == BIONIC) {
477 if (cloud_id == AZURE) {
478- ret.context = " for 18.04 on Azure";
479- ret.url = "https://ubuntu.com/18-04/azure";
480+ printf(
481+ gettext(
482+ "Learn more about Ubuntu Pro for 18.04 on Azure at %s"
483+ ),
484+ "https://ubuntu.com/18-04/azure"
485+ );
486+ printf("\n");
487+ return;
488 } else {
489- ret.context = " for 18.04";
490- ret.url = "https://ubuntu.com/18-04";
491+ printf(
492+ gettext(
493+ "Learn more about Ubuntu Pro for 18.04 at %s"
494+ ),
495+ "https://ubuntu.com/18-04"
496+ );
497+ printf("\n");
498+ return;
499 }
500 } else {
501 if (cloud_id == AZURE) {
502- ret.context = " on Azure";
503- ret.url = "https://ubuntu.com/azure/pro";
504+ printf(
505+ gettext(
506+ "Learn more about Ubuntu Pro on Azure at %s"
507+ ),
508+ "https://ubuntu.com/azure/pro"
509+ );
510+ printf("\n");
511+ return;
512 } else if (cloud_id == AWS) {
513- ret.context = " on AWS";
514- ret.url = "https://ubuntu.com/aws/pro";
515+ printf(
516+ gettext(
517+ "Learn more about Ubuntu Pro on AWS at %s"
518+ ),
519+ "https://ubuntu.com/aws/pro"
520+ );
521+ printf("\n");
522+ return;
523 } else if (cloud_id == GCE) {
524- ret.context = " on GCP";
525- ret.url = "https://ubuntu.com/gcp/pro";
526+ printf(
527+ gettext(
528+ "Learn more about Ubuntu Pro on GCP at %s"
529+ ),
530+ "https://ubuntu.com/gcp/pro"
531+ );
532+ printf("\n");
533+ return;
534 }
535 }
536
537- return ret;
538+ printf(
539+ gettext(
540+ "Learn more about Ubuntu Pro at %s"
541+ ),
542+ "https://ubuntu.com/pro"
543+ );
544+ printf("\n");
545+ return;
546 }
547
548-void print_esm_packages(ESMType esm_type, std::vector<std::string> package_names, ESMContext &esm_context) {
549+void print_esm_packages(ESMType esm_type, std::vector<std::string> package_names) {
550
551 if (esm_type == APPS) {
552- std::cout << "Get more security updates through Ubuntu Pro with 'esm-apps' enabled:";
553+ printf(
554+ ngettext(
555+ "Get another security update through Ubuntu Pro with 'esm-apps' enabled:",
556+ "Get more security updates through Ubuntu Pro with 'esm-apps' enabled:",
557+ package_names.size()
558+ )
559+ );
560+ printf("\n");
561 } else {
562- std::cout << "The following security updates require Ubuntu Pro with 'esm-infra' enabled:";
563+ printf(
564+ ngettext(
565+ "The following security update requires Ubuntu Pro with 'esm-infra' enabled:",
566+ "The following security updates require Ubuntu Pro with 'esm-infra' enabled:",
567+ package_names.size()
568+ )
569+ );
570+ printf("\n");
571 }
572
573- std::cout << std::endl;
574-
575 std::string curr_line = " ";
576 for (std::string &name : package_names) {
577 if ((curr_line.length() + 1 + name.length()) >= 79) {
578@@ -302,7 +511,7 @@ void print_esm_packages(ESMType esm_type, std::vector<std::string> package_names
579 std::cout << curr_line << std::endl;
580 }
581
582- std::cout << "Learn more about Ubuntu Pro" << esm_context.context << " at " << esm_context.url << std::endl;
583+ print_learn_more_with_context();
584 }
585
586 int run()
587@@ -384,11 +593,10 @@ int run()
588 ESMUpdates esm_updates;
589 bool success = get_potential_esm_updates(esm_updates);
590 if (success) {
591- ESMContext esm_context = get_esm_context();
592 if (!esm_updates.infra_packages.empty()) {
593- print_esm_packages(INFRA, esm_updates.infra_packages, esm_context);
594+ print_esm_packages(INFRA, esm_updates.infra_packages);
595 } else if (!esm_updates.apps_packages.empty()) {
596- print_esm_packages(APPS, esm_updates.apps_packages, esm_context);
597+ print_esm_packages(APPS, esm_updates.apps_packages);
598 }
599 }
600
601diff --git a/apt-hook/json-hook.hh b/apt-hook/json-hook.hh
602index ee99ed2..b6ed504 100644
603--- a/apt-hook/json-hook.hh
604+++ b/apt-hook/json-hook.hh
605@@ -9,9 +9,9 @@ struct jsonrpc_request {
606 json_object *params;
607 };
608 struct security_package_counts {
609- int64_t standard;
610- int64_t esm_infra;
611- int64_t esm_apps;
612+ long unsigned int standard;
613+ long unsigned int esm_infra;
614+ long unsigned int esm_apps;
615 };
616
617 enum ESMType {APPS, INFRA};
618diff --git a/debian/changelog b/debian/changelog
619index e37337b..1bc8b2c 100644
620--- a/debian/changelog
621+++ b/debian/changelog
622@@ -1,3 +1,75 @@
623+ubuntu-advantage-tools (30~23.10) mantic; urgency=medium
624+
625+ * Backport new upstream release to mantic (LP: #2038461)
626+
627+ -- Renan Rodrigo <renanrodrigo@canonical.com> Tue, 07 Nov 2023 16:23:34 +0200
628+
629+ubuntu-advantage-tools (30) noble; urgency=medium
630+
631+ * d/control:
632+ - add python3-apt as a build dependency
633+ - add the new ubuntu-pro-client-l10n binary package
634+ - recommend installing ubuntu-pro-client-l10n
635+
636+ * d/po/*:
637+ - Makefile to build localization files to debian/po/usr/share/locale/
638+ - update POTFILES.in to cover all translatable messages
639+ - remove old unused pot file
640+ - add new complete pot file for "ubuntu-pro" domain
641+ - add first Brazilian Portuguese translations
642+
643+ * d/rules:
644+ - add step to build the translations
645+
646+ * d/tests/control:
647+ - mark autopkgtests as superficial (GH: #2609)
648+
649+ * d/ubuntu-advantage-tools.maintscript:
650+ - remove /etc/ubuntu-advantage/help_data.yaml
651+
652+ * d/ubuntu-pro-client-l10n.install:
653+ - add install file for the new binary package
654+
655+ * New upstream release 30 (LP: #2038461)
656+ - api:
657+ + add new backwards compatible plan steps to the v1 fix plan endpoints
658+ + improve information returned from the fix plan endpoints
659+ + new endpoint: u.pro.security.fix.cve.execute.v1
660+ + new endpoint: u.pro.security.fix.usn.execute.v1
661+ - apt: improve performance and consistency by refactoring the code to use
662+ the apt_pkg module
663+ - auto-attach: add newline to the MOTD message to separate it from other
664+ MOTD messages
665+ - contract: send information about variants to the contracts server
666+ - enable: update only service specific apt sources when enabling a service
667+ (GH: #1311) (GH: #1482)
668+ - esm: create static files to pin packages from esm-infra and esm-apps with
669+ higher priority (GH: #2580)
670+ - disable:
671+ + (experimental) add the --purge flag to the disable command, so users
672+ can remove all service related packages when disabling a service
673+ + show extra warnings when kernels are involved in the purge operation
674+ - files: Reduce race window when creating new files (LP: #2024204)
675+ - fips: add support to Jammy to prepare for when it is available
676+ - fips-preview:
677+ + add fips-preview as a new entitlement
678+ - github: add issue templates (GH: #2646)
679+ - internationalization:
680+ + add general internationalization support and templates
681+ + add initial sentence set for Brazilian Portuguese
682+ - logging:
683+ + add journald logging for the daemon and systemd timer
684+ + remove daemon and timer log files
685+ + standardize the logging calls through the codebase (GH: #2632)
686+ - systemd: change ubuntu-advantage.service type from 'notify' to 'simple',
687+ dropping the dependency on python3-systemd (LP: #2038417) (GH: #2692)
688+ - tests:
689+ + add scenarios where cloud-init is present but disabled (LP: #1938208)
690+ + change 'permission' to 'priority' when checking apt priority in tests
691+ (GH: #2719)
692+
693+ -- Renan Rodrigo <renanrodrigo@canonical.com> Tue, 07 Nov 2023 08:35:37 -0300
694+
695 ubuntu-advantage-tools (29.4) mantic; urgency=medium
696
697 * esm: remove static config file that pin packages from esm-infra
698diff --git a/debian/control b/debian/control
699index 51f0549..e747391 100644
700--- a/debian/control
701+++ b/debian/control
702@@ -15,6 +15,7 @@ Build-Depends: bash-completion,
703 gettext,
704 git,
705 libapt-pkg-dev,
706+ python3-apt,
707 libjson-c-dev,
708 libboost-test-dev,
709 po-debconf,
710@@ -38,6 +39,7 @@ Depends: ${misc:Depends},
711 python3-apt,
712 python3-pkg-resources,
713 ${extra:Depends}
714+Recommends: ubuntu-pro-client-l10n
715 Description: management tools for Ubuntu Pro
716 Ubuntu Pro is the professional package of tooling, technology
717 and expertise from Canonical, helping organisations around the world
718@@ -46,6 +48,13 @@ Description: management tools for Ubuntu Pro
719 Subscribers to Ubuntu Pro will find helpful tools for accessing
720 services in this package.
721
722+Package: ubuntu-pro-client-l10n
723+Architecture: any
724+Depends: ${misc:Depends}, ubuntu-advantage-tools (>=30~)
725+Description: Translations for Ubuntu Pro Client
726+ This package delivers translations of Ubuntu Pro Client for various
727+ languages.
728+
729 Package: ubuntu-advantage-pro
730 Architecture: all
731 Depends: ${misc:Depends}, ubuntu-advantage-tools (>=20.2)
732diff --git a/debian/po/Makefile b/debian/po/Makefile
733new file mode 100644
734index 0000000..a1a72db
735--- /dev/null
736+++ b/debian/po/Makefile
737@@ -0,0 +1,10 @@
738+all: build
739+
740+POS=$(wildcard *.po)
741+MOS=$(POS:.po=.mo)
742+
743+%.mo: %.po
744+ mkdir -p usr/share/locale/$*/LC_MESSAGES
745+ msgfmt --check-format $< -o usr/share/locale/$*/LC_MESSAGES/ubuntu-pro.mo
746+
747+build: $(MOS)
748diff --git a/debian/po/POTFILES.in b/debian/po/POTFILES.in
749index 986f7cc..71d0224 100644
750--- a/debian/po/POTFILES.in
751+++ b/debian/po/POTFILES.in
752@@ -1 +1,3 @@
753+../apt-hook/json-hook.cc
754 [type: gettext/rfc822deb] ubuntu-advantage-tools.templates
755+../uaclient/messages/__init__.py
756diff --git a/debian/po/pt_BR.po b/debian/po/pt_BR.po
757new file mode 100644
758index 0000000..ddec174
759--- /dev/null
760+++ b/debian/po/pt_BR.po
761@@ -0,0 +1,3428 @@
762+# Portuguese translations for ubuntu-advantage-tools package.
763+# Copyright (C) 2023 THE PACKAGE'S COPYRIGHT HOLDER
764+# This file is distributed under the same license as the ubuntu-advantage-tools package.
765+# Lucas Moura <lucas.moura@canonical.com>, 2023.
766+#
767+msgid ""
768+msgstr ""
769+"Project-Id-Version: PACKAGE VERSION\n"
770+"Report-Msgid-Bugs-To: \n"
771+"POT-Creation-Date: 2023-10-27 11:01-0400\n"
772+"PO-Revision-Date: 2023-09-25 12:29-0400\n"
773+"Last-Translator: Lucas Moura <lucas.moura@canonical.com>\n"
774+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
775+"net>\n"
776+"Language: pt_BR\n"
777+"MIME-Version: 1.0\n"
778+"Content-Type: text/plain; charset=UTF-8\n"
779+"Content-Transfer-Encoding: 8bit\n"
780+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
781+
782+#: ../../apt-hook/json-hook.cc:159
783+msgid "1 standard LTS security update"
784+msgstr "1 atualização de segurança de LTS"
785+
786+#: ../../apt-hook/json-hook.cc:164
787+#, c-format
788+msgid "%lu standard LTS security updates"
789+msgstr "%lu atualizações de segurança de LTS"
790+
791+#: ../../apt-hook/json-hook.cc:171
792+msgid "1 esm-infra security update"
793+msgstr "1 atualização de segurança do esm-infra"
794+
795+#: ../../apt-hook/json-hook.cc:173
796+msgid "1 standard LTS security update and 1 esm-infra security update"
797+msgstr ""
798+"1 atualização de segurança de LTS e 1 atualização de segurança do esm-infra"
799+
800+#: ../../apt-hook/json-hook.cc:178
801+#, c-format
802+msgid "%lu standard LTS security updates and 1 esm-infra security update"
803+msgstr ""
804+"%lu atualizações de segurança de LTS e 1 atualização de segurança do esm-"
805+"infra"
806+
807+#: ../../apt-hook/json-hook.cc:188
808+#, c-format
809+msgid "%lu esm-infra security updates"
810+msgstr "%lu atualizações de segurança do esm-infra"
811+
812+#: ../../apt-hook/json-hook.cc:196
813+#, c-format
814+msgid "1 standard LTS security update and %lu esm-infra security updates"
815+msgstr ""
816+"1 atualização de segurança de LTS e %lu atualizações de segurança do esm-"
817+"infra"
818+
819+#: ../../apt-hook/json-hook.cc:204
820+#, c-format
821+msgid "%lu standard LTS security updates and %lu esm-infra security updates"
822+msgstr ""
823+"%lu atualizações de segurança de LTS e %lu atualizações de segurança do esm-"
824+"infra"
825+
826+#: ../../apt-hook/json-hook.cc:214
827+msgid "1 esm-apps security update"
828+msgstr "1 atualização de segurança do esm-apps"
829+
830+#: ../../apt-hook/json-hook.cc:216
831+msgid "1 standard LTS security update and 1 esm-apps security update"
832+msgstr ""
833+"1 atualização de segurança de LTS e 1 atualização de segurança do esm-apps"
834+
835+#: ../../apt-hook/json-hook.cc:221
836+#, c-format
837+msgid "%lu standard LTS security updates and 1 esm-apps security update"
838+msgstr ""
839+"%lu atualizações de segurança de LTS e 1 atualização de segurança do esm-apps"
840+
841+#: ../../apt-hook/json-hook.cc:228
842+msgid "1 esm-infra security update and 1 esm-apps security update"
843+msgstr ""
844+"1 atualização de segurança do esm-infra e 1 atualização de segurança do esm-"
845+"apps"
846+
847+#: ../../apt-hook/json-hook.cc:230
848+msgid ""
849+"1 standard LTS security update, 1 esm-infra security update and 1 esm-apps "
850+"security update"
851+msgstr ""
852+"1 atualização de segurança de LTS, 1 atualização de segurança do esm-infra e "
853+"1 atualização de segurança do esm-apps"
854+
855+#: ../../apt-hook/json-hook.cc:235
856+#, c-format
857+msgid ""
858+"%lu standard LTS security updates, 1 esm-infra security update and 1 esm-"
859+"apps security update"
860+msgstr ""
861+"%lu atualizações de segurança de LTS, 1 atualização de segurança do esm-"
862+"infra e 1 atualização de segurança do esm-apps"
863+
864+#: ../../apt-hook/json-hook.cc:245
865+#, c-format
866+msgid "%lu esm-infra security updates and 1 esm-apps security update"
867+msgstr ""
868+"%lu atualizações de segurança do esm-infra e 1 atualização de segurança do "
869+"esm-apps"
870+
871+#: ../../apt-hook/json-hook.cc:253
872+#, c-format
873+msgid ""
874+"1 standard LTS security update, %lu esm-infra security updates and 1 esm-"
875+"apps security update"
876+msgstr ""
877+"1 atualização de segurança de LTS, %lu atualizações de segurança do esm-"
878+"infra e 1 atualização de segurança do esm-apps"
879+
880+#: ../../apt-hook/json-hook.cc:261
881+#, c-format
882+msgid ""
883+"%lu standard LTS security updates, %lu esm-infra security updates and 1 esm-"
884+"apps security update"
885+msgstr ""
886+"%lu atualizações de segurança de LTS, %lu atualizações de segurança do esm-"
887+"infra e 1 atualização de segurança do esm-apps"
888+
889+#: ../../apt-hook/json-hook.cc:274
890+#, c-format
891+msgid "%lu esm-apps security updates"
892+msgstr "%lu atualizações de segurança do esm-apps"
893+
894+#: ../../apt-hook/json-hook.cc:282
895+#, c-format
896+msgid "1 standard LTS security update and %lu esm-apps security updates"
897+msgstr ""
898+"1 atualização de segurança de LTS e %lu atualizações de segurança do esm-apps"
899+
900+#: ../../apt-hook/json-hook.cc:290
901+#, c-format
902+msgid "%lu standard LTS security updates and %lu esm-apps security updates"
903+msgstr ""
904+"%lu atualizações de segurança de LTS and %lu atualizações de segurança do "
905+"esm-apps"
906+
907+#: ../../apt-hook/json-hook.cc:301
908+#, c-format
909+msgid "1 esm-infra security update and %lu esm-apps security updates"
910+msgstr ""
911+"1 atualização de segurança do esm-infra e %lu atualizações de segurança do "
912+"esm-apps"
913+
914+#: ../../apt-hook/json-hook.cc:309
915+#, c-format
916+msgid ""
917+"1 standard LTS security update, 1 esm-infra security update and %lu esm-apps "
918+"security updates"
919+msgstr ""
920+"1 atualização de segurança de LTS, 1 atualização de segurança do esm-infra e "
921+"%lu atualizações de segurança do esm-apps"
922+
923+#: ../../apt-hook/json-hook.cc:317
924+#, c-format
925+msgid ""
926+"%lu standard LTS security updates, 1 esm-infra security update and %lu esm-"
927+"apps security updates"
928+msgstr ""
929+"%lu atualizações de segurança de LTS, 1 atualização de segurança de esm-"
930+"infra e%lu atualizações de segurança do esm-apps"
931+
932+#: ../../apt-hook/json-hook.cc:328
933+#, c-format
934+msgid "%lu esm-infra security updates and %lu esm-apps security updates"
935+msgstr ""
936+"%lu atualizações de segurança do esm-infra e %lu atualizações de segurança "
937+"do esm-apps"
938+
939+#: ../../apt-hook/json-hook.cc:337
940+#, c-format
941+msgid ""
942+"1 standard LTS security update, %lu esm-infra security updates and %lu esm-"
943+"apps security updates"
944+msgstr ""
945+"1 atualização de segurança de LTS, %lu atualizações de segurança do esm-"
946+"infra e%lu atualizações de segurança do esm-apps"
947+
948+#: ../../apt-hook/json-hook.cc:346
949+#, c-format
950+msgid ""
951+"%lu standard LTS security updates, %lu esm-infra security updates and %lu "
952+"esm-apps security updates"
953+msgstr ""
954+"%lu atualizações de segurança de LTS, %lu atualizações de segurança do esm-"
955+"infra e %lu atualizações de segurança do esm-apps"
956+
957+#: ../../apt-hook/json-hook.cc:403
958+#, c-format
959+msgid "Learn more about Ubuntu Pro for 16.04 on Azure at %s"
960+msgstr "Saiba mais sobre o Ubuntu Pro para a versão 16.04 no Azure em %s"
961+
962+#: ../../apt-hook/json-hook.cc:412
963+#, c-format
964+msgid "Learn more about Ubuntu Pro for 16.04 at %s"
965+msgstr "Saiba mais sobre o Ubuntu Pro para a versão 16.04 em %s"
966+
967+#: ../../apt-hook/json-hook.cc:423
968+#, c-format
969+msgid "Learn more about Ubuntu Pro for 18.04 on Azure at %s"
970+msgstr "Saiba mais sobre o Ubuntu Pro para a versão 18.04 no Azure em %s"
971+
972+#: ../../apt-hook/json-hook.cc:432
973+#, c-format
974+msgid "Learn more about Ubuntu Pro for 18.04 at %s"
975+msgstr "Saiba mais sobre o Ubuntu Pro para a versão 18.04 em %s"
976+
977+#: ../../apt-hook/json-hook.cc:443
978+#, c-format
979+msgid "Learn more about Ubuntu Pro on Azure at %s"
980+msgstr "Saiba mais sobre o Ubuntu Pro no Azure em %s"
981+
982+#: ../../apt-hook/json-hook.cc:452
983+#, c-format
984+msgid "Learn more about Ubuntu Pro on AWS at %s"
985+msgstr "Saiba mais sobre o Ubuntu Pro na AWS em %s"
986+
987+#: ../../apt-hook/json-hook.cc:461
988+#, c-format
989+msgid "Learn more about Ubuntu Pro on GCP at %s"
990+msgstr "Saiba mais sobre o Ubuntu Pro no GCP em %s"
991+
992+#: ../../apt-hook/json-hook.cc:472
993+#, c-format
994+msgid "Learn more about Ubuntu Pro at %s"
995+msgstr "Saiba mais sobre o Ubuntu Pro em %s"
996+
997+#: ../../apt-hook/json-hook.cc:485
998+#, c-format
999+msgid "Get another security update through Ubuntu Pro with 'esm-apps' enabled:"
1000+msgid_plural ""
1001+"Get more security updates through Ubuntu Pro with 'esm-apps' enabled:"
1002+msgstr[0] ""
1003+"Obtenha mais uma atualização de segurança através do Ubuntu Pro com 'esm-"
1004+"apps' habilitado:"
1005+msgstr[1] ""
1006+"Obtenha mais atualizações de segurança através do Ubuntu Pro com 'esm-apps' "
1007+"habilitado:"
1008+
1009+#: ../../apt-hook/json-hook.cc:494
1010+#, c-format
1011+msgid ""
1012+"The following security update requires Ubuntu Pro with 'esm-infra' enabled:"
1013+msgid_plural ""
1014+"The following security updates require Ubuntu Pro with 'esm-infra' enabled:"
1015+msgstr[0] ""
1016+"A seguinte atualização de segurança requer o Ubuntu Pro com 'esm-infra' "
1017+"habilitado:"
1018+msgstr[1] ""
1019+"As seguintes atualizações de segurança requerem o Ubuntu Pro com 'esm-infra' "
1020+"habilitado:"
1021+
1022+#. Description
1023+#: ../ubuntu-advantage-tools.templates:3
1024+msgid "Ubuntu Pro support now requires ubuntu-advantage-pro"
1025+msgstr "O suporte ao Ubuntu Pro agora requer o pacote ubuntu-advantage-pro"
1026+
1027+#. Description
1028+#: ../ubuntu-advantage-tools.templates:3
1029+msgid "To install run the following:"
1030+msgstr "Para instalar, execute:"
1031+
1032+#. Description
1033+#: ../ubuntu-advantage-tools.templates:3
1034+msgid "sudo apt install ubuntu-advantage-pro"
1035+msgstr ""
1036+
1037+#: ../../uaclient/messages/__init__.py:43
1038+msgid "yes"
1039+msgstr "sim"
1040+
1041+#: ../../uaclient/messages/__init__.py:44
1042+msgid "no"
1043+msgstr "não"
1044+
1045+#: ../../uaclient/messages/__init__.py:50
1046+msgid "Are you sure? (y/N) "
1047+msgstr "Tem certeza? (y/N) "
1048+
1049+#: ../../uaclient/messages/__init__.py:51
1050+msgid "Do you want to proceed? (y/N) "
1051+msgstr "Você quer prosseguir? (y/N) "
1052+
1053+#: ../../uaclient/messages/__init__.py:53
1054+msgid "Interrupt received; exiting."
1055+msgstr "Sinal de interrupção recebido; saindo."
1056+
1057+#: ../../uaclient/messages/__init__.py:55
1058+#, python-brace-format
1059+msgid "Operation in progress: {lock_holder} (pid:{pid})"
1060+msgstr "Operação em andamento: {lock_holder} (pid:{pid})"
1061+
1062+#: ../../uaclient/messages/__init__.py:58
1063+msgid "Successfully refreshed your subscription."
1064+msgstr "Sua assinatura foi atualizada com sucesso."
1065+
1066+#: ../../uaclient/messages/__init__.py:61
1067+msgid "Successfully processed your pro configuration."
1068+msgstr "Sua configuração do pro foi processada com sucesso"
1069+
1070+#: ../../uaclient/messages/__init__.py:64
1071+msgid "Successfully updated Ubuntu Pro related APT and MOTD messages."
1072+msgstr ""
1073+"suas messagens de APT e MOTD relacionadas ao Ubuntu Pro foram atualizadas "
1074+"com sucesso"
1075+
1076+#: ../../uaclient/messages/__init__.py:68
1077+msgid "Failed running reboot_cmds script. See: /var/log/ubuntu-advantage.log"
1078+msgstr ""
1079+"Falha ao executar o script reboot_cmds. Veja mais em: /var/log/ubuntu-"
1080+"advantage.log"
1081+
1082+#: ../../uaclient/messages/__init__.py:72
1083+msgid ""
1084+"APT lock is held. Ubuntu Pro configuration will wait until it is released"
1085+msgstr ""
1086+"O APT está ocupado. A configuração do Ubuntu Pro aguardará até que esteja "
1087+"disponível."
1088+
1089+#: ../../uaclient/messages/__init__.py:75
1090+#, python-brace-format
1091+msgid "Could not find past release for {release}"
1092+msgstr "Não foi possível encontrar a versão anterior a {release}"
1093+
1094+#: ../../uaclient/messages/__init__.py:78
1095+msgid "Starting upgrade of Ubuntu Pro service configuration"
1096+msgstr "Começando atualização das configurações de serviço do Ubuntu Pro"
1097+
1098+#: ../../uaclient/messages/__init__.py:81
1099+msgid "Finished upgrade of Ubuntu Pro service configuration"
1100+msgstr "Atualização das configurações de serviço do Ubuntu Pro concluída"
1101+
1102+#: ../../uaclient/messages/__init__.py:85
1103+msgid ""
1104+"Couldn't import the YAML module.\n"
1105+"Make sure the 'python3-yaml' package is installed correctly\n"
1106+"and /usr/lib/python3/dist-packages is in your PYTHONPATH."
1107+msgstr ""
1108+"Não foi possível importar o módulo YAML. Certifique-se que o pacote 'python3-"
1109+"yaml' está corretamente instalada\n"
1110+"e que /usr/lib/python3/dist-packages está no seu PYTHONPATH."
1111+
1112+#: ../../uaclient/messages/__init__.py:91
1113+#, python-brace-format
1114+msgid "Error while trying to parse a yaml file using 'yaml' from {path}"
1115+msgstr "Erro ao analisar um arquivo yaml usando 'yaml' em {path}"
1116+
1117+#: ../../uaclient/messages/__init__.py:95
1118+msgid ""
1119+"snapd does not have a wait command.\n"
1120+"Enabling Livepatch can fail under this scenario.\n"
1121+"Please, upgrade snapd if Livepatch enable fails and try again."
1122+msgstr ""
1123+"snapd não tem o comando wait.\n"
1124+"Habilitar o Livepatch pode falhar neste cenário.\n"
1125+"Por favor, atualize o snapd caso a habilitação do Livepatch falhe e tente "
1126+"novamente."
1127+
1128+#: ../../uaclient/messages/__init__.py:104
1129+#, python-brace-format
1130+msgid ""
1131+" A new version is available: {version}\n"
1132+"Please run:\n"
1133+" sudo apt-get install ubuntu-advantage-tools\n"
1134+"to get the latest bug fixes and new features."
1135+msgstr ""
1136+" Uma nova versão está disponível: {version}\n"
1137+"Por favor, execute:\n"
1138+" sudo apt-get install ubuntu-advantage-tools\n"
1139+"para obter as últimas correções de erros e novas funcionalides."
1140+
1141+#. ##############################################################################
1142+#. GENERIC SYSTEM OPERATIONS #
1143+#. ##############################################################################
1144+#: ../../uaclient/messages/__init__.py:118
1145+#, python-brace-format
1146+msgid "Executing `{command}`"
1147+msgstr "Executando `{command}`"
1148+
1149+#: ../../uaclient/messages/__init__.py:119
1150+#, python-brace-format
1151+msgid "Executing `{command}` failed."
1152+msgstr "O comando `{command}` falhou"
1153+
1154+#: ../../uaclient/messages/__init__.py:120
1155+#, python-brace-format
1156+msgid "Invalid command specified '{cmd}'."
1157+msgstr "Comando inválido especificado: {cmd}"
1158+
1159+#: ../../uaclient/messages/__init__.py:122
1160+#, python-brace-format
1161+msgid "Failed running command '{cmd}' [exit({exit_code})]. Message: {stderr}"
1162+msgstr ""
1163+"Falha ao executar comando '{cmd}' [exit({exit_code})]. Mensagem: {stderr}"
1164+
1165+#: ../../uaclient/messages/__init__.py:125
1166+#, python-brace-format
1167+msgid "Installing {packages}"
1168+msgstr "Instalando {packages}"
1169+
1170+#: ../../uaclient/messages/__init__.py:126
1171+#, python-brace-format
1172+msgid "Installing {title} packages"
1173+msgstr "Instalando pacotes do {title}"
1174+
1175+#: ../../uaclient/messages/__init__.py:127
1176+msgid "Installing required snaps"
1177+msgstr "Instalando snaps necessários"
1178+
1179+#: ../../uaclient/messages/__init__.py:129
1180+#, python-brace-format
1181+msgid "Installing required snap: {snap}"
1182+msgstr "Instalando snap necessário: {snap}"
1183+
1184+#: ../../uaclient/messages/__init__.py:132
1185+#, python-brace-format
1186+msgid "Skipping installing packages: {packages}"
1187+msgstr "Não instalando os pacotes: {packages}"
1188+
1189+#: ../../uaclient/messages/__init__.py:134
1190+#, python-brace-format
1191+msgid "Uninstalling {packages}"
1192+msgstr "Desinstalando {packages}"
1193+
1194+#: ../../uaclient/messages/__init__.py:136
1195+#, python-brace-format
1196+msgid "Failure when uninstalling {packages}"
1197+msgstr "Falha ao desinstalar {packages}"
1198+
1199+#: ../../uaclient/messages/__init__.py:139
1200+#, python-brace-format
1201+msgid "Cannot install package {package} version {version}"
1202+msgstr "Não foi possível instalar o pacote {package} versão {version}"
1203+
1204+#: ../../uaclient/messages/__init__.py:142
1205+msgid "Failure checking APT policy."
1206+msgstr "Falha ao verificar 'APT policy'"
1207+
1208+#: ../../uaclient/messages/__init__.py:143
1209+msgid "Updating package lists"
1210+msgstr "Atualizando lista de pacotes"
1211+
1212+#: ../../uaclient/messages/__init__.py:144
1213+#, python-brace-format
1214+msgid "Updating {name} package lists"
1215+msgstr "Atualizando lista de pacotes: {name}"
1216+
1217+#: ../../uaclient/messages/__init__.py:145
1218+msgid "APT update failed."
1219+msgstr "APT update falhou"
1220+
1221+#: ../../uaclient/messages/__init__.py:146
1222+msgid "APT install failed."
1223+msgstr "APT install falhou"
1224+
1225+#: ../../uaclient/messages/__init__.py:148
1226+#, python-brace-format
1227+msgid "Backing up {original} as {backup}"
1228+msgstr "Salvando {original} como {backup}"
1229+
1230+#: ../../uaclient/messages/__init__.py:149
1231+msgid "The following package(s) will be REMOVED:"
1232+msgstr ""
1233+
1234+#: ../../uaclient/messages/__init__.py:151
1235+msgid "The following package(s) will be reinstalled from the archive:"
1236+msgstr "O(s) pacote(s) à seguir serão reinstalados:"
1237+
1238+#: ../../uaclient/messages/__init__.py:162
1239+#, python-brace-format
1240+msgid ""
1241+"*Your Ubuntu Pro subscription has EXPIRED*\n"
1242+"{{pkg_num}} additional security update(s) require Ubuntu Pro with "
1243+"'{{service}}' enabled.\n"
1244+"Renew your service at {url}"
1245+msgid_plural ""
1246+"*Your Ubuntu Pro subscription has EXPIRED*\n"
1247+"{{pkg_num}} additional security update(s) require Ubuntu Pro with "
1248+"'{{service}}' enabled.\n"
1249+"Renew your service at {url}"
1250+msgstr[0] ""
1251+"*Sua assinatura do Ubuntu Pro EXPIROU*\n"
1252+"{{pkg_num}} atualização de segurança necessitam do ubuntu Pro com "
1253+"'{{service}}' habilitado.\n"
1254+"Renove sua assinatura em {url}"
1255+msgstr[1] ""
1256+"*Sua assinatura do Ubuntu Pro EXPIROU*\n"
1257+"{{pkg_num}} atualizações de segurança necessitam do ubuntu Pro com "
1258+"'{{service}}' habilitado.\n"
1259+"Renove sua assinatura em {url}"
1260+
1261+#: ../../uaclient/messages/__init__.py:175
1262+#, python-brace-format
1263+msgid ""
1264+"CAUTION: Your Ubuntu Pro subscription will expire in {{remaining_days}} "
1265+"day.\n"
1266+"Renew your subscription at {url} to ensure\n"
1267+"continued security coverage for your applications."
1268+msgid_plural ""
1269+"CAUTION: Your Ubuntu Pro subscription will expire in {{remaining_days}} "
1270+"days.\n"
1271+"Renew your subscription at {url} to ensure\n"
1272+"continued security coverage for your applications."
1273+msgstr[0] ""
1274+"ATENÇÃO: Sua assinatura do Ubuntu Pro irá expirar em {{remaining_days}} "
1275+"dias.\n"
1276+"Renove sua assinatura em {url} para garantir a\n"
1277+"continuidade da cobertura de segurança para suas aplicações."
1278+msgstr[1] ""
1279+"ATENÇÃO: Sua assinatura do Ubuntu Pro irá expirar em {{remaining_days}} "
1280+"dias.\n"
1281+"Renove sua assinatura em {url} para garantir a\n"
1282+"continuidade da cobertura de segurança para suas aplicações."
1283+
1284+#: ../../uaclient/messages/__init__.py:188
1285+#, python-brace-format
1286+msgid ""
1287+"CAUTION: Your Ubuntu Pro subscription expired on {{expired_date}}.\n"
1288+"Renew your subscription at {url} to ensure\n"
1289+"continued security coverage for your applications.\n"
1290+"Your grace period will expire in {{remaining_days}} day."
1291+msgid_plural ""
1292+"CAUTION: Your Ubuntu Pro subscription expired on {{expired_date}}.\n"
1293+"Renew your subscription at {url} to ensure\n"
1294+"continued security coverage for your applications.\n"
1295+"Your grace period will expire in {{remaining_days}} days."
1296+msgstr[0] ""
1297+"ATENÇÃO: sua assinatura do Ubuntu Pro expirou em {{expired_date}}.\n"
1298+"Renove sua assinatura em {url} para garantir a\n"
1299+"continuidade da cobertura de segurança para suas aplicações. Seu período de "
1300+"carência vai expirar em {{remaining_days}} dias"
1301+msgstr[1] ""
1302+"ATENÇÃO: sua assinatura do Ubuntu Pro expirou em {{expired_date}}.\n"
1303+"Renove sua assinatura em {url} para garantir a\n"
1304+"continuidade da cobertura de segurança para suas aplicações. Seu período de "
1305+"carência vai expirar em {{remaining_days}} dias"
1306+
1307+#: ../../uaclient/messages/__init__.py:202
1308+#, python-brace-format
1309+msgid ""
1310+"*Your Ubuntu Pro subscription has EXPIRED*\n"
1311+"Renew your service at {url}"
1312+msgstr ""
1313+"*Sua assinatura do Ubuntu PRO EXPIROU*\n"
1314+"Renove sua assinatura em {url}"
1315+
1316+#. ##############################################################################
1317+#. CONFIGURATION #
1318+#. ##############################################################################
1319+#: ../../uaclient/messages/__init__.py:213
1320+#, python-brace-format
1321+msgid "Setting {service} proxy"
1322+msgstr "Definindo proxy para {service}"
1323+
1324+#: ../../uaclient/messages/__init__.py:215
1325+#, python-brace-format
1326+msgid ""
1327+"No proxy set in config; however, proxy is configured for: {{services}}.\n"
1328+"See {url} for more information on pro proxy configuration.\n"
1329+msgstr ""
1330+"Nenhum proxy configurado; entrentato, um proxy está configurado para: "
1331+"{{services}}.\n"
1332+"Veja {url} para mais informações sobre configuração de proxy no pro.\n"
1333+
1334+#: ../../uaclient/messages/__init__.py:220
1335+#, python-brace-format
1336+msgid "Setting {scope} APT proxy"
1337+msgstr "Configurando APT proxy {scope}"
1338+
1339+#: ../../uaclient/messages/__init__.py:222
1340+msgid ""
1341+"\n"
1342+"Error: Setting global apt proxy and pro scoped apt proxy at the same time is "
1343+"unsupported. No apt proxy is set."
1344+msgstr ""
1345+"\n"
1346+"Erro: A definição do proxy apt em escopo global e no escopo 'pro' ao mesmo "
1347+"tempo não é suportada. Nenhum proxy apt alterado."
1348+
1349+#: ../../uaclient/messages/__init__.py:226
1350+#, python-brace-format
1351+msgid "Warning: {old} has been renamed to {new}."
1352+msgstr "Atenção: {old} foi renomeado para {new}."
1353+
1354+#: ../../uaclient/messages/__init__.py:230
1355+#, python-brace-format
1356+msgid ""
1357+"Warning: Setting the {current_proxy} proxy will overwrite the "
1358+"{previous_proxy}\n"
1359+"proxy previously set via `pro config`.\n"
1360+msgstr ""
1361+"Atenção: Definir o proxy {current_proxy} irá sobrescrever o proxy "
1362+"{previous_proxy},\n"
1363+"previamente definido via `pro config`.\n"
1364+
1365+#: ../../uaclient/messages/__init__.py:236
1366+#, python-brace-format
1367+msgid ""
1368+"Using deprecated \"{old}\" config field.\n"
1369+"Please migrate to using \"{new}\"\n"
1370+msgstr ""
1371+
1372+#: ../../uaclient/messages/__init__.py:243
1373+msgid "Migrating /etc/ubuntu-advantage/uaclient.conf"
1374+msgstr "Migrando /etc/ubuntu-advantage/uaclient.conf"
1375+
1376+#: ../../uaclient/messages/__init__.py:246
1377+msgid ""
1378+"Warning: Failed to load /etc/ubuntu-advantage/uaclient.conf.preinst-backup\n"
1379+" No automatic migration will occur.\n"
1380+" You may need to use \"pro config set\" to re-set your settings."
1381+msgstr ""
1382+"Atenção: Falha ao ler /etc/ubuntu-advantage/uaclient.conf.preinst-backup\n"
1383+" Nenhuma migração automática irá ocorrer.\n"
1384+" Você talvez precise do comando \"pro config set\" para resetar suas "
1385+"configurações."
1386+
1387+#: ../../uaclient/messages/__init__.py:253
1388+msgid ""
1389+"Warning: Failed to migrate user_config from /etc/ubuntu-advantage/uaclient."
1390+"conf\n"
1391+" Please run the following to keep your custom settings:"
1392+msgstr ""
1393+"Atenção: Falha ao migrar configuração de usuário de /etc/ubuntu-advantage/"
1394+"uaclient.conf\n"
1395+" Por favor, execute os seguintes comandos para manter sua "
1396+"configuração atual:"
1397+
1398+#: ../../uaclient/messages/__init__.py:259
1399+msgid ""
1400+"Warning: Failed to migrate /etc/ubuntu-advantage/uaclient.conf\n"
1401+" Please add following to uaclient.conf to keep your config:"
1402+msgstr ""
1403+"Atenção: Falha ao migrar /etc/ubuntu-advantage/uaclient.conf\n"
1404+" Adicione o seguinte conteúdo a uaclient.conf para manter sua "
1405+"configuração:"
1406+
1407+#: ../../uaclient/messages/__init__.py:272
1408+msgid ""
1409+"Currently attempting to automatically attach this machine to Ubuntu Pro "
1410+"services"
1411+msgstr ""
1412+"Tentando agora vincular automaticamente essa máquina aos serviços do Ubuntu "
1413+"Pro"
1414+
1415+#: ../../uaclient/messages/__init__.py:276
1416+#, python-brace-format
1417+msgid "This machine is now attached to '{contract_name}'\n"
1418+msgstr "Esta máquina está agora vinculada a '{contract_name}'\n"
1419+
1420+#: ../../uaclient/messages/__init__.py:281
1421+msgid "This machine is now successfully attached'\n"
1422+msgstr "Esta máquina foi vinculada com sucesso\n"
1423+
1424+#: ../../uaclient/messages/__init__.py:285
1425+#, python-brace-format
1426+msgid "Enabling default service {name}"
1427+msgstr "Habilitando serviço {name}"
1428+
1429+#: ../../uaclient/messages/__init__.py:287
1430+#, python-brace-format
1431+msgid "Service {name} is recommended by default. Run: sudo pro enable {name}"
1432+msgstr ""
1433+"O serviço {name} é recomendado por padrão. Execute: sudo pro enable {name}"
1434+
1435+#: ../../uaclient/messages/__init__.py:290
1436+msgid "Initiating attach operation..."
1437+msgstr "Começando a operação de vínculo..."
1438+
1439+#: ../../uaclient/messages/__init__.py:291
1440+msgid "Failed to perform attach..."
1441+msgstr "Falha ao vincular"
1442+
1443+#: ../../uaclient/messages/__init__.py:293
1444+#, python-brace-format
1445+msgid ""
1446+"Please sign in to your Ubuntu Pro account at this link:\n"
1447+"{url}\n"
1448+"And provide the following code: {bold}{{user_code}}{end_bold}"
1449+msgstr ""
1450+"Por favor, entre na sua conta do Ubuntu Pro neste link:\n"
1451+"{url}\n"
1452+"E forneça o código: {bold}{{user_code}}{end_bold}"
1453+
1454+#: ../../uaclient/messages/__init__.py:302
1455+msgid "Attaching the machine..."
1456+msgstr "Vinculando a máquina..."
1457+
1458+#: ../../uaclient/messages/__init__.py:307
1459+msgid "Detach will disable the following service:"
1460+msgid_plural "Detach will disable the following services:"
1461+msgstr[0] "Desvincular vai desabilitar o serviço:"
1462+msgstr[1] "Desvincular vai desabilitar os serviços:"
1463+
1464+#: ../../uaclient/messages/__init__.py:312
1465+msgid "This machine is now detached."
1466+msgstr "Esta máquina está desvinculada"
1467+
1468+#: ../../uaclient/messages/__init__.py:316
1469+msgid "One moment, checking your subscription first"
1470+msgstr "Um momento, checando a sua assinatura"
1471+
1472+#: ../../uaclient/messages/__init__.py:318
1473+#, python-brace-format
1474+msgid "{title} enabled"
1475+msgstr "{title} habilitado"
1476+
1477+#: ../../uaclient/messages/__init__.py:319
1478+#, python-brace-format
1479+msgid "{title} access enabled"
1480+msgstr "acesso habilitado para {title}"
1481+
1482+#: ../../uaclient/messages/__init__.py:320
1483+#, python-brace-format
1484+msgid "Could not enable {title}."
1485+msgstr "Não foi possível habilitar {title}"
1486+
1487+#: ../../uaclient/messages/__init__.py:322
1488+#, python-brace-format
1489+msgid ""
1490+"{service_being_enabled} cannot be enabled with {incompatible_service}.\n"
1491+"Disable {incompatible_service} and proceed to enable "
1492+"{service_being_enabled}? (y/N) "
1493+msgstr ""
1494+"{service_being_enabled} não pode ser habilitado ao mesmo tempo que "
1495+"{incompatible_service}.\n"
1496+"Desabilitar {incompatible_service} e prosseguir com a habilitação do "
1497+"{service_being_enabled}? (y/N) "
1498+
1499+#: ../../uaclient/messages/__init__.py:328
1500+#, python-brace-format
1501+msgid "Disabling incompatible service: {service}"
1502+msgstr "Desabilitando serviço incompatível: {service}"
1503+
1504+#: ../../uaclient/messages/__init__.py:331
1505+#, python-brace-format
1506+msgid ""
1507+"{service_being_enabled} cannot be enabled with {required_service} disabled.\n"
1508+"Enable {required_service} and proceed to enable {service_being_enabled}? (y/"
1509+"N) "
1510+msgstr ""
1511+"{service_being_enabled} não pode ser habilitado se {required_service} "
1512+"estiver desabilitado.\n"
1513+"Habilitar {required_service} e prosseguir com a habilitação do "
1514+"{service_being_enabled}? (y/N) "
1515+
1516+#: ../../uaclient/messages/__init__.py:336
1517+#, python-brace-format
1518+msgid "Enabling required service: {service}"
1519+msgstr "Habilitando serviço necessário: {service}"
1520+
1521+#: ../../uaclient/messages/__init__.py:338
1522+#, python-brace-format
1523+msgid "A reboot is required to complete {operation}."
1524+msgstr "É necessário reiniciar a máquina para completar a operação {operation}"
1525+
1526+#. DISABLE
1527+#: ../../uaclient/messages/__init__.py:343
1528+#, python-brace-format
1529+msgid "Could not disable {title}."
1530+msgstr "Não foi possível desabilitar {title}."
1531+
1532+#: ../../uaclient/messages/__init__.py:345
1533+#, python-brace-format
1534+msgid ""
1535+"{dependent_service} depends on {service_being_disabled}.\n"
1536+"Disable {dependent_service} and proceed to disable {service_being_disabled}? "
1537+"(y/N) "
1538+msgstr ""
1539+"{dependent_service} depende do {service_being_disabled}.\n"
1540+"Desabilitar {dependent_service} e prosseguir com a desabilitação do "
1541+"{service_being_disabled}? (y/N) "
1542+
1543+#: ../../uaclient/messages/__init__.py:351
1544+#, python-brace-format
1545+msgid "Disabling dependent service: {required_service}"
1546+msgstr "Desabilitando serviço dependente: {required_service}"
1547+
1548+#: ../../uaclient/messages/__init__.py:354
1549+#, python-brace-format
1550+msgid "Removing apt source file: {filename}"
1551+msgstr "Removendo arquivo do apt: {filename}"
1552+
1553+#: ../../uaclient/messages/__init__.py:356
1554+#, python-brace-format
1555+msgid "Removing apt preferences file: {filename}"
1556+msgstr "Removendo arquivo de preferência do apt: {filename}"
1557+
1558+#: ../../uaclient/messages/__init__.py:361
1559+msgid "(The --purge flag is still experimental - use with caution)"
1560+msgstr ""
1561+
1562+#: ../../uaclient/messages/__init__.py:364
1563+#, python-brace-format
1564+msgid "Purging the {service} packages would uninstall the following kernel(s):"
1565+msgstr ""
1566+
1567+#: ../../uaclient/messages/__init__.py:367
1568+#, python-brace-format
1569+msgid "{kernel_version} is the current running kernel."
1570+msgstr ""
1571+
1572+#: ../../uaclient/messages/__init__.py:370
1573+msgid ""
1574+"No other valid Ubuntu kernel was found in the system.\n"
1575+"Removing the package would potentially make the system unbootable.\n"
1576+"Aborting.\n"
1577+msgstr ""
1578+
1579+#: ../../uaclient/messages/__init__.py:377
1580+msgid ""
1581+"If you cannot guarantee that other kernels in this system are bootable and\n"
1582+"working properly, *do not proceed*. You may end up with an unbootable "
1583+"system.\n"
1584+msgstr ""
1585+
1586+#: ../../uaclient/messages/__init__.py:386
1587+#, python-brace-format
1588+msgid ""
1589+"Failed to automatically attach to Ubuntu Pro services {num_attempts} "
1590+"time(s).\n"
1591+"The failure was due to: {reason}.\n"
1592+"The next attempt is scheduled for {next_run_datestring}.\n"
1593+"You can try manually with `sudo pro auto-attach`."
1594+msgstr ""
1595+"{num_attempts} falha(s) ao vincular automaticamente aos serviços do Ubuntu "
1596+"Pro.\n"
1597+"A falha ocorreu devido a: {reason}.\n"
1598+"A próxima tentativa está agendada para {next_run_datestring}.\n"
1599+"Você pode tentar manualmente executando `sudo pro auto-attach`."
1600+
1601+#: ../../uaclient/messages/__init__.py:394
1602+#, python-brace-format
1603+msgid ""
1604+"Failed to automatically attach to Ubuntu Pro services {num_attempts} "
1605+"time(s).\n"
1606+"The most recent failure was due to: {reason}.\n"
1607+"Try re-launching the instance or report this issue by running `ubuntu-bug "
1608+"ubuntu-advantage-tools`\n"
1609+"You can try manually with `sudo pro auto-attach`."
1610+msgstr ""
1611+"{num_attempts} falha(s) ao vincular automaticamente aos serviços do Ubuntu "
1612+"Pro.\n"
1613+"A falha mais recente ocorreu devido a: {reason}.\n"
1614+"Tenter criar uma nova instância ou reporte esse problema executando `ubuntu-"
1615+"bug ubuntu-advantage-tools`\n"
1616+"Você pode tentar manualmente executando `sudo pro auto-attach`."
1617+
1618+#: ../../uaclient/messages/__init__.py:402
1619+#, python-brace-format
1620+msgid ""
1621+"Canonical servers did not recognize this machine as Ubuntu Pro: \"{detail}\""
1622+msgstr ""
1623+"Os servidores da Canonical não reconheceram essa máquina como sendo "
1624+"associada ao Ubuntu Pro: \"{detail}\""
1625+
1626+#: ../../uaclient/messages/__init__.py:406
1627+msgid "Canonical servers did not recognize this image as Ubuntu Pro"
1628+msgstr ""
1629+"Os servidores da Canonical não reconheceram essa imagem como sendo associada "
1630+"ao Ubuntu Pro"
1631+
1632+#: ../../uaclient/messages/__init__.py:408
1633+#, python-brace-format
1634+msgid "the pro lock was held by pid {pid}"
1635+msgstr "A lock do pro está sendo mantida pelo pid {pid}"
1636+
1637+#: ../../uaclient/messages/__init__.py:410
1638+#, python-brace-format
1639+msgid "an error from Canonical servers: \"{error_msg}\""
1640+msgstr "um erro dos servidores da Canonical: \"{error_msg}\""
1641+
1642+#: ../../uaclient/messages/__init__.py:412
1643+msgid "a connectivity error"
1644+msgstr "um erro de conexão"
1645+
1646+#: ../../uaclient/messages/__init__.py:413
1647+#, python-brace-format
1648+msgid "an error while reaching {url}"
1649+msgstr "um error ao acessar {url}"
1650+
1651+#: ../../uaclient/messages/__init__.py:414
1652+msgid "an unknown error"
1653+msgstr "um erro desconhecido"
1654+
1655+#: ../../uaclient/messages/__init__.py:418
1656+#, python-brace-format
1657+msgid "Due to contract refresh, '{service}' is now disabled."
1658+msgstr "Devido à atualização de contrato, '{service}' está agora desabilitado"
1659+
1660+#: ../../uaclient/messages/__init__.py:421
1661+#, python-brace-format
1662+msgid ""
1663+"Unable to disable '{service}' as recommended during contract refresh. "
1664+"Service is still active. See `pro status`"
1665+msgstr ""
1666+"Falha ao desabilitar '{service}' conforme esperado após atualização do seu "
1667+"contrato. O serviço ainda está ativo. Execute `pro status` para confirmar"
1668+
1669+#: ../../uaclient/messages/__init__.py:426
1670+#, python-brace-format
1671+msgid "Updating '{service}' on changed directives."
1672+msgstr "Atualizando '{service}' baseado nas novas diretivas"
1673+
1674+#: ../../uaclient/messages/__init__.py:429
1675+#, python-brace-format
1676+msgid "Updating '{service}' apt sources list on changed directives."
1677+msgstr ""
1678+"Atualizando a lista de apt sources do '{service}' baseado nas novas diretivas"
1679+
1680+#: ../../uaclient/messages/__init__.py:432
1681+#, python-brace-format
1682+msgid "Installing packages on changed directives: {packages}"
1683+msgstr "Instalando pacotes baseado nas novas diretivas: {packages}"
1684+
1685+#: ../../uaclient/messages/__init__.py:442
1686+#, python-brace-format
1687+msgid "Choose: [S]ubscribe at {url} [A]ttach existing token [C]ancel"
1688+msgstr ""
1689+"Escolha: [S] para vincular através de {url}; [A] para vincular usando um "
1690+"token existente; [C] para cancelar:"
1691+
1692+#: ../../uaclient/messages/__init__.py:446
1693+#, python-brace-format
1694+msgid "Choose: [E]nable {service} [C]ancel"
1695+msgstr "Escolha: [E] para habilitar {service}; [C] para cancelar:"
1696+
1697+#: ../../uaclient/messages/__init__.py:450
1698+#, python-brace-format
1699+msgid "Choose: [R]enew your subscription (at {url}) [C]ancel"
1700+msgstr "Escolha: [R]enovar sua assinatura (em {url}); [C]ancelar"
1701+
1702+#: ../../uaclient/messages/__init__.py:453
1703+#, python-brace-format
1704+msgid "A fix is available in {fix_stream}."
1705+msgstr "Uma solução está disponível em {fix_stream}."
1706+
1707+#: ../../uaclient/messages/__init__.py:454
1708+msgid "The update is not yet installed."
1709+msgstr "A atualização ainda não está instalada"
1710+
1711+#: ../../uaclient/messages/__init__.py:456
1712+msgid ""
1713+"The update is not installed because this system is not attached to a\n"
1714+"subscription.\n"
1715+msgstr ""
1716+"A atualização não pode ser instalada porque o sistema não está vinculado a\n"
1717+"uma assinatura.\n"
1718+
1719+#: ../../uaclient/messages/__init__.py:462
1720+msgid ""
1721+"The update is not installed because this system is attached to an\n"
1722+"expired subscription.\n"
1723+msgstr ""
1724+"A atualização não pode ser instalada porque o sistema está vinculado a uma\n"
1725+"assinatura vencida.\n"
1726+
1727+#: ../../uaclient/messages/__init__.py:468
1728+#, python-brace-format
1729+msgid ""
1730+"The update is not installed because this system does not have\n"
1731+"{service} enabled.\n"
1732+msgstr ""
1733+"A atualização não pode ser instalada porque o sistema não tem o serviço "
1734+"{service}\n"
1735+"habilitado.\n"
1736+
1737+#: ../../uaclient/messages/__init__.py:473
1738+msgid "The update is already installed."
1739+msgstr "A atualização já está instalada."
1740+
1741+#: ../../uaclient/messages/__init__.py:475
1742+#, python-brace-format
1743+msgid ""
1744+"For easiest security on {title}, use Ubuntu Pro instances.\n"
1745+"Learn more at {cloud_specific_url}"
1746+msgstr ""
1747+"Para segurança de forma mais conveniente no(a) {title}, use instâncias "
1748+"Ubuntu Pro.\n"
1749+"Aprenda mais em {cloud_specific_url}"
1750+
1751+#: ../../uaclient/messages/__init__.py:480
1752+msgid "requested"
1753+msgstr "requisitado"
1754+
1755+#: ../../uaclient/messages/__init__.py:481
1756+msgid "related"
1757+msgstr "relacionado"
1758+
1759+#: ../../uaclient/messages/__init__.py:482
1760+#, python-brace-format
1761+msgid " {issue} is resolved."
1762+msgstr " {issue} resolvida"
1763+
1764+#: ../../uaclient/messages/__init__.py:484
1765+#, python-brace-format
1766+msgid " {issue} [{context}] is resolved."
1767+msgstr "{issue} [{context}] foi resolvida"
1768+
1769+#: ../../uaclient/messages/__init__.py:486
1770+#, python-brace-format
1771+msgid " {issue} is not resolved."
1772+msgstr " {issue} não foi resolvida"
1773+
1774+#: ../../uaclient/messages/__init__.py:488
1775+#, python-brace-format
1776+msgid " {issue} [{context}] is not resolved."
1777+msgstr " {issue} [{context}] não foi resolvida"
1778+
1779+#: ../../uaclient/messages/__init__.py:491
1780+#, python-brace-format
1781+msgid " {issue} does not affect your system."
1782+msgstr " {issue} não afeta o seu sistema."
1783+
1784+#: ../../uaclient/messages/__init__.py:494
1785+#, python-brace-format
1786+msgid " {issue} [{context}] does not affect your system."
1787+msgstr " {issue} [{context}] não afeta o seu sistema."
1788+
1789+#: ../../uaclient/messages/__init__.py:498
1790+#, python-brace-format
1791+msgid "{num_pkgs} package is still affected: {pkgs}"
1792+msgid_plural "{num_pkgs} packages are still affected: {pkgs}"
1793+msgstr[0] "{num_pkgs} pacote ainda está afetado: {pkgs}"
1794+msgstr[1] "{num_pkgs} pacotes ainda estão afetados: {pkgs}"
1795+
1796+#: ../../uaclient/messages/__init__.py:505
1797+#, python-brace-format
1798+msgid "{count} affected source package is installed: {pkgs}"
1799+msgid_plural "{count} affected source packages are installed: {pkgs}"
1800+msgstr[0] "{count} pacote fonte afetado está instalado: {pkgs}"
1801+msgstr[1] "{count} pacotes fonte afetados estão instalados: {pkgs}"
1802+
1803+#: ../../uaclient/messages/__init__.py:511
1804+msgid "No affected source packages are installed."
1805+msgstr "Nenhum pacote fonte afetado está instalado"
1806+
1807+#: ../../uaclient/messages/__init__.py:513
1808+#, python-brace-format
1809+msgid "{issue} is resolved."
1810+msgstr "{issue} foi resolvida"
1811+
1812+#: ../../uaclient/messages/__init__.py:515
1813+#, python-brace-format
1814+msgid " {issue} is resolved by livepatch patch version: {version}."
1815+msgstr " {issue} for resolvida pelo patch {version} do livepatch."
1816+
1817+#: ../../uaclient/messages/__init__.py:518
1818+#, python-brace-format
1819+msgid ""
1820+"{bold}Ubuntu Pro service: {{service}} is not enabled.\n"
1821+"To proceed with the fix, a prompt would ask permission to automatically "
1822+"enable\n"
1823+"this service.\n"
1824+"{{{{ pro enable {{service}} }}}}{end_bold}"
1825+msgstr ""
1826+"{bold}O serviço Ubuntu Pro: {{service}} não está habilitado.\n"
1827+"Para continuar com a correção, um prompt irá te perdir permissão para "
1828+"automaticamente habilitar\n"
1829+"este serviço.\n"
1830+"{{{{ pro enable {{service}} }}}}{end_bold}"
1831+
1832+#: ../../uaclient/messages/__init__.py:525
1833+#, python-brace-format
1834+msgid ""
1835+"{bold}The machine is not attached to an Ubuntu Pro subscription.\n"
1836+"To proceed with the fix, a prompt would ask for a valid Ubuntu Pro token.\n"
1837+"{{ pro attach TOKEN }}{end_bold}"
1838+msgstr ""
1839+"{bold}Essa máquina não está vinculada a uma assinatura do Ubuntu Pro.\n"
1840+"Para continuar com a correção, um prompt irá te requisitar um token válido "
1841+"para o Ubuntu Pro.\n"
1842+"{{ pro attach TOKEN }}{end_bold}"
1843+
1844+#: ../../uaclient/messages/__init__.py:531
1845+#, python-brace-format
1846+msgid ""
1847+"{bold}The machine has an expired subscription.\n"
1848+"To proceed with the fix, a prompt would ask for a new Ubuntu Pro\n"
1849+"token to renew the subscription.\n"
1850+"{{ pro detach --assume-yes }}\n"
1851+"{{ pro attach NEW_TOKEN }}{end_bold}"
1852+msgstr ""
1853+"{bold}A máquina possui uma assinatura vencida.\n"
1854+"Para continuar com a correção, um prompt irá pedir por um novo token\n"
1855+"para renovar a sua assinatura Ubuntu Pro.\n"
1856+"{{ pro detach --assume-yes }}\n"
1857+"{{ pro attach NEW_TOKEN }}{end_bold}"
1858+
1859+#: ../../uaclient/messages/__init__.py:539
1860+#, python-brace-format
1861+msgid ""
1862+"{bold}WARNING: The option --dry-run is being used.\n"
1863+"No packages will be installed when running this command.{end_bold}"
1864+msgstr ""
1865+"{bold}ATENÇÂO: a opção --dry-run está sendo usada.\n"
1866+"Nenhum pacote será instalado na execução deste comando.{end_bold}"
1867+
1868+#: ../../uaclient/messages/__init__.py:544
1869+#, python-brace-format
1870+msgid ""
1871+"Error: Ubuntu Pro service: {service} is not enabled.\n"
1872+"Without it, we cannot fix the system."
1873+msgstr ""
1874+"Erro: o serviço Ubuntu Pro: {service} não está habilitado.\n"
1875+"Sem o serviço, não podemos corrigir o sistema."
1876+
1877+#: ../../uaclient/messages/__init__.py:549
1878+#, python-brace-format
1879+msgid ""
1880+"Error: The current Ubuntu Pro subscription is not entitled to: {service}.\n"
1881+"Without it, we cannot fix the system."
1882+msgstr ""
1883+"Erro: O serviço {service} não está disponível para a atual assinatura do "
1884+"Ubuntu Pro.\n"
1885+"Sem o serviço, não podemos corrigir o sistema."
1886+
1887+#: ../../uaclient/messages/__init__.py:554
1888+#, python-brace-format
1889+msgid "{service} is required for upgrade."
1890+msgstr "{service} é necessário para atualização."
1891+
1892+#: ../../uaclient/messages/__init__.py:558
1893+#, python-brace-format
1894+msgid "{service} is required for upgrade, but current subscription is expired."
1895+msgstr ""
1896+"{service} é necessário para atualização, mas a atual assinatura está vencida"
1897+
1898+#: ../../uaclient/messages/__init__.py:562
1899+#, python-brace-format
1900+msgid "{service} is required for upgrade, but it is not enabled."
1901+msgstr ""
1902+"{service} é necessário para atualização, mas o serviço está desabilitado."
1903+
1904+#: ../../uaclient/messages/__init__.py:566
1905+msgid "APT failed to install the package.\n"
1906+msgstr "APT falhou ao instalar o pacote.\n"
1907+
1908+#: ../../uaclient/messages/__init__.py:571
1909+msgid "Sorry, no fix is available yet."
1910+msgstr "Desculpe, não existe uma correção disponível ainda."
1911+
1912+#: ../../uaclient/messages/__init__.py:575
1913+msgid "Ubuntu security engineers are investigating this issue."
1914+msgstr "Engenheiros de segurança do Ubuntu estão investigando o problema."
1915+
1916+#: ../../uaclient/messages/__init__.py:579
1917+msgid "A fix is coming soon. Try again tomorrow."
1918+msgstr "Uma correção será entregue em breve. Tente de novo amanhã."
1919+
1920+#: ../../uaclient/messages/__init__.py:583
1921+msgid "Sorry, no fix is available."
1922+msgstr "Desculpe, não existe uma correção disponível."
1923+
1924+#: ../../uaclient/messages/__init__.py:587
1925+msgid "Source package does not exist on this release."
1926+msgstr "O pacote fonte não existe para esta versão do Ubuntu."
1927+
1928+#: ../../uaclient/messages/__init__.py:591
1929+msgid "Source package is not affected on this release."
1930+msgstr "O pacote fonte não é afetado nesta versão do Ubuntu."
1931+
1932+#: ../../uaclient/messages/__init__.py:595
1933+#, python-brace-format
1934+msgid "UNKNOWN: {status}"
1935+msgstr "DESCONHECIDO: {status}"
1936+
1937+#: ../../uaclient/messages/__init__.py:599
1938+msgid "Found CVEs:"
1939+msgstr "CVEs encontradas:"
1940+
1941+#: ../../uaclient/messages/__init__.py:600
1942+msgid "Found Launchpad bugs:"
1943+msgstr "Bugs do Launchpad encontrados:"
1944+
1945+#: ../../uaclient/messages/__init__.py:602
1946+#, python-brace-format
1947+msgid "Fixing requested {issue_id}"
1948+msgstr "Corrigindo {issue_id}"
1949+
1950+#: ../../uaclient/messages/__init__.py:606
1951+msgid "Fixing related USNs:"
1952+msgstr "Corrigindo USNs relacionados"
1953+
1954+#: ../../uaclient/messages/__init__.py:610
1955+#, python-brace-format
1956+msgid ""
1957+"Found related USNs:\n"
1958+"- {related_usns}"
1959+msgstr ""
1960+"USNs relacionadas foram encontradas:\n"
1961+"- {related_usns}"
1962+
1963+#: ../../uaclient/messages/__init__.py:614
1964+msgid "Summary:"
1965+msgstr "Sumário:"
1966+
1967+#: ../../uaclient/messages/__init__.py:618
1968+#, python-brace-format
1969+msgid ""
1970+"Even though a related USN failed to be fixed, note\n"
1971+"that {{issue_id}} was fixed. Related USNs do not\n"
1972+"affect the original USN. Learn more about the related\n"
1973+"USNs, please refer to this page:\n"
1974+"\n"
1975+"{url}\n"
1976+msgstr ""
1977+"Mesmo que tenha acontecido uma falha ao corrigir uma USN relacionada, note\n"
1978+"que {{issue_id}} for corrigida. USNs relacionadas não afetam a USN\n"
1979+"original. Para saber mais sobre USNs relacionadas, por favor entre na "
1980+"página:\n"
1981+"\n"
1982+"{url}\n"
1983+
1984+#: ../../uaclient/messages/__init__.py:627
1985+msgid "Ubuntu standard updates"
1986+msgstr "Atualizações padrão do Ubuntu"
1987+
1988+#: ../../uaclient/messages/__init__.py:628
1989+#: ../../uaclient/messages/__init__.py:1220
1990+msgid "Ubuntu Pro: ESM Infra"
1991+msgstr ""
1992+
1993+#: ../../uaclient/messages/__init__.py:629
1994+#: ../../uaclient/messages/__init__.py:1206
1995+msgid "Ubuntu Pro: ESM Apps"
1996+msgstr ""
1997+
1998+#: ../../uaclient/messages/__init__.py:632
1999+msgid ""
2000+"Package fixes cannot be installed.\n"
2001+"To install them, run this command as root (try using sudo)"
2002+msgstr ""
2003+"As atualizações de pacotes não podem ser instaladas.\n"
2004+"Para instalar os pacotes, execute esse comando como root (tente usando sudo)"
2005+
2006+#: ../../uaclient/messages/__init__.py:638
2007+#, python-brace-format
2008+msgid "Enter your token (from {url}) to attach this system:"
2009+msgstr "Insira seu token (da {url}) para vincular seu sistema:"
2010+
2011+#: ../../uaclient/messages/__init__.py:642
2012+msgid "Enter your new token to renew Ubuntu Pro subscription on this system:"
2013+msgstr ""
2014+"Providencie seu novo token para renovar sua assinatura do Ubuntu Pro neste "
2015+"sistema:"
2016+
2017+#. ##############################################################################
2018+#. SECURITYSTATUS SUBCOMMAND #
2019+#. ##############################################################################
2020+#: ../../uaclient/messages/__init__.py:652
2021+#, python-brace-format
2022+msgid "{count} packages installed:"
2023+msgstr "{count} pacotes instalados:"
2024+
2025+#: ../../uaclient/messages/__init__.py:655
2026+#, python-brace-format
2027+msgid "{offset}{count} package from Ubuntu {repository} repository"
2028+msgid_plural "{offset}{count} packages from Ubuntu {repository} repository"
2029+msgstr[0] "{offset}{count} pacote do repositório {repository} do Ubuntu"
2030+msgstr[1] "{offset}{count} pacotes do repositório {repository} do Ubuntu"
2031+
2032+#: ../../uaclient/messages/__init__.py:662
2033+#, python-brace-format
2034+msgid "{offset}{count} package from a third party"
2035+msgid_plural "{offset}{count} packages from third parties"
2036+msgstr[0] "{offset}{count} pacote de terceiros"
2037+msgstr[1] "{offset}{count} pacotes de terceiros"
2038+
2039+#: ../../uaclient/messages/__init__.py:669
2040+#, python-brace-format
2041+msgid "{offset}{count} package no longer available for download"
2042+msgid_plural "{offset}{count} packages no longer available for download"
2043+msgstr[0] "{offset}{count} pacote não mais disponível para download"
2044+msgstr[1] "{offset}{count} pacotes não mais disponíveis para download"
2045+
2046+#: ../../uaclient/messages/__init__.py:676
2047+msgid ""
2048+"To get more information about the packages, run\n"
2049+" pro security-status --help\n"
2050+"for a list of available options."
2051+msgstr ""
2052+"Para obter mais informações sobre os pacotes, execute\n"
2053+" pro security-status --help\n"
2054+"para uma lista das opções disponíveis."
2055+
2056+#: ../../uaclient/messages/__init__.py:683
2057+msgid ""
2058+" Make sure to run\n"
2059+" sudo apt-get update\n"
2060+"to get the latest package information from apt."
2061+msgstr ""
2062+"Lembre de executar\n"
2063+" sudo apt-get update\n"
2064+"para obter as informações mais recentes dos pacotes direto do apt."
2065+
2066+#: ../../uaclient/messages/__init__.py:689
2067+#, python-brace-format
2068+msgid "The system apt information was updated {days} day(s) ago."
2069+msgstr "As informações do apt foram atualizadas há {days} dia(s) atrás"
2070+
2071+#: ../../uaclient/messages/__init__.py:693
2072+msgid "The system apt cache may be outdated."
2073+msgstr "O cache do apt pode estar desatualizado"
2074+
2075+#: ../../uaclient/messages/__init__.py:697
2076+#, python-brace-format
2077+msgid "Main/Restricted packages receive updates until {date}."
2078+msgstr "pacotes Main/Restricted receberão atualizações até {date}."
2079+
2080+#: ../../uaclient/messages/__init__.py:700
2081+#, python-brace-format
2082+msgid ""
2083+"This machine is receiving security patching for Ubuntu Main/Restricted\n"
2084+"repository until {date}."
2085+msgstr ""
2086+"Esta máquina está recebendo patches de segurança para o repositório\n"
2087+"Main/Restricted do Ubuntu até {date}"
2088+
2089+#: ../../uaclient/messages/__init__.py:706
2090+msgid "This machine is attached to an Ubuntu Pro subscription."
2091+msgstr "Esta máquina está vinculada a uma assinatura do Ubuntu Pro."
2092+
2093+#: ../../uaclient/messages/__init__.py:709
2094+msgid "This machine is NOT attached to an Ubuntu Pro subscription."
2095+msgstr "Esta máquina NÃO está vinculada a uma assinatura do Ubuntu Pro."
2096+
2097+#: ../../uaclient/messages/__init__.py:713
2098+msgid ""
2099+"Packages from third parties are not provided by the official Ubuntu\n"
2100+"archive, for example packages from Personal Package Archives in Launchpad."
2101+msgstr ""
2102+"Pacotes de terceiros não são providenciados por meios oficiais do Ubuntu,\n"
2103+"por examplo, pacotes de encontrados em Personal Package Archives (PPAs) do "
2104+"Launchpad."
2105+
2106+#: ../../uaclient/messages/__init__.py:718
2107+msgid ""
2108+"Packages that are not available for download may be left over from a\n"
2109+"previous release of Ubuntu, may have been installed directly from a\n"
2110+".deb file, or are from a source which has been disabled."
2111+msgstr ""
2112+"Pacotes que não estão disponíveis para download podem ter sobrado de\n"
2113+"versões anteriores do Ubuntu, podem ter sido instalados diretamente por um\n"
2114+"arquivo .deb, ou de uma fonte que foi desabilitada."
2115+
2116+#: ../../uaclient/messages/__init__.py:725
2117+msgid ""
2118+"This machine is NOT receiving security patches because the LTS period has "
2119+"ended\n"
2120+"and esm-infra is not enabled."
2121+msgstr ""
2122+"Esta máquina NÃO está recebendo patches de segurança, pois o período LTS "
2123+"acabou\n"
2124+"e esm-infra não está habilitado."
2125+
2126+#: ../../uaclient/messages/__init__.py:731
2127+#, python-brace-format
2128+msgid ""
2129+"Ubuntu Pro with '{service}' enabled provides security updates for\n"
2130+"{repository} packages until {year}."
2131+msgstr ""
2132+"Ubuntu Pro com '{service}' habilitado provê atualizações de segurança\n"
2133+"para pacotes do {repository} até {year}."
2134+
2135+#: ../../uaclient/messages/__init__.py:737
2136+#, python-brace-format
2137+msgid "There is {updates} pending security update."
2138+msgid_plural "There are {updates} pending security updates."
2139+msgstr[0] "Existe {updates} atualização de segurança pendente."
2140+msgstr[1] "Existem {updates} atualizações de segurança pendentes."
2141+
2142+#: ../../uaclient/messages/__init__.py:744
2143+#, python-brace-format
2144+msgid ""
2145+"{repository} packages are receiving security updates from\n"
2146+"Ubuntu Pro with '{service}' enabled until {year}."
2147+msgstr ""
2148+"Pacotes do {repository} estão recebendo atualizações de segurança do\n"
2149+"Ubuntu Pro com '{service}' habilitado até {year}."
2150+
2151+#: ../../uaclient/messages/__init__.py:750
2152+#, python-brace-format
2153+msgid ""
2154+"You have received {updates} security\n"
2155+"update."
2156+msgid_plural ""
2157+"You have received {updates} security\n"
2158+"updates."
2159+msgstr[0] ""
2160+"Você recebeu {updates} atualização de\n"
2161+"segurança."
2162+msgstr[1] ""
2163+"Você recebeu {updates} atualizações de\n"
2164+"segurança."
2165+
2166+#: ../../uaclient/messages/__init__.py:760
2167+#, python-brace-format
2168+msgid "Enable {service} with: pro enable {service}"
2169+msgstr "Habilite {service} com: pro enable {service}"
2170+
2171+#: ../../uaclient/messages/__init__.py:762
2172+#, python-brace-format
2173+msgid ""
2174+"Try Ubuntu Pro with a free personal subscription on up to 5 machines.\n"
2175+"Learn more at {url}\n"
2176+msgstr ""
2177+"Experimente o Ubuntu Pro com uma assinatura pessoal gratuita para até 5 "
2178+"máquinas.\n"
2179+"Saiba mais em {url}\n"
2180+
2181+#: ../../uaclient/messages/__init__.py:769
2182+#, python-brace-format
2183+msgid ""
2184+"For example, run:\n"
2185+" apt-cache show {package}\n"
2186+"to learn more about that package."
2187+msgstr ""
2188+"Por exemplo, execute:\n"
2189+" apt-cache show {package}\n"
2190+"para saber mais sobre este pacote."
2191+
2192+#: ../../uaclient/messages/__init__.py:776
2193+msgid "You have no packages installed from a third party."
2194+msgstr "Você não tem pacotes instalados de terceitos."
2195+
2196+#: ../../uaclient/messages/__init__.py:779
2197+msgid "You have no packages installed that are no longer available."
2198+msgstr "Você não tem pacotes instalados que não estejam mais disponíveis."
2199+
2200+#: ../../uaclient/messages/__init__.py:782
2201+msgid "Ubuntu Pro is not available for non-LTS releases."
2202+msgstr "Ubuntu Pro não está disponível para versões do Ubuntu não LTS."
2203+
2204+#: ../../uaclient/messages/__init__.py:785
2205+#, python-brace-format
2206+msgid "Run 'pro help {service}' to learn more"
2207+msgstr "Execute 'pro help {service}' para saber mais"
2208+
2209+#: ../../uaclient/messages/__init__.py:788
2210+#, python-brace-format
2211+msgid "Installed packages with an available {service} update:"
2212+msgstr "Pacotes instalados com atualizações disponíveis por {service}:"
2213+
2214+#: ../../uaclient/messages/__init__.py:791
2215+#, python-brace-format
2216+msgid "Installed packages with an {service} update applied:"
2217+msgstr "Pacotes instalados com atualizações aplicadas por {service}:"
2218+
2219+#: ../../uaclient/messages/__init__.py:793
2220+#, python-brace-format
2221+msgid "Installed packages covered by {service}:"
2222+msgstr "Pacotes instalados cobertos por {service}:"
2223+
2224+#: ../../uaclient/messages/__init__.py:795
2225+#, python-brace-format
2226+msgid "Further installed packages covered by {service}:"
2227+msgstr "Pacotes adicionais instalados cobertos por {service}:"
2228+
2229+#: ../../uaclient/messages/__init__.py:797
2230+msgid "Packages:"
2231+msgstr "Pacotes:"
2232+
2233+#. ##############################################################################
2234+#. STATUS SUBCOMMAND #
2235+#. ##############################################################################
2236+#: ../../uaclient/messages/__init__.py:805
2237+msgid "SERVICE"
2238+msgstr "SERVIÇO"
2239+
2240+#: ../../uaclient/messages/__init__.py:806
2241+msgid "AVAILABLE"
2242+msgstr "DISPONÍVEL"
2243+
2244+#: ../../uaclient/messages/__init__.py:807
2245+msgid "ENTITLED"
2246+msgstr "INCLUÍDO"
2247+
2248+#: ../../uaclient/messages/__init__.py:808
2249+msgid "AUTO_ENABLED"
2250+msgstr "AUTO_HABILITADO"
2251+
2252+#: ../../uaclient/messages/__init__.py:809
2253+msgid "STATUS"
2254+msgstr "STATUS"
2255+
2256+#: ../../uaclient/messages/__init__.py:810
2257+msgid "DESCRIPTION"
2258+msgstr "DESCRIÇÃO"
2259+
2260+#: ../../uaclient/messages/__init__.py:811
2261+msgid "NOTICES"
2262+msgstr "NOTÍCIAS"
2263+
2264+#: ../../uaclient/messages/__init__.py:812
2265+msgid "FEATURES"
2266+msgstr "FUNCIONALIDADES"
2267+
2268+#: ../../uaclient/messages/__init__.py:816
2269+msgid "enabled"
2270+msgstr "habilitado"
2271+
2272+#: ../../uaclient/messages/__init__.py:817
2273+msgid "disabled"
2274+msgstr "desabilitado"
2275+
2276+#: ../../uaclient/messages/__init__.py:818
2277+msgid "n/a"
2278+msgstr "n/d"
2279+
2280+#: ../../uaclient/messages/__init__.py:820
2281+msgid "warning"
2282+msgstr "atenção"
2283+
2284+#: ../../uaclient/messages/__init__.py:821
2285+msgid "essential"
2286+msgstr "essencial"
2287+
2288+#: ../../uaclient/messages/__init__.py:822
2289+msgid "standard"
2290+msgstr "padrão"
2291+
2292+#: ../../uaclient/messages/__init__.py:823
2293+msgid "advanced"
2294+msgstr "avançado"
2295+
2296+#: ../../uaclient/messages/__init__.py:825
2297+msgid "Unknown/Expired"
2298+msgstr "Desconhecido/expirado"
2299+
2300+#: ../../uaclient/messages/__init__.py:828
2301+#, python-brace-format
2302+msgid "Enable services with: {command}"
2303+msgstr "Habilite serviços com: {command}"
2304+
2305+#: ../../uaclient/messages/__init__.py:830
2306+msgid "Account"
2307+msgstr "Conta"
2308+
2309+#: ../../uaclient/messages/__init__.py:831
2310+msgid "Subscription"
2311+msgstr "Assinatura"
2312+
2313+#: ../../uaclient/messages/__init__.py:832
2314+msgid "Valid until"
2315+msgstr "Válido até"
2316+
2317+#: ../../uaclient/messages/__init__.py:833
2318+msgid "Technical support level"
2319+msgstr "Nível de suporte técnico"
2320+
2321+#: ../../uaclient/messages/__init__.py:835
2322+msgid "This token is not valid."
2323+msgstr "Este token não é válido."
2324+
2325+#: ../../uaclient/messages/__init__.py:836
2326+msgid "No Ubuntu Pro operations are running"
2327+msgstr "Nenhuma operação Ubuntu Pro está sendo executada"
2328+
2329+#: ../../uaclient/messages/__init__.py:839
2330+msgid "No Ubuntu Pro services are available to this system."
2331+msgstr "Nenhum serviço do Ubuntu Pro está disponível neste sistema."
2332+
2333+#: ../../uaclient/messages/__init__.py:842
2334+msgid "For a list of all Ubuntu Pro services, run 'pro status --all'"
2335+msgstr ""
2336+"Para uma lista com todos os serviços do Ubuntu Pro, execute 'pro status --"
2337+"all'"
2338+
2339+#: ../../uaclient/messages/__init__.py:844
2340+msgid " * Service has variants"
2341+msgstr "* Serviço tem variantes"
2342+
2343+#: ../../uaclient/messages/__init__.py:846
2344+msgid ""
2345+"For a list of all Ubuntu Pro services and variants, run 'pro status --all'"
2346+msgstr ""
2347+"Para uma lista como todos os serviços e variantes do Ubuntu Pro, execute "
2348+"'pro status --all'"
2349+
2350+#: ../../uaclient/messages/__init__.py:851
2351+msgid ""
2352+"A change has been detected in your contract.\n"
2353+"Please run `sudo pro refresh`."
2354+msgstr ""
2355+"Uma mudança foi detectada no seu contrato.\n"
2356+"Por favor, execute `sudo pro refresh`."
2357+
2358+#. ##############################################################################
2359+#. CLI HELP TEXT #
2360+#. ##############################################################################
2361+#. This encompasses help text for subcommands, flags, and arguments for the CLI
2362+#. Also, any generic strings about the CLI itself go here.
2363+#: ../../uaclient/messages/__init__.py:864
2364+msgid "Try 'pro --help' for more information."
2365+msgstr "Tente 'pro --help' para mais informações."
2366+
2367+#: ../../uaclient/messages/__init__.py:866
2368+#, python-brace-format
2369+msgid "Use {name} {command} --help for more information about a command."
2370+msgstr "Use {name} {command} --help para mais informações sobre um comando."
2371+
2372+#: ../../uaclient/messages/__init__.py:869
2373+msgid "Use pro help <service> to get more details about each service"
2374+msgstr "Use pro help <service> para obter mais detalhes sobre cada serviço"
2375+
2376+#: ../../uaclient/messages/__init__.py:872
2377+msgid "Variants:"
2378+msgstr "Variantes:"
2379+
2380+#: ../../uaclient/messages/__init__.py:873
2381+msgid "Arguments"
2382+msgstr "Argumentos"
2383+
2384+#: ../../uaclient/messages/__init__.py:874
2385+msgid "Flags"
2386+msgstr ""
2387+
2388+#: ../../uaclient/messages/__init__.py:875
2389+msgid "Available Commands"
2390+msgstr "Comandos Disponíveis"
2391+
2392+#: ../../uaclient/messages/__init__.py:877
2393+#, python-brace-format
2394+msgid "output in the specified format (default: {default})"
2395+msgstr "saída no formato especificado (default: {default})"
2396+
2397+#: ../../uaclient/messages/__init__.py:880
2398+#, python-brace-format
2399+msgid "do not prompt for confirmation before performing the {command}"
2400+msgstr "não peça por confirmação antes de executar {command}"
2401+
2402+#: ../../uaclient/messages/__init__.py:883
2403+#: ../../uaclient/messages/__init__.py:1101
2404+msgid "Calls the Client API endpoints."
2405+msgstr "Chama os endpoints da API do Cliente."
2406+
2407+#: ../../uaclient/messages/__init__.py:884
2408+msgid "API endpoint to call"
2409+msgstr "API endpoints que podem ser executados"
2410+
2411+#: ../../uaclient/messages/__init__.py:886
2412+msgid "Options to pass to the API endpoint, formatted as key=value"
2413+msgstr "Opções para passar ao endpoint da API, formatadas como chave=valor"
2414+
2415+#: ../../uaclient/messages/__init__.py:888
2416+msgid "arguments in JSON format to the API endpoint"
2417+msgstr "argumentos em formato JSON para o endpoint da API"
2418+
2419+#: ../../uaclient/messages/__init__.py:891
2420+msgid "Automatically attach on an Ubuntu Pro cloud instance."
2421+msgstr "Automaticamente vincular em uma instância cloud do Ubuntu Pro."
2422+
2423+#: ../../uaclient/messages/__init__.py:895
2424+msgid "Collect logs and relevant system information into a tarball."
2425+msgstr "Coleta logs e outras informações relevantes do sistema em um tarball."
2426+
2427+#: ../../uaclient/messages/__init__.py:898
2428+msgid "tarball where the logs will be stored. (Defaults to ./ua_logs.tar.gz)"
2429+msgstr "tarball onde os logs serão guardados. (Valor padrão ./ua_logs.tar.gz)"
2430+
2431+#: ../../uaclient/messages/__init__.py:901
2432+msgid "Show customisable configuration settings"
2433+msgstr "Mostre as opções personalizáveis da configuração"
2434+
2435+#: ../../uaclient/messages/__init__.py:903
2436+msgid "Optional key or key(s) to show configuration settings."
2437+msgstr "Valor ou valores opcionais ao mostrar as configurações."
2438+
2439+#: ../../uaclient/messages/__init__.py:906
2440+msgid "Set and apply Ubuntu Pro configuration settings"
2441+msgstr "Define e aplica as configurações do Ubuntu Pro"
2442+
2443+#: ../../uaclient/messages/__init__.py:909
2444+#, python-brace-format
2445+msgid ""
2446+"key=value pair to configure for Ubuntu Pro services. Key must be one of: "
2447+"{options}"
2448+msgstr ""
2449+"par chave=valor para configurar serviços Ubuntu Pro. Chave precisa ser uma "
2450+"dentre: {options}"
2451+
2452+#: ../../uaclient/messages/__init__.py:912
2453+msgid "Unset Ubuntu Pro configuration setting"
2454+msgstr "Desabilitar a configuração do Ubuntu Pro"
2455+
2456+#: ../../uaclient/messages/__init__.py:914
2457+#, python-brace-format
2458+msgid "configuration key to unset from Ubuntu Pro services. One of: {options}"
2459+msgstr "chave de configuração Ubuntu Pro para desabilitar. Uma de: {options}"
2460+
2461+#: ../../uaclient/messages/__init__.py:916
2462+msgid "Manage Ubuntu Pro configuration"
2463+msgstr "Gerencie a configuração do Ubuntu Pro"
2464+
2465+#: ../../uaclient/messages/__init__.py:919
2466+#, python-brace-format
2467+msgid ""
2468+"Attach this machine to Ubuntu Pro with a token obtained from:\n"
2469+"{url}\n"
2470+"\n"
2471+"When running this command without a token, it will generate a short code\n"
2472+"and prompt you to attach the machine to your Ubuntu Pro account using\n"
2473+"a web browser."
2474+msgstr ""
2475+"Vincule esta máquina a uma assinatura Ubuntu Pro com um token obtido de:\n"
2476+"{url}\n"
2477+"\n"
2478+"Ao executar este comando sem um token, um código pequeno será gerado\n"
2479+"e um prompt surgirá pedindo para vincular esta máquina usando sua conta do "
2480+"Ubuntu Pro por meio\n"
2481+"de um web browser."
2482+
2483+#: ../../uaclient/messages/__init__.py:927
2484+msgid "token obtained for Ubuntu Pro authentication"
2485+msgstr "token obtido para autenticação do Ubuntu Pro"
2486+
2487+#: ../../uaclient/messages/__init__.py:929
2488+msgid "do not enable any recommended services automatically"
2489+msgstr "não habilite nenhum serviço recomendado automaticamente"
2490+
2491+#: ../../uaclient/messages/__init__.py:932
2492+msgid ""
2493+"use the provided attach config file instead of passing the token on the cli"
2494+msgstr ""
2495+"use para providenciar um arquivo de configuração ao vincular ao invés de "
2496+"inserir o token via linha de comando"
2497+
2498+#: ../../uaclient/messages/__init__.py:937
2499+msgid ""
2500+"Inspect and resolve CVEs and USNs (Ubuntu Security Notices) on this machine."
2501+msgstr ""
2502+"Inspecionar e corrigir CVEs and USNs (Ubuntu Security Notices) nesta máquina."
2503+
2504+#: ../../uaclient/messages/__init__.py:941
2505+msgid ""
2506+"Security vulnerability ID to inspect and resolve on this system. Format: CVE-"
2507+"yyyy-nnnn, CVE-yyyy-nnnnnnn or USN-nnnn-dd"
2508+msgstr ""
2509+"ID da Vulnerabilidade de segurança para inspecionar e corrigir neste "
2510+"sistema. Formato: CVE-yyyy-nnnn, CVE-yyyy-nnnnnnn ou USN-nnnn-dd"
2511+
2512+#: ../../uaclient/messages/__init__.py:945
2513+msgid ""
2514+"If used, fix will not actually run but will display everything that will "
2515+"happen on the machine during the command."
2516+msgstr ""
2517+"Se usado, fix não vai executar modificações. Ao invés disso, irá mostrar "
2518+"tudo que irá acontecer na máquina durante a execução real do comando."
2519+
2520+#: ../../uaclient/messages/__init__.py:950
2521+msgid ""
2522+"If used, when fixing a USN, the command will not try to also fix related "
2523+"USNs to the target USN."
2524+msgstr ""
2525+"Se usado, ao corrigir uma USN, o comando não tentará corrigar as USN "
2526+"relacionadas à USN principal."
2527+
2528+#: ../../uaclient/messages/__init__.py:955
2529+msgid ""
2530+"Show security updates for packages in the system, including all\n"
2531+"available Expanded Security Maintenance (ESM) related content.\n"
2532+"\n"
2533+"Shows counts of how many packages are supported for security updates\n"
2534+"in the system.\n"
2535+"\n"
2536+"If called with --format json|yaml it shows a summary of the\n"
2537+"installed packages based on the origin:\n"
2538+"- main/restricted/universe/multiverse: packages from the Ubuntu archive\n"
2539+"- esm-infra/esm-apps: packages from the ESM archive\n"
2540+"- third-party: packages installed from non-Ubuntu sources\n"
2541+"- unknown: packages which don't have an installation source (like local\n"
2542+" deb packages or packages for which the source was removed)\n"
2543+"\n"
2544+"The output contains basic information about Ubuntu Pro. For a\n"
2545+"complete status on Ubuntu Pro services, run 'pro status'.\n"
2546+msgstr ""
2547+"Mostrar atualizações de segurança para pacotes no sistema, incluindo todos\n"
2548+"os conteúdos relacionados a Expanded Security Maintenance (ESM)\n"
2549+"\n"
2550+"Mostrar quantos pacotes são suportados para atualizações de segurança\n"
2551+"neste sistema.\n"
2552+"\n"
2553+"Se executado com --format json|yaml, mostra um sumário dos\n"
2554+"pacotes instalados baseados em sua origem:\n"
2555+"- main/restricted/univers/multiverse: pacotes do arquivo do Ubuntu\n"
2556+"- esm-infra/esm-apps: pacotes dos arquivos de ESM\n"
2557+"- third-party: pacotes instalados por fontes que não são do Ubuntu\n"
2558+"- unknown: pacotes que não tem uma origem de instalação (como pacotes\n"
2559+"deb locais or pacotes cuja origem foi removida)\n"
2560+"\n"
2561+"A saída contém informação básica sobre o Ubuntu Pro. Para um status "
2562+"completo\n"
2563+"a respeito dos serviços do Ubuntu Pro, execute 'pro status'.\n"
2564+
2565+#: ../../uaclient/messages/__init__.py:975
2566+msgid "List and present information about third-party packages"
2567+msgstr "Lista e mostra informações presentes sobre pacotes de terceiros"
2568+
2569+#: ../../uaclient/messages/__init__.py:978
2570+msgid "List and present information about unavailable packages"
2571+msgstr "Lista e mostra informações sobre pacotes indisponíveis"
2572+
2573+#: ../../uaclient/messages/__init__.py:981
2574+msgid "List and present information about esm-infra packages"
2575+msgstr "Lista e mostra informações sobre pacotes esm-infra"
2576+
2577+#: ../../uaclient/messages/__init__.py:984
2578+msgid "List and present information about esm-apps packages"
2579+msgstr "Lista e mostra informações sobre pacotes esm-apps"
2580+
2581+#: ../../uaclient/messages/__init__.py:988
2582+msgid ""
2583+"Refresh three distinct Ubuntu Pro related artifacts in the system:\n"
2584+"\n"
2585+"* contract: Update contract details from the server.\n"
2586+"* config: Reload the config file.\n"
2587+"* messages: Update APT and MOTD messages related to UA.\n"
2588+"\n"
2589+"You can individually target any of the three specific actions,\n"
2590+"by passing it's target to nome to the command. If no `target`\n"
2591+"is specified, all targets are refreshed.\n"
2592+msgstr ""
2593+"Atualize três artefatos distintos no seu sistema relacionados ao Ubuntu "
2594+"Pro:\n"
2595+"\n"
2596+"* contract: Atualize detalhes do contratos através do servidor.\n"
2597+"* config: Recarregue as configurações encontradas no arquivo de "
2598+"configuração.\n"
2599+"* messages: Atualized as mensagens APT e MOTD relacionados ao Ubuntu Pro.\n"
2600+"\n"
2601+"Você pode individualmente executar o comando para qualquer ums das três "
2602+"opções,\n"
2603+"ao fornecer o nome da opção para o comando. Se nenhuma `opção` for "
2604+"especificada,\n"
2605+"todas as opções serão atualizadas.\n"
2606+
2607+#: ../../uaclient/messages/__init__.py:1000
2608+msgid "Target to refresh."
2609+msgstr "Opção para atualizar"
2610+
2611+#: ../../uaclient/messages/__init__.py:1002
2612+msgid "Detach this machine from Ubuntu Pro services."
2613+msgstr "Desvincule esta máquina de uma assinatura Ubuntu Pro"
2614+
2615+#: ../../uaclient/messages/__init__.py:1005
2616+msgid "Provide detailed information about Ubuntu Pro services."
2617+msgstr "Providencia informações detalhadas sobre os serviços do Ubuntu Pro."
2618+
2619+#: ../../uaclient/messages/__init__.py:1008
2620+#, python-brace-format
2621+msgid "a service to view help output for. One of: {options}"
2622+msgstr "serviço para qual informação de ajuda será mostrada. Um de: {options}"
2623+
2624+#: ../../uaclient/messages/__init__.py:1010
2625+msgid "Include beta services"
2626+msgstr "Inclui os serviços beta"
2627+
2628+#: ../../uaclient/messages/__init__.py:1012
2629+msgid "Enable an Ubuntu Pro service."
2630+msgstr "Habilite um serviço Ubuntu Pro."
2631+
2632+#: ../../uaclient/messages/__init__.py:1014
2633+#, python-brace-format
2634+msgid "the name(s) of the Ubuntu Pro services to enable. One of: {options}"
2635+msgstr "os nome(s)n dos serviços Ubuntu Pro para habilitar. Um de: {options}"
2636+
2637+#: ../../uaclient/messages/__init__.py:1017
2638+msgid ""
2639+"do not auto-install packages. Valid for cc-eal, cis and realtime-kernel."
2640+msgstr ""
2641+"não instale pacotes automaticamente. Válido para cc-eal, cis e realtime-"
2642+"kernel."
2643+
2644+#: ../../uaclient/messages/__init__.py:1020
2645+msgid "allow beta service to be enabled"
2646+msgstr "permita que serviços beta sejam habilitados"
2647+
2648+#: ../../uaclient/messages/__init__.py:1022
2649+msgid "The name of the variant to use when enabling the service"
2650+msgstr "O nome da variante para usar ao habilitar o serviço"
2651+
2652+#: ../../uaclient/messages/__init__.py:1025
2653+msgid "Disable an Ubuntu Pro service."
2654+msgstr "Desabilite um serviço do Ubuntu Pro."
2655+
2656+#: ../../uaclient/messages/__init__.py:1027
2657+#, python-brace-format
2658+msgid "the name(s) of the Ubuntu Pro services to disable. One of: {options}"
2659+msgstr ""
2660+"os nome(s) do serviços do Ubuntu Pro para desabilitar. Um de: {options}"
2661+
2662+#: ../../uaclient/messages/__init__.py:1030
2663+msgid ""
2664+"disable the service and remove/downgrade related packages (experimental)"
2665+msgstr ""
2666+
2667+#: ../../uaclient/messages/__init__.py:1034
2668+msgid "Output system related information related to Pro services"
2669+msgstr "Mostre informações de sistema relacionados aos serviços do Ubuntu Pro"
2670+
2671+#: ../../uaclient/messages/__init__.py:1036
2672+msgid "does the system need to be rebooted"
2673+msgstr "se o sistema precisa ser reiniciado"
2674+
2675+#: ../../uaclient/messages/__init__.py:1038
2676+msgid ""
2677+"Report the current reboot-required status for the machine.\n"
2678+"\n"
2679+"This command will output one of the three following states\n"
2680+"for the machine regarding reboot:\n"
2681+"\n"
2682+"* no: The machine doesn't require a reboot\n"
2683+"* yes: The machine requires a reboot\n"
2684+"* yes-kernel-livepatches-applied: There are only kernel related\n"
2685+" packages that require a reboot, but Livepatch has already provided\n"
2686+" patches for the current running kernel. The machine still needs a\n"
2687+" reboot, but you can assess if the reboot can be performed in the\n"
2688+" nearest maintenance window.\n"
2689+msgstr ""
2690+"Reporte o atual status de reboot-required para esta máquina.\n"
2691+"\n"
2692+"Este comando irá mostrar um dos três estados para a máquina\n"
2693+"relacionados à operação de reiniciar o sistema:\n"
2694+"\n"
2695+"* no: A máquina não precisa ser reiniciada\n"
2696+"* yes: A máquina precisa ser reiniciada\n"
2697+"* yes-kernel-livepatches-applied: Só existem pacotes relacionados ao kernel "
2698+"que necessitam\n"
2699+" de reiniciar a máquina. Entretanto, o Livepatch já providenciou\n"
2700+" patches para o kernel atual em execução. A máquina ainda precisa ser\n"
2701+" reiniciada, mas você pode averiguar se o reinício pode acontecer no\n"
2702+" período de manutenção mais próximo.\n"
2703+
2704+#: ../../uaclient/messages/__init__.py:1055
2705+msgid ""
2706+"Report current status of Ubuntu Pro services on system.\n"
2707+"\n"
2708+"This shows whether this machine is attached to an Ubuntu Advantage\n"
2709+"support contract. When attached, the report includes the specific\n"
2710+"support contract details including contract name, expiry dates, and the\n"
2711+"status of each service on this system.\n"
2712+"\n"
2713+"The attached status output has four columns:\n"
2714+"\n"
2715+"* SERVICE: name of the service\n"
2716+"* ENTITLED: whether the contract to which this machine is attached\n"
2717+" entitles use of this service. Possible values are: yes or no\n"
2718+"* STATUS: whether the service is enabled on this machine. Possible\n"
2719+" values are: enabled, disabled, n/a (if your contract entitles\n"
2720+" you to the service, but it isn't available for this machine) or — (if\n"
2721+" you aren't entitled to this service)\n"
2722+"* DESCRIPTION: a brief description of the service\n"
2723+"\n"
2724+"The unattached status output instead has three columns. SERVICE\n"
2725+"and DESCRIPTION are the same as above, and there is the addition\n"
2726+"of:\n"
2727+"\n"
2728+"* AVAILABLE: whether this service would be available if this machine\n"
2729+" were attached. The possible values are yes or no.\n"
2730+"\n"
2731+"If --simulate-with-token is used, then the output has five\n"
2732+"columns. SERVICE, AVAILABLE, ENTITLED and DESCRIPTION are the same\n"
2733+"as mentioned above, and AUTO_ENABLED shows whether the service is set\n"
2734+"to be enabled when that token is attached.\n"
2735+"\n"
2736+"If the --all flag is set, beta and unavailable services are also\n"
2737+"listed in the output.\n"
2738+msgstr ""
2739+"Reportar o atual status dos serviços do Ubuntu Pro no sistema.\n"
2740+"\n"
2741+"Este comando mostra se uma máquina está vinculada a um contrato de suporte\n"
2742+"do Ubuntu Pro. Quando vinculada, serão mostrados detalhes específicos\n"
2743+"do contrato de suporte, incluindo nome do contrato, data de vencimento e o\n"
2744+"status de cada serviço no sistema.\n"
2745+"\n"
2746+"O status de uma máquina vinculada a um contrato possui quatro colunas:\n"
2747+"\n"
2748+"* SERVIÇO: o nome do serviço\n"
2749+"* INCLUÍDO: Se o serviço está incluído no contrato vinculado a máquina.\n"
2750+" Valores possíves: sim ou não\n"
2751+"* STATUS: Se o serviço está habilitado nesta máquina. valores possíveis\n"
2752+" são: habilitado, desabilitado, n/d (se o contrato diz que o serviço está\n"
2753+" disponível, mas o serviço não pode ser habilitado devido a uma restrição "
2754+"da máquina)\n"
2755+" ou — (se o contrato não mostra esse serviço como disponível)\n"
2756+"* DESCRIÇÃO: uma breve descrição do serviço\n"
2757+"\n"
2758+"Caso a máquina esteja desvinculada de um contrato, três colunas serão "
2759+"mostradas.\n"
2760+"SERVIÇO e DESCRIÇÃO são as mesmas informações mostradas acima, com a adição "
2761+"da\n"
2762+"coluna:\n"
2763+"\n"
2764+"* DISPONÍVEL: se o serviço estaria disponível caso a máquina fosse vinculada "
2765+"a um contrato\n"
2766+" Os valores possíveis aqui são sim e não.\n"
2767+"\n"
2768+"Se --simulate-with-token for usado, serão mostradas cinco colunas.\n"
2769+"SERVIÇO, DISPONÍVEL, INCLUÍDO, DESCRIÇÃO (os mesmos mencionados acima) e\n"
2770+"AUTO_HABILITADO mostrando se o serviço seria habilitado automaticamente se\n"
2771+"a máquina for vinculada a um contrato.\n"
2772+"\n"
2773+"Se a flag --all for usada, serviços beta e indisponíveis também\n"
2774+"serão listado.\n"
2775+
2776+#: ../../uaclient/messages/__init__.py:1090
2777+msgid "Block waiting on pro to complete"
2778+msgstr "Espera até o pro completar sua operação"
2779+
2780+#: ../../uaclient/messages/__init__.py:1092
2781+msgid "simulate the output status using a provided token"
2782+msgstr "simula a mensagem de status usando um token fornecido"
2783+
2784+#: ../../uaclient/messages/__init__.py:1094
2785+msgid "Include unavailable and beta services"
2786+msgstr "Inclui serviços beta e indisponíveis"
2787+
2788+#: ../../uaclient/messages/__init__.py:1096
2789+msgid "show all debug log messages to console"
2790+msgstr "mostra todas os logs de debug na saída do comando"
2791+
2792+#: ../../uaclient/messages/__init__.py:1097
2793+#, python-brace-format
2794+msgid "show version of {name}"
2795+msgstr "mostra versão de {name}"
2796+
2797+#: ../../uaclient/messages/__init__.py:1099
2798+msgid "attach this machine to an Ubuntu Pro subscription"
2799+msgstr "vincule esta máquina a uma assinatura Ubuntu Pro"
2800+
2801+#: ../../uaclient/messages/__init__.py:1102
2802+msgid "automatically attach on supported platforms"
2803+msgstr "automaticamente vincule está máquina em plataformas suportadas"
2804+
2805+#: ../../uaclient/messages/__init__.py:1103
2806+msgid "collect Pro logs and debug information"
2807+msgstr "coleta logs do Pro e informações de debug"
2808+
2809+#: ../../uaclient/messages/__init__.py:1104
2810+msgid "manage Ubuntu Pro configuration on this machine"
2811+msgstr "gerencia configuração do Ubuntu Pro nesta máquina"
2812+
2813+#: ../../uaclient/messages/__init__.py:1106
2814+msgid "remove this machine from an Ubuntu Pro subscription"
2815+msgstr "desvincula esta máquina de uma assinatura Ubuntu Pro"
2816+
2817+#: ../../uaclient/messages/__init__.py:1109
2818+msgid "disable a specific Ubuntu Pro service on this machine"
2819+msgstr "desabilita nesta máquina um serviço do Ubuntu Pro"
2820+
2821+#: ../../uaclient/messages/__init__.py:1112
2822+msgid "enable a specific Ubuntu Pro service on this machine"
2823+msgstr "habilita nesta máquina um serviço Ubuntu Pro"
2824+
2825+#: ../../uaclient/messages/__init__.py:1115
2826+msgid "check for and mitigate the impact of a CVE/USN on this system"
2827+msgstr "checa e corrige os problemas de segurança de um CVE/USN na máquina"
2828+
2829+#: ../../uaclient/messages/__init__.py:1118
2830+msgid "list available security updates for the system"
2831+msgstr "lista atualizações de segurança disponíveis para o sistema"
2832+
2833+#: ../../uaclient/messages/__init__.py:1121
2834+msgid "show detailed information about Ubuntu Pro services"
2835+msgstr "mostra informações detalhadas sobre os serviços do Ubuntu Pro"
2836+
2837+#: ../../uaclient/messages/__init__.py:1123
2838+msgid "refresh Ubuntu Pro services"
2839+msgstr "atualiza os serviços do Ubuntu Pro"
2840+
2841+#: ../../uaclient/messages/__init__.py:1124
2842+msgid "current status of all Ubuntu Pro services"
2843+msgstr "status atual de todos os serviços do Ubuntu Pro"
2844+
2845+#: ../../uaclient/messages/__init__.py:1125
2846+msgid "show system information related to Pro services"
2847+msgstr "mostra informações de sistema relacionados a serviços do Ubuntu Pro"
2848+
2849+#: ../../uaclient/messages/__init__.py:1128
2850+#, python-brace-format
2851+msgid ""
2852+"WARNING: this output is intended to be human readable, and subject to "
2853+"change.\n"
2854+"In scripts, prefer using machine readable data from the `pro api` command,\n"
2855+"or use `pro {command} --format json`.\n"
2856+msgstr ""
2857+"ATENÇÃO: a saída deste comando é para ser legível para humanos. Tal saída "
2858+"está\n"
2859+"sujeita à mudanças no futuro.\n"
2860+"Em scripts, é melhor usar a formatos legíveis para máquinas via comandos "
2861+"`pro api`,\n"
2862+"ou usar `pro {command} --format json`.\n"
2863+
2864+#. ##############################################################################
2865+#. SERVICE-SPECIFIC MESSAGES #
2866+#. ##############################################################################
2867+#: ../../uaclient/messages/__init__.py:1141
2868+msgid "Anbox Cloud"
2869+msgstr "Anbox Cloud"
2870+
2871+#: ../../uaclient/messages/__init__.py:1142
2872+msgid "Scalable Android in the cloud"
2873+msgstr "Android escalável na nuvem"
2874+
2875+#: ../../uaclient/messages/__init__.py:1144
2876+#, python-brace-format
2877+msgid ""
2878+"Anbox Cloud lets you stream mobile apps securely, at any scale, to any "
2879+"device,\n"
2880+"letting you focus on your apps. Run Android in system containers on public "
2881+"or\n"
2882+"private clouds with ultra low streaming latency. When the anbox-cloud "
2883+"service\n"
2884+"is enabled, by default, the Appliance variant is enabled. Enabling this "
2885+"service\n"
2886+"allows orchestration to provision a PPA with the Anbox Cloud resources. "
2887+"This\n"
2888+"step also configures the Anbox Management Service (AMS) with the necessary\n"
2889+"image server credentials. To learn more about Anbox Cloud, see\n"
2890+"{url}"
2891+msgstr ""
2892+
2893+#: ../../uaclient/messages/__init__.py:1155
2894+#, python-brace-format
2895+msgid ""
2896+"To finish setting up the Anbox Cloud Appliance, run:\n"
2897+"\n"
2898+"$ sudo anbox-cloud-appliance init\n"
2899+"\n"
2900+"You can accept the default answers if you do not have any specific\n"
2901+"configuration changes.\n"
2902+"For more information, see {url}\n"
2903+msgstr ""
2904+
2905+#: ../../uaclient/messages/__init__.py:1166
2906+msgid "CC EAL2"
2907+msgstr ""
2908+
2909+#: ../../uaclient/messages/__init__.py:1167
2910+msgid "Common Criteria EAL2 Provisioning Packages"
2911+msgstr "Pacotes de Provisionamento do Common Criteria EAL2"
2912+
2913+#: ../../uaclient/messages/__init__.py:1169
2914+msgid ""
2915+"Common Criteria is an Information Technology Security Evaluation standard\n"
2916+"(ISO/IEC IS 15408) for computer security certification. Ubuntu 16.04 has "
2917+"been\n"
2918+"evaluated to assurance level EAL2 through CSEC. The evaluation was "
2919+"performed\n"
2920+"on Intel x86_64, IBM Power8 and IBM Z hardware platforms."
2921+msgstr ""
2922+
2923+#: ../../uaclient/messages/__init__.py:1176
2924+msgid ""
2925+"(This will download more than 500MB of packages, so may take some time.)"
2926+msgstr ""
2927+
2928+#: ../../uaclient/messages/__init__.py:1180
2929+#, python-brace-format
2930+msgid "Please follow instructions in {filename} to configure EAL2"
2931+msgstr ""
2932+
2933+#: ../../uaclient/messages/__init__.py:1183
2934+msgid "CIS Audit"
2935+msgstr ""
2936+
2937+#: ../../uaclient/messages/__init__.py:1184
2938+msgid "Ubuntu Security Guide"
2939+msgstr ""
2940+
2941+#: ../../uaclient/messages/__init__.py:1185
2942+msgid "Security compliance and audit tools"
2943+msgstr "Ferramentas de auditoria e conformidade de segurança"
2944+
2945+#: ../../uaclient/messages/__init__.py:1187
2946+#, python-brace-format
2947+msgid ""
2948+"Ubuntu Security Guide is a tool for hardening and auditing and allows for\n"
2949+"environment-specific customizations. It enables compliance with profiles "
2950+"such\n"
2951+"as DISA-STIG and the CIS benchmarks. Find out more at\n"
2952+"{url}"
2953+msgstr ""
2954+
2955+#: ../../uaclient/messages/__init__.py:1193
2956+#, python-brace-format
2957+msgid "Visit {url} to learn how to use CIS"
2958+msgstr ""
2959+
2960+#: ../../uaclient/messages/__init__.py:1196
2961+#, python-brace-format
2962+msgid "Visit {url} for the next steps"
2963+msgstr ""
2964+
2965+#: ../../uaclient/messages/__init__.py:1200
2966+#, python-brace-format
2967+msgid ""
2968+"From Ubuntu 20.04 and onwards 'pro enable cis' has been\n"
2969+"replaced by 'pro enable usg'. See more information at:\n"
2970+"{url}"
2971+msgstr ""
2972+
2973+#: ../../uaclient/messages/__init__.py:1208
2974+msgid "Expanded Security Maintenance for Applications"
2975+msgstr "Manutenção de Segurança Expandida para Aplicações"
2976+
2977+#: ../../uaclient/messages/__init__.py:1211
2978+#, python-brace-format
2979+msgid ""
2980+"Expanded Security Maintenance for Applications is enabled by default on\n"
2981+"entitled workloads. It provides access to a private PPA which includes\n"
2982+"available high and critical CVE fixes for Ubuntu LTS packages in the Ubuntu\n"
2983+"Main and Ubuntu Universe repositories from the Ubuntu LTS release date "
2984+"until\n"
2985+"its end of life. You can find out more about the esm service at\n"
2986+"{url}"
2987+msgstr ""
2988+
2989+#: ../../uaclient/messages/__init__.py:1222
2990+msgid "Expanded Security Maintenance for Infrastructure"
2991+msgstr "Manutenção de Segurança Expandida para Infraestrutura"
2992+
2993+#: ../../uaclient/messages/__init__.py:1225
2994+#, python-brace-format
2995+msgid ""
2996+"Expanded Security Maintenance for Infrastructure provides access to a "
2997+"private\n"
2998+"PPA which includes available high and critical CVE fixes for Ubuntu LTS\n"
2999+"packages in the Ubuntu Main repository between the end of the standard "
3000+"Ubuntu\n"
3001+"LTS security maintenance and its end of life. It is enabled by default with\n"
3002+"Ubuntu Pro. You can find out more about the service at\n"
3003+"{url}"
3004+msgstr ""
3005+
3006+#: ../../uaclient/messages/__init__.py:1234
3007+msgid "FIPS"
3008+msgstr ""
3009+
3010+#: ../../uaclient/messages/__init__.py:1235
3011+msgid "NIST-certified FIPS crypto packages"
3012+msgstr "Pacotes FIPS de criptografia certificados pelo NIST"
3013+
3014+#: ../../uaclient/messages/__init__.py:1237
3015+#, python-brace-format
3016+msgid ""
3017+"Installs FIPS 140 crypto packages for FedRAMP, FISMA and compliance use "
3018+"cases.\n"
3019+"Note that \"fips\" does not provide security patching. For FIPS certified\n"
3020+"modules with security patches please see \"fips-updates\". If you are "
3021+"unsure,\n"
3022+"choose \"fips-updates\" for maximum security. Find out more at {url}"
3023+msgstr ""
3024+
3025+#: ../../uaclient/messages/__init__.py:1244
3026+msgid "Could not determine cloud, defaulting to generic FIPS package."
3027+msgstr ""
3028+
3029+#: ../../uaclient/messages/__init__.py:1247
3030+#, python-brace-format
3031+msgid ""
3032+"FIPS kernel is running in a disabled state.\n"
3033+" To manually remove fips kernel: {url}\n"
3034+msgstr ""
3035+
3036+#: ../../uaclient/messages/__init__.py:1253
3037+msgid ""
3038+"Warning: FIPS kernel is not optimized for your specific cloud.\n"
3039+"To fix it, run the following commands:\n"
3040+"\n"
3041+" 1. sudo pro disable fips\n"
3042+" 2. sudo apt-get remove ubuntu-fips\n"
3043+" 3. sudo pro enable fips --assume-yes\n"
3044+" 4. sudo reboot\n"
3045+msgstr ""
3046+
3047+#: ../../uaclient/messages/__init__.py:1265
3048+msgid ""
3049+"This will install the FIPS packages. The Livepatch service will be "
3050+"unavailable.\n"
3051+"Warning: This action can take some time and cannot be undone.\n"
3052+msgstr ""
3053+
3054+#: ../../uaclient/messages/__init__.py:1274
3055+msgid ""
3056+"This will install the FIPS packages including security updates.\n"
3057+"Warning: This action can take some time and cannot be undone.\n"
3058+msgstr ""
3059+
3060+#: ../../uaclient/messages/__init__.py:1283
3061+#, python-brace-format
3062+msgid ""
3063+"Warning: Enabling {title} in a container.\n"
3064+" This will install the FIPS packages but not the kernel.\n"
3065+" This container must run on a host with {title} enabled to be\n"
3066+" compliant.\n"
3067+"Warning: This action can take some time and cannot be undone.\n"
3068+msgstr ""
3069+
3070+#: ../../uaclient/messages/__init__.py:1295
3071+#, python-brace-format
3072+msgid ""
3073+"This will disable the {title} entitlement but the {title} packages will "
3074+"remain installed.\n"
3075+msgstr ""
3076+
3077+#: ../../uaclient/messages/__init__.py:1302
3078+msgid "FIPS support requires system reboot to complete configuration."
3079+msgstr ""
3080+
3081+#: ../../uaclient/messages/__init__.py:1304
3082+#: ../../uaclient/messages/__init__.py:1735
3083+msgid "Reboot to FIPS kernel required"
3084+msgstr ""
3085+
3086+#: ../../uaclient/messages/__init__.py:1306
3087+msgid "This FIPS install is out of date, run: sudo pro enable fips"
3088+msgstr ""
3089+
3090+#: ../../uaclient/messages/__init__.py:1309
3091+msgid "Disabling FIPS requires system reboot to complete operation."
3092+msgstr ""
3093+
3094+#: ../../uaclient/messages/__init__.py:1312
3095+#, python-brace-format
3096+msgid "{service} {pkg} package could not be installed"
3097+msgstr ""
3098+
3099+#: ../../uaclient/messages/__init__.py:1315
3100+msgid ""
3101+"Please run `apt upgrade` to ensure all FIPS packages are updated to the "
3102+"correct\n"
3103+"version.\n"
3104+msgstr ""
3105+
3106+#: ../../uaclient/messages/__init__.py:1321
3107+msgid "FIPS Updates"
3108+msgstr ""
3109+
3110+#: ../../uaclient/messages/__init__.py:1323
3111+msgid "FIPS compliant crypto packages with stable security updates"
3112+msgstr ""
3113+"Pacotes de criptografia compatíveis com FIPS com atualizações de segurança "
3114+"estáveis"
3115+
3116+#: ../../uaclient/messages/__init__.py:1326
3117+#, python-brace-format
3118+msgid ""
3119+"fips-updates installs FIPS 140 crypto packages including all security "
3120+"patches\n"
3121+"for those modules that have been provided since their certification date.\n"
3122+"You can find out more at {url}"
3123+msgstr ""
3124+
3125+#: ../../uaclient/messages/__init__.py:1332
3126+msgid "FIPS Preview"
3127+msgstr ""
3128+
3129+#: ../../uaclient/messages/__init__.py:1334
3130+msgid "Preview of FIPS crypto packages undergoing certification with NIST"
3131+msgstr ""
3132+"Prévia de pacotes FIPS de criptografia em processo de certificação pelo NIST"
3133+
3134+#: ../../uaclient/messages/__init__.py:1337
3135+msgid ""
3136+"Installs FIPS crypto packages that are under certification with NIST,\n"
3137+"for FedRAMP, FISMA and compliance use cases."
3138+msgstr ""
3139+
3140+#: ../../uaclient/messages/__init__.py:1342
3141+msgid ""
3142+"This will install crypto packages that have been submitted to NIST for "
3143+"review\n"
3144+"but do not have FIPS certification yet. Use this for early access to the "
3145+"FIPS\n"
3146+"modules.\n"
3147+"Please note that the Livepatch service will be unavailable after\n"
3148+"this operation.\n"
3149+"Warning: This action can take some time and cannot be undone.\n"
3150+msgstr ""
3151+
3152+#: ../../uaclient/messages/__init__.py:1353
3153+msgid "Landscape"
3154+msgstr ""
3155+
3156+#: ../../uaclient/messages/__init__.py:1355
3157+msgid "Management and administration tool for Ubuntu"
3158+msgstr "Ferramenta de gerenciamento e administração para o Ubuntu"
3159+
3160+#: ../../uaclient/messages/__init__.py:1358
3161+#, python-brace-format
3162+msgid ""
3163+"Landscape Client can be installed on this machine and enrolled in "
3164+"Canonical's\n"
3165+"Landscape SaaS: {saas_url} or a self-hosted Landscape:\n"
3166+"{install_url}\n"
3167+"Landscape allows you to manage many machines as easily as one, with an\n"
3168+"intuitive dashboard and API interface for automation, hardening, auditing, "
3169+"and\n"
3170+"more. Find out more about Landscape at {home_url}"
3171+msgstr ""
3172+
3173+#: ../../uaclient/messages/__init__.py:1371
3174+msgid "Livepatch"
3175+msgstr ""
3176+
3177+#: ../../uaclient/messages/__init__.py:1372
3178+msgid "Canonical Livepatch service"
3179+msgstr "Serviço de Livepatch da Canonical"
3180+
3181+#: ../../uaclient/messages/__init__.py:1374
3182+#, python-brace-format
3183+msgid ""
3184+"Livepatch provides selected high and critical kernel CVE fixes and other\n"
3185+"non-security bug fixes as kernel livepatches. Livepatches are applied "
3186+"without\n"
3187+"rebooting a machine which drastically limits the need for unscheduled "
3188+"system\n"
3189+"reboots. Due to the nature of fips compliance, livepatches cannot be "
3190+"enabled\n"
3191+"on fips-enabled systems. You can find out more about Ubuntu Kernel "
3192+"Livepatch\n"
3193+"service at {url}"
3194+msgstr ""
3195+
3196+#: ../../uaclient/messages/__init__.py:1383
3197+msgid "Current kernel is not supported"
3198+msgstr ""
3199+
3200+#: ../../uaclient/messages/__init__.py:1386
3201+#, python-brace-format
3202+msgid "Supported livepatch kernels are listed here: {url}"
3203+msgstr ""
3204+
3205+#: ../../uaclient/messages/__init__.py:1389
3206+#, python-brace-format
3207+msgid "Unable to configure livepatch: {error_msg}"
3208+msgstr ""
3209+
3210+#: ../../uaclient/messages/__init__.py:1391
3211+msgid "Unable to enable Livepatch: "
3212+msgstr ""
3213+
3214+#: ../../uaclient/messages/__init__.py:1393
3215+msgid "Disabling Livepatch prior to re-attach with new token"
3216+msgstr ""
3217+
3218+#: ../../uaclient/messages/__init__.py:1396
3219+msgid "Livepatch support requires a system reboot across LTS upgrade."
3220+msgstr ""
3221+
3222+#: ../../uaclient/messages/__init__.py:1399
3223+#: ../../uaclient/messages/__init__.py:1412
3224+msgid "Real-time kernel"
3225+msgstr ""
3226+
3227+#: ../../uaclient/messages/__init__.py:1401
3228+msgid "Ubuntu kernel with PREEMPT_RT patches integrated"
3229+msgstr "Kernel do Ubuntu com patches PREEMPT_RT integrados"
3230+
3231+#: ../../uaclient/messages/__init__.py:1404
3232+msgid ""
3233+"The Real-time kernel is an Ubuntu kernel with PREEMPT_RT patches integrated. "
3234+"It\n"
3235+"services latency-dependent use cases by providing deterministic response "
3236+"times.\n"
3237+"The Real-time kernel meets stringent preemption specifications and is "
3238+"suitable\n"
3239+"for telco applications and dedicated devices in industrial automation and\n"
3240+"robotics. The Real-time kernel is currently incompatible with FIPS and\n"
3241+"Livepatch."
3242+msgstr ""
3243+
3244+#: ../../uaclient/messages/__init__.py:1414
3245+msgid "Generic version of the RT kernel (default)"
3246+msgstr "Versão genérica do kernel RT (padrão)"
3247+
3248+#: ../../uaclient/messages/__init__.py:1416
3249+msgid "Real-time NVIDIA Tegra Kernel"
3250+msgstr ""
3251+
3252+#: ../../uaclient/messages/__init__.py:1418
3253+msgid "RT kernel optimized for NVIDIA Tegra platform"
3254+msgstr "Kernel RT otimizado para a plataforma NVIDIA Tegra"
3255+
3256+#: ../../uaclient/messages/__init__.py:1420
3257+msgid "Real-time Intel IOTG Kernel"
3258+msgstr ""
3259+
3260+#: ../../uaclient/messages/__init__.py:1422
3261+msgid "RT kernel optimized for Intel IOTG platform"
3262+msgstr "Kernel RT otimizado para a plataforma Intel IOTG"
3263+
3264+#: ../../uaclient/messages/__init__.py:1425
3265+#, python-brace-format
3266+msgid ""
3267+"The Real-time kernel is an Ubuntu kernel with PREEMPT_RT patches "
3268+"integrated.\n"
3269+"\n"
3270+"{bold}This will change your kernel. To revert to your original kernel, you "
3271+"will need\n"
3272+"to make the change manually.{end_bold}\n"
3273+"\n"
3274+"Do you want to continue? [ default = Yes ]: (Y/n) "
3275+msgstr ""
3276+
3277+#: ../../uaclient/messages/__init__.py:1436
3278+msgid ""
3279+"This will remove the boot order preference for the Real-time kernel and\n"
3280+"disable updates to the Real-time kernel.\n"
3281+"\n"
3282+"This will NOT fully remove the kernel from your system.\n"
3283+"\n"
3284+"After this operation is complete you must:\n"
3285+" - Ensure a different kernel is installed and configured to boot\n"
3286+" - Reboot into that kernel\n"
3287+" - Fully remove the realtime kernel packages from your system\n"
3288+" - This might look something like `apt remove linux*realtime`,\n"
3289+" but you must ensure this is correct before running it.\n"
3290+"\n"
3291+"Are you sure? (y/N) "
3292+msgstr ""
3293+
3294+#: ../../uaclient/messages/__init__.py:1452
3295+msgid "ROS ESM Security Updates"
3296+msgstr ""
3297+
3298+#: ../../uaclient/messages/__init__.py:1453
3299+msgid "Security Updates for the Robot Operating System"
3300+msgstr "Atualizações de Segurança para o Robot Operating System"
3301+
3302+#: ../../uaclient/messages/__init__.py:1455
3303+#, python-brace-format
3304+msgid ""
3305+"ros provides access to a private PPA which includes security-related "
3306+"updates\n"
3307+"for available high and critical CVE fixes for Robot Operating System (ROS)\n"
3308+"packages. For access to ROS ESM and security updates, both esm-infra and\n"
3309+"esm-apps services will also be enabled. To get additional non-security "
3310+"updates,\n"
3311+"enable ros-updates. You can find out more about the ROS ESM service at\n"
3312+"{url}"
3313+msgstr ""
3314+
3315+#: ../../uaclient/messages/__init__.py:1464
3316+msgid "ROS ESM All Updates"
3317+msgstr ""
3318+
3319+#: ../../uaclient/messages/__init__.py:1466
3320+msgid "All Updates for the Robot Operating System"
3321+msgstr "Todas as Atualizações para o Robot Operating System"
3322+
3323+#: ../../uaclient/messages/__init__.py:1469
3324+#, python-brace-format
3325+msgid ""
3326+"ros-updates provides access to a private PPA that includes non-security-"
3327+"related\n"
3328+"updates for Robot Operating System (ROS) packages. For full access to ROS "
3329+"ESM,\n"
3330+"security and non-security updates, the esm-infra, esm-apps, and ros "
3331+"services\n"
3332+"will also be enabled. You can find out more about the ROS ESM service at\n"
3333+"{url}"
3334+msgstr ""
3335+
3336+#: ../../uaclient/messages/__init__.py:1540
3337+msgid ""
3338+"Unexpected error(s) occurred.\n"
3339+"For more details, see the log: /var/log/ubuntu-advantage.log\n"
3340+"To file a bug run: ubuntu-bug ubuntu-advantage-tools"
3341+msgstr ""
3342+
3343+#: ../../uaclient/messages/__init__.py:1550
3344+#, python-brace-format
3345+msgid ""
3346+"Failed to access URL: {url}\n"
3347+"Cannot verify certificate of server\n"
3348+"Please install \"ca-certificates\" and try again."
3349+msgstr ""
3350+
3351+#: ../../uaclient/messages/__init__.py:1560
3352+#, python-brace-format
3353+msgid ""
3354+"Failed to access URL: {url}\n"
3355+"Cannot verify certificate of server\n"
3356+"Please check your openssl configuration."
3357+msgstr ""
3358+
3359+#: ../../uaclient/messages/__init__.py:1569
3360+#, python-brace-format
3361+msgid "Ignoring unknown argument '{arg}'"
3362+msgstr ""
3363+
3364+#: ../../uaclient/messages/__init__.py:1575
3365+#, python-brace-format
3366+msgid ""
3367+"A new version of the client is available: {version}. Please upgrade to the "
3368+"latest version to get the new features and bug fixes."
3369+msgstr ""
3370+
3371+#: ../../uaclient/messages/__init__.py:1582
3372+#, python-brace-format
3373+msgid "{title} does not support being enabled with --access-only"
3374+msgstr ""
3375+
3376+#: ../../uaclient/messages/__init__.py:1587
3377+#, python-brace-format
3378+msgid "{title} does not support being disabled with --purge"
3379+msgstr ""
3380+
3381+#: ../../uaclient/messages/__init__.py:1593
3382+#, python-brace-format
3383+msgid "Cannot disable dependent service: {required_service}{error}"
3384+msgstr ""
3385+
3386+#: ../../uaclient/messages/__init__.py:1600
3387+#, python-brace-format
3388+msgid ""
3389+"Cannot disable {service_being_disabled} when {dependent_service} is "
3390+"enabled.\n"
3391+msgstr ""
3392+
3393+#: ../../uaclient/messages/__init__.py:1608
3394+#, python-brace-format
3395+msgid "Cannot disable {entitlement_name} with purge: no origin value defined"
3396+msgstr ""
3397+
3398+#: ../../uaclient/messages/__init__.py:1615
3399+#, python-brace-format
3400+msgid "Cannot enable required service: {service}{error}"
3401+msgstr ""
3402+
3403+#: ../../uaclient/messages/__init__.py:1620
3404+#, python-brace-format
3405+msgid ""
3406+"Cannot enable {service_being_enabled} when {required_service} is disabled.\n"
3407+msgstr ""
3408+
3409+#: ../../uaclient/messages/__init__.py:1628
3410+#, python-brace-format
3411+msgid ""
3412+"Cannot enable {service_being_enabled} when {incompatible_service} is enabled."
3413+msgstr ""
3414+
3415+#: ../../uaclient/messages/__init__.py:1636
3416+#, python-brace-format
3417+msgid "Cannot install {title} on a container."
3418+msgstr ""
3419+
3420+#: ../../uaclient/messages/__init__.py:1639
3421+#, python-brace-format
3422+msgid "{title} is not configured"
3423+msgstr ""
3424+
3425+#: ../../uaclient/messages/__init__.py:1644
3426+#, python-brace-format
3427+msgid ""
3428+"The {service} service is not enabled because the {package} package is\n"
3429+"not installed."
3430+msgstr ""
3431+
3432+#: ../../uaclient/messages/__init__.py:1650
3433+#, python-brace-format
3434+msgid "{title} is active"
3435+msgstr ""
3436+
3437+#: ../../uaclient/messages/__init__.py:1654
3438+#, python-brace-format
3439+msgid "{title} does not have an aptURL directive"
3440+msgstr ""
3441+
3442+#: ../../uaclient/messages/__init__.py:1659
3443+#, python-brace-format
3444+msgid ""
3445+"{title} is not currently enabled\n"
3446+"See: sudo pro status"
3447+msgstr ""
3448+
3449+#: ../../uaclient/messages/__init__.py:1666
3450+#, python-brace-format
3451+msgid ""
3452+"{title} is already enabled.\n"
3453+"See: sudo pro status"
3454+msgstr ""
3455+
3456+#: ../../uaclient/messages/__init__.py:1673
3457+#, python-brace-format
3458+msgid ""
3459+"This subscription is not entitled to {{title}}\n"
3460+"View your subscription at: {url}"
3461+msgstr ""
3462+
3463+#: ../../uaclient/messages/__init__.py:1679
3464+#, python-brace-format
3465+msgid "{title} is not entitled"
3466+msgstr ""
3467+
3468+#: ../../uaclient/messages/__init__.py:1685
3469+#, python-brace-format
3470+msgid ""
3471+"{title} is not available for kernel {kernel}.\n"
3472+"Minimum kernel version required: {min_kernel}."
3473+msgstr ""
3474+
3475+#: ../../uaclient/messages/__init__.py:1693
3476+#, python-brace-format
3477+msgid ""
3478+"{title} is not available for kernel {kernel}.\n"
3479+"Supported flavors are: {supported_kernels}."
3480+msgstr ""
3481+
3482+#: ../../uaclient/messages/__init__.py:1701
3483+#, python-brace-format
3484+msgid "{title} is not available for Ubuntu {series}."
3485+msgstr ""
3486+
3487+#: ../../uaclient/messages/__init__.py:1708
3488+#, python-brace-format
3489+msgid ""
3490+"{title} is not available for platform {arch}.\n"
3491+"Supported platforms are: {supported_arches}."
3492+msgstr ""
3493+
3494+#: ../../uaclient/messages/__init__.py:1716
3495+#, python-brace-format
3496+msgid ""
3497+"{title} is not available for CPU vendor {vendor}.\n"
3498+"Supported CPU vendors are: {supported_vendors}."
3499+msgstr ""
3500+
3501+#: ../../uaclient/messages/__init__.py:1723
3502+msgid "no entitlement affordances checked"
3503+msgstr ""
3504+
3505+#: ../../uaclient/messages/__init__.py:1729
3506+#, python-brace-format
3507+msgid ""
3508+"Ubuntu {{series}} does not provide {{cloud}} optimized FIPS kernel\n"
3509+"For help see: {url}"
3510+msgstr ""
3511+
3512+#: ../../uaclient/messages/__init__.py:1739
3513+#, python-brace-format
3514+msgid "Cannot enable {fips} when {fips_updates} is enabled."
3515+msgstr ""
3516+
3517+#: ../../uaclient/messages/__init__.py:1742
3518+#, python-brace-format
3519+msgid "{file_name} is not set to 1"
3520+msgstr ""
3521+
3522+#: ../../uaclient/messages/__init__.py:1746
3523+#, python-brace-format
3524+msgid "Cannot enable {fips} because {fips_updates} was once enabled."
3525+msgstr ""
3526+
3527+#: ../../uaclient/messages/__init__.py:1751
3528+msgid ""
3529+"FIPS cannot be enabled if FIPS Updates has ever been enabled because FIPS "
3530+"Updates installs security patches that aren't officially certified."
3531+msgstr ""
3532+
3533+#: ../../uaclient/messages/__init__.py:1759
3534+msgid ""
3535+"FIPS Updates cannot be enabled if FIPS is enabled. FIPS Updates installs "
3536+"security patches that aren't officially certified."
3537+msgstr ""
3538+
3539+#: ../../uaclient/messages/__init__.py:1768
3540+msgid ""
3541+"Livepatch cannot be enabled while running the official FIPS certified "
3542+"kernel. If you would like a FIPS compliant kernel with additional bug fixes "
3543+"and security updates, you can use the FIPS Updates service with Livepatch."
3544+msgstr ""
3545+
3546+#: ../../uaclient/messages/__init__.py:1776
3547+msgid "canonical-livepatch snap is not installed."
3548+msgstr ""
3549+
3550+#: ../../uaclient/messages/__init__.py:1780
3551+msgid "Cannot enable Livepatch when FIPS is enabled."
3552+msgstr ""
3553+
3554+#: ../../uaclient/messages/__init__.py:1785
3555+msgid ""
3556+"The running kernel has reached the end of its active livepatch window.\n"
3557+"Please upgrade the kernel with apt and reboot for continued livepatch "
3558+"support."
3559+msgstr ""
3560+
3561+#: ../../uaclient/messages/__init__.py:1793
3562+#, python-brace-format
3563+msgid ""
3564+"The current kernel ({{version}}, {{arch}}) has reached the end of its "
3565+"livepatch support.\n"
3566+"Supported kernels are listed here: {url}\n"
3567+"Either switch to a supported kernel or `pro disable livepatch` to dismiss "
3568+"this warning."
3569+msgstr ""
3570+
3571+#: ../../uaclient/messages/__init__.py:1802
3572+#, python-brace-format
3573+msgid ""
3574+"The current kernel ({{version}}, {{arch}}) is not supported by livepatch.\n"
3575+"Supported kernels are listed here: {url}\n"
3576+"Either switch to a supported kernel or `pro disable livepatch` to dismiss "
3577+"this warning."
3578+msgstr ""
3579+
3580+#: ../../uaclient/messages/__init__.py:1812
3581+msgid "canonical-livepatch status didn't finish successfully"
3582+msgstr ""
3583+
3584+#: ../../uaclient/messages/__init__.py:1818
3585+msgid ""
3586+"Realtime and FIPS require different kernels, so you cannot enable both at "
3587+"the same time."
3588+msgstr ""
3589+
3590+#: ../../uaclient/messages/__init__.py:1825
3591+msgid ""
3592+"Realtime and FIPS Updates require different kernels, so you cannot enable "
3593+"both at the same time."
3594+msgstr ""
3595+
3596+#: ../../uaclient/messages/__init__.py:1832
3597+msgid "Livepatch is not currently supported for the Real-time kernel."
3598+msgstr ""
3599+
3600+#: ../../uaclient/messages/__init__.py:1837
3601+#, python-brace-format
3602+msgid "{service} cannot be enabled together with {variant}"
3603+msgstr ""
3604+
3605+#: ../../uaclient/messages/__init__.py:1841
3606+msgid "Cannot install Real-time kernel on a container."
3607+msgstr ""
3608+
3609+#: ../../uaclient/messages/__init__.py:1846
3610+msgid "apt-daily.timer jobs are not running"
3611+msgstr ""
3612+
3613+#: ../../uaclient/messages/__init__.py:1850
3614+#, python-brace-format
3615+msgid "{cfg_name} is empty"
3616+msgstr ""
3617+
3618+#: ../../uaclient/messages/__init__.py:1854
3619+#, python-brace-format
3620+msgid "{cfg_name} is turned off"
3621+msgstr ""
3622+
3623+#: ../../uaclient/messages/__init__.py:1858
3624+msgid "unattended-upgrades package is not installed"
3625+msgstr ""
3626+
3627+#: ../../uaclient/messages/__init__.py:1863
3628+msgid "lanscape-client is not installed"
3629+msgstr ""
3630+
3631+#: ../../uaclient/messages/__init__.py:1868
3632+msgid ""
3633+"Landscape is installed but not configured.\n"
3634+"Run `sudo landscape-config` to set it up, or run `sudo pro disable landscape`"
3635+msgstr ""
3636+
3637+#: ../../uaclient/messages/__init__.py:1877
3638+msgid ""
3639+"Landscape is installed and configured but not registered.\n"
3640+"Run `sudo landscape-config` to register, or run `sudo pro disable landscape`"
3641+msgstr ""
3642+
3643+#: ../../uaclient/messages/__init__.py:1886
3644+msgid ""
3645+"Landscape is installed and configured and registered but not running.\n"
3646+"Run `sudo landscape-config` to start it, or run `sudo pro disable landscape`"
3647+msgstr ""
3648+
3649+#: ../../uaclient/messages/__init__.py:1894
3650+msgid "landscape-config command failed"
3651+msgstr ""
3652+
3653+#: ../../uaclient/messages/__init__.py:1900
3654+#, python-brace-format
3655+msgid ""
3656+"Error: issue \"{issue_id}\" is not recognized.\n"
3657+"\n"
3658+"CVEs should follow the pattern CVE-yyyy-nnn.\n"
3659+"\n"
3660+"USNs should follow the pattern USN-nnnn."
3661+msgstr ""
3662+
3663+#: ../../uaclient/messages/__init__.py:1914
3664+msgid "Another process is running APT."
3665+msgstr ""
3666+
3667+#: ../../uaclient/messages/__init__.py:1920
3668+#, python-brace-format
3669+msgid ""
3670+"APT update failed to read APT config for the following:\n"
3671+"{failed_repos}"
3672+msgstr ""
3673+
3674+#: ../../uaclient/messages/__init__.py:1950
3675+#, python-brace-format
3676+msgid "Invalid APT credentials provided for {repo}"
3677+msgstr ""
3678+
3679+#: ../../uaclient/messages/__init__.py:1955
3680+#, python-brace-format
3681+msgid "Timeout trying to access APT repository at {repo}"
3682+msgstr ""
3683+
3684+#: ../../uaclient/messages/__init__.py:1961
3685+#, python-brace-format
3686+msgid ""
3687+"Unexpected APT error.\n"
3688+"{detail}\n"
3689+"See /var/log/ubuntu-advantage.log"
3690+msgstr ""
3691+
3692+#: ../../uaclient/messages/__init__.py:1971
3693+#, python-brace-format
3694+msgid ""
3695+"Cannot validate credentials for APT repo. Timeout after {seconds} seconds "
3696+"trying to reach {repo}."
3697+msgstr ""
3698+
3699+#: ../../uaclient/messages/__init__.py:1978
3700+#, python-brace-format
3701+msgid "snap {snap} is not installed or doesn't exist"
3702+msgstr ""
3703+
3704+#: ../../uaclient/messages/__init__.py:1983
3705+#, python-brace-format
3706+msgid ""
3707+"Unexpected SNAPD API error\n"
3708+"{error}"
3709+msgstr ""
3710+
3711+#: ../../uaclient/messages/__init__.py:1987
3712+msgid "Could not reach the SNAPD API"
3713+msgstr ""
3714+
3715+#: ../../uaclient/messages/__init__.py:1991
3716+msgid "Failed to install snapd on the system"
3717+msgstr ""
3718+
3719+#: ../../uaclient/messages/__init__.py:1996
3720+#, python-brace-format
3721+msgid "Unable to install Livepatch client: {error_msg}"
3722+msgstr ""
3723+
3724+#: ../../uaclient/messages/__init__.py:2001
3725+#, python-brace-format
3726+msgid "\"{proxy}\" is not working. Not setting as proxy."
3727+msgstr ""
3728+
3729+#: ../../uaclient/messages/__init__.py:2006
3730+#, python-brace-format
3731+msgid "\"{proxy}\" is not a valid url. Not setting as proxy."
3732+msgstr ""
3733+
3734+#: ../../uaclient/messages/__init__.py:2012
3735+msgid ""
3736+"To use an HTTPS proxy for HTTPS connections, please install pycurl with `apt "
3737+"install python3-pycurl`"
3738+msgstr ""
3739+
3740+#: ../../uaclient/messages/__init__.py:2018
3741+#, python-brace-format
3742+msgid "PycURL Error: {e}"
3743+msgstr ""
3744+
3745+#: ../../uaclient/messages/__init__.py:2022
3746+msgid "Proxy authentication failed"
3747+msgstr ""
3748+
3749+#: ../../uaclient/messages/__init__.py:2028
3750+msgid ""
3751+"Failed to connect to authentication server\n"
3752+"Check your Internet connection and try again."
3753+msgstr ""
3754+
3755+#: ../../uaclient/messages/__init__.py:2035
3756+#, python-brace-format
3757+msgid "Error connecting to {url}: {code} {body}"
3758+msgstr ""
3759+
3760+#: ../../uaclient/messages/__init__.py:2041
3761+#, python-brace-format
3762+msgid ""
3763+"Cannot {operation} unknown service '{invalid_service}'.\n"
3764+"{service_msg}"
3765+msgstr ""
3766+
3767+#: ../../uaclient/messages/__init__.py:2050
3768+#, python-brace-format
3769+msgid ""
3770+"This machine is already attached to '{account_name}'\n"
3771+"To use a different subscription first run: sudo pro detach."
3772+msgstr ""
3773+
3774+#: ../../uaclient/messages/__init__.py:2057
3775+#, python-brace-format
3776+msgid "Failed to attach machine. See {url}"
3777+msgstr ""
3778+
3779+#: ../../uaclient/messages/__init__.py:2064
3780+#, python-brace-format
3781+msgid ""
3782+"Error while reading {config_name}:\n"
3783+"{error}"
3784+msgstr ""
3785+
3786+#: ../../uaclient/messages/__init__.py:2069
3787+#, python-brace-format
3788+msgid "Invalid token. See {url}"
3789+msgstr ""
3790+
3791+#: ../../uaclient/messages/__init__.py:2075
3792+#, python-brace-format
3793+msgid ""
3794+"Attach denied:\n"
3795+"Contract \"{{contract_id}}\" expired on {{date}}\n"
3796+"Visit {url} to manage contract tokens."
3797+msgstr ""
3798+
3799+#: ../../uaclient/messages/__init__.py:2085
3800+#, python-brace-format
3801+msgid ""
3802+"Attach denied:\n"
3803+"Contract \"{{contract_id}}\" is not effective until {{date}}\n"
3804+"Visit {url} to manage contract tokens."
3805+msgstr ""
3806+
3807+#: ../../uaclient/messages/__init__.py:2095
3808+#, python-brace-format
3809+msgid ""
3810+"Attach denied:\n"
3811+"Contract \"{{contract_id}}\" has never been effective\n"
3812+"Visit {url} to manage contract tokens."
3813+msgstr ""
3814+
3815+#: ../../uaclient/messages/__init__.py:2105
3816+#, python-brace-format
3817+msgid "Expired token or contract. To obtain a new token visit: {url}"
3818+msgstr ""
3819+
3820+#: ../../uaclient/messages/__init__.py:2112
3821+msgid "The magic attach token is already activated."
3822+msgstr ""
3823+
3824+#: ../../uaclient/messages/__init__.py:2118
3825+msgid "The magic attach token is invalid, has expired or never existed"
3826+msgstr ""
3827+
3828+#: ../../uaclient/messages/__init__.py:2124
3829+msgid "Service unavailable, please try again later."
3830+msgstr ""
3831+
3832+#: ../../uaclient/messages/__init__.py:2129
3833+#, python-brace-format
3834+msgid "This attach flow does not support {param} with value: {value}"
3835+msgstr ""
3836+
3837+#: ../../uaclient/messages/__init__.py:2135
3838+#, python-brace-format
3839+msgid "Ubuntu Pro server provided no aptURL directive for {entitlement_name}"
3840+msgstr ""
3841+
3842+#: ../../uaclient/messages/__init__.py:2143
3843+#, python-brace-format
3844+msgid ""
3845+"This machine is not attached to an Ubuntu Pro subscription.\n"
3846+"See {url}"
3847+msgstr ""
3848+
3849+#: ../../uaclient/messages/__init__.py:2152
3850+#, python-brace-format
3851+msgid ""
3852+"To use '{{valid_service}}' you need an Ubuntu Pro subscription\n"
3853+"Personal and community subscriptions are available at no charge\n"
3854+"See {url}"
3855+msgstr ""
3856+
3857+#: ../../uaclient/messages/__init__.py:2168
3858+#, python-brace-format
3859+msgid "could not find entitlement named \"{entitlement_name}\""
3860+msgstr ""
3861+
3862+#: ../../uaclient/messages/__init__.py:2173
3863+msgid "failed to enable some services"
3864+msgstr ""
3865+
3866+#: ../../uaclient/messages/__init__.py:2179
3867+msgid "Failed to enable default services, check: sudo pro status"
3868+msgstr ""
3869+
3870+#: ../../uaclient/messages/__init__.py:2187
3871+msgid "Something went wrong during the attach process. Check the logs."
3872+msgstr ""
3873+
3874+#: ../../uaclient/messages/__init__.py:2195
3875+#, python-brace-format
3876+msgid "Ubuntu Pro server provided no aptKey directive for {entitlement_name}"
3877+msgstr ""
3878+
3879+#: ../../uaclient/messages/__init__.py:2202
3880+#, python-brace-format
3881+msgid "Ubuntu Pro server provided no suites directive for {entitlement_name}"
3882+msgstr ""
3883+
3884+#: ../../uaclient/messages/__init__.py:2209
3885+#, python-brace-format
3886+msgid ""
3887+"Cannot setup apt pin. Empty apt repo origin value for {entitlement_name}"
3888+msgstr ""
3889+
3890+#: ../../uaclient/messages/__init__.py:2218
3891+#, python-brace-format
3892+msgid "Could not determine contract delta service type {orig} {new}"
3893+msgstr ""
3894+
3895+#: ../../uaclient/messages/__init__.py:2222
3896+#, python-brace-format
3897+msgid ""
3898+"Error on Pro Image:\n"
3899+"{error_msg}"
3900+msgstr ""
3901+
3902+#: ../../uaclient/messages/__init__.py:2228
3903+#, python-brace-format
3904+msgid ""
3905+"An error occurred while talking the the cloud metadata service: {code} - "
3906+"{body}"
3907+msgstr ""
3908+
3909+#: ../../uaclient/messages/__init__.py:2235
3910+#, python-brace-format
3911+msgid ""
3912+"Failed to attach machine\n"
3913+"{{status_code}}: {{error_msg}}\n"
3914+"For more information, see {url}"
3915+msgstr ""
3916+
3917+#: ../../uaclient/messages/__init__.py:2245
3918+#, python-brace-format
3919+msgid "No valid AWS IMDS endpoint discovered at addresses: {addresses}"
3920+msgstr ""
3921+
3922+#: ../../uaclient/messages/__init__.py:2252
3923+msgid "Unable to determine cloud platform."
3924+msgstr ""
3925+
3926+#: ../../uaclient/messages/__init__.py:2260
3927+#, python-brace-format
3928+msgid ""
3929+"Auto-attach image support is not available on this image\n"
3930+"See: {url}"
3931+msgstr ""
3932+"Suporte para auto-attach não está disponível para esta imagem\n"
3933+"Veja {url}"
3934+
3935+#: ../../uaclient/messages/__init__.py:2269
3936+#, python-brace-format
3937+msgid ""
3938+"Auto-attach image support is not available on {{cloud_type}}\n"
3939+"See: {url}"
3940+msgstr ""
3941+"Suporte para auto-attach não está disponível para {{cloud_type}}\n"
3942+"Veja: {url}"
3943+
3944+#: ../../uaclient/messages/__init__.py:2277
3945+#, python-brace-format
3946+msgid "{file_name} is not valid {file_format}"
3947+msgstr ""
3948+
3949+#: ../../uaclient/messages/__init__.py:2283
3950+#, python-brace-format
3951+msgid ""
3952+"Could not parse /etc/os-release VERSION: {orig_ver} (modified to {mod_ver})"
3953+msgstr ""
3954+
3955+#: ../../uaclient/messages/__init__.py:2291
3956+#, python-brace-format
3957+msgid ""
3958+"Could not extract series information from /etc/os-release.\n"
3959+"The VERSION filed does not have version information: {version}\n"
3960+"and the VERSION_CODENAME information is not present"
3961+msgstr ""
3962+"Não foi possível extrair a série a partir de /etc/os-release.\n"
3963+"o campo VERSION não tem a informação de versão: {version}\n"
3964+"e o campo VERSION_CODENAME não está presente"
3965+
3966+#: ../../uaclient/messages/__init__.py:2301
3967+#, python-brace-format
3968+msgid ""
3969+"There is a corrupted lock file in the system. To continue, please remove it\n"
3970+"from the system by running:\n"
3971+"\n"
3972+"$ sudo rm {lock_file_path}"
3973+msgstr ""
3974+"Existe um arquivo lock corrompido no sistema. Para contunuar, por favor "
3975+"remova-o\n"
3976+"do sistema ao executar:\n"
3977+"\n"
3978+"$ sudo rm {lock_file_path}"
3979+
3980+#: ../../uaclient/messages/__init__.py:2310
3981+#, python-brace-format
3982+msgid "{source} returned invalid json: {out}"
3983+msgstr "{source} retornou um json inválido: {out}"
3984+
3985+#: ../../uaclient/messages/__init__.py:2316
3986+#, python-brace-format
3987+msgid ""
3988+"Invalid value for {path_to_value} in /etc/ubuntu-advantage/uaclient.conf. "
3989+"Expected {expected_value}, found {value}."
3990+msgstr ""
3991+"Valor inválido para {path_to_value} em /etc/ubuntu-advantage/uaclient.conf."
3992+"Esperava {expected_value}, mas {value} foi encontrado."
3993+
3994+#: ../../uaclient/messages/__init__.py:2325
3995+#, python-brace-format
3996+msgid ""
3997+"Cannot set {key} to {value}: <value> for interval must be a positive integer."
3998+msgstr ""
3999+"Não foi possível associar {key} a {value}: <value> precisa ser um inteiro "
4000+"positivo."
4001+
4002+#: ../../uaclient/messages/__init__.py:2332
4003+#, python-brace-format
4004+msgid "Invalid url in config. {key}: {value}"
4005+msgstr "url inválida no arquivo de configuração. {key}: {value}"
4006+
4007+#: ../../uaclient/messages/__init__.py:2337
4008+#, python-brace-format
4009+msgid "Could not find yaml file: {filepath}"
4010+msgstr "Não foi possível encontrar o arquivo yaml: {filepath}"
4011+
4012+#: ../../uaclient/messages/__init__.py:2343
4013+msgid ""
4014+"Error: Setting global apt proxy and pro scoped apt proxy\n"
4015+"at the same time is unsupported.\n"
4016+"Cancelling config process operation.\n"
4017+msgstr ""
4018+"Erro: Configurar a proxy de escopo global do apt junto com a proxy de "
4019+"escopo\n"
4020+"pro de apt ao mesmo tempo não é suportado.\n"
4021+"Cancelando o processo de configuração.\n"
4022+
4023+#: ../../uaclient/messages/__init__.py:2353
4024+msgid "Can't load the distro-info database."
4025+msgstr "Não foi possível carregar o banco de dados do distro-info."
4026+
4027+#: ../../uaclient/messages/__init__.py:2358
4028+#, python-brace-format
4029+msgid "Can't find series {series} in the distro-info database."
4030+msgstr ""
4031+"Não foi possível encontrar a série {series} na banco de dados do distro-info."
4032+
4033+#: ../../uaclient/messages/__init__.py:2363
4034+#, python-brace-format
4035+msgid "Error: Cannot use {option1} together with {option2}."
4036+msgstr "Erro: não é possível usar {option1} junto com {option2}"
4037+
4038+#: ../../uaclient/messages/__init__.py:2367
4039+#, python-brace-format
4040+msgid "No help available for '{name}'"
4041+msgstr "Ajuda não disponível para '{name}'"
4042+
4043+#: ../../uaclient/messages/__init__.py:2373
4044+#, python-brace-format
4045+msgid ""
4046+"Error: issue \"{issue}\" is not recognized.\n"
4047+"Usage: \"pro fix CVE-yyyy-nnnn\" or \"pro fix USN-nnnn\""
4048+msgstr ""
4049+"Erro: problema de segurnça \"{issue}\" não foi reconhecido.\n"
4050+"Use: \"pro fix CVE-yyyy-nnnn\" ou \"pro fix USN-nnnn\""
4051+
4052+#: ../../uaclient/messages/__init__.py:2379
4053+#, python-brace-format
4054+msgid "{arg} must be one of: {choices}"
4055+msgstr "{arg} precisa ser um de: {choices}"
4056+
4057+#: ../../uaclient/messages/__init__.py:2384
4058+#, python-brace-format
4059+msgid "Expected {expected} but found: {actual}"
4060+msgstr "Esperava {expected} mas encontrou: {actual}"
4061+
4062+#: ../../uaclient/messages/__init__.py:2388
4063+msgid "Unable to process uaclient.conf"
4064+msgstr "Falha ao processar uaclient.conf"
4065+
4066+#: ../../uaclient/messages/__init__.py:2393
4067+msgid "Unable to refresh your subscription"
4068+msgstr "Falha ao atualizar sua assinatura"
4069+
4070+#: ../../uaclient/messages/__init__.py:2398
4071+msgid "Unable to update Ubuntu Pro related APT and MOTD messages."
4072+msgstr ""
4073+"Falha ao atualizar as mensagens de APT e MOTD relacioandas ao Ubuntu Pro"
4074+
4075+#: ../../uaclient/messages/__init__.py:2404
4076+msgid "json formatted response requires --assume-yes flag."
4077+msgstr "resposta formatada em json necessita do paramêtro --assume-yes"
4078+
4079+#: ../../uaclient/messages/__init__.py:2412
4080+msgid ""
4081+"Do not pass the TOKEN arg if you are using --attach-config.\n"
4082+"Include the token in the attach-config file instead.\n"
4083+" "
4084+msgstr ""
4085+"Não insira o parâmetro TOKEN se você está usando --attach-config.\n"
4086+"Ao invés disso, inclua o token no arquivo de attach-config.\n"
4087+" "
4088+
4089+#: ../../uaclient/messages/__init__.py:2421
4090+msgid "Cannot provide both --args and --data at the same time"
4091+msgstr "Não é possível usar --args e --data ao mesmo tempo"
4092+
4093+#: ../../uaclient/messages/__init__.py:2427
4094+#, python-brace-format
4095+msgid "Unable to perform: {lock_request}.\n"
4096+msgstr "Falha ao executar: {lock_request}.\n"
4097+
4098+#: ../../uaclient/messages/__init__.py:2436
4099+msgid "This command must be run as root (try using sudo)."
4100+msgstr "Esse comando precisa ser executado como root (tente usando sudo)."
4101+
4102+#: ../../uaclient/messages/__init__.py:2441
4103+#, python-brace-format
4104+msgid "Metadata for {issue} is invalid. Error: {error_msg}."
4105+msgstr "Metadados para {issue} não são válidos. Erro: {error_msg}."
4106+
4107+#: ../../uaclient/messages/__init__.py:2448
4108+#, python-brace-format
4109+msgid "Error: {issue_id} not found."
4110+msgstr "Erro: {issue_id} não encontrada."
4111+
4112+#: ../../uaclient/messages/__init__.py:2452
4113+#, python-brace-format
4114+msgid "GPG key '{keyfile}' not found."
4115+msgstr "chave GPG '{keyfile}' não foi encontrada"
4116+
4117+#: ../../uaclient/messages/__init__.py:2457
4118+#, python-brace-format
4119+msgid "'{endpoint}' is not a valid endpoint"
4120+msgstr "'{endpoint}' não é um endpoint válido"
4121+
4122+#: ../../uaclient/messages/__init__.py:2462
4123+#, python-brace-format
4124+msgid "Missing argument '{arg}' for endpoint {endpoint}"
4125+msgstr "'{arg}' está faltando para endpoint {endpoint}"
4126+
4127+#: ../../uaclient/messages/__init__.py:2467
4128+#, python-brace-format
4129+msgid "{endpoint} accepts no arguments"
4130+msgstr "{endpoint} não aceita paramêtros"
4131+
4132+#: ../../uaclient/messages/__init__.py:2472
4133+#, python-brace-format
4134+msgid ""
4135+"Error parsing API json data parameter:\n"
4136+"{data}"
4137+msgstr ""
4138+"Error ao analisar paramêtro data para API json:\n"
4139+"{data}"
4140+
4141+#: ../../uaclient/messages/__init__.py:2477
4142+#, python-brace-format
4143+msgid "'{arg}' is not formatted as 'key=value'"
4144+msgstr "'{arg}' não está formatado como 'chave=valor'"
4145+
4146+#: ../../uaclient/messages/__init__.py:2482
4147+#, python-brace-format
4148+msgid "Unable to determine version: {error_msg}"
4149+msgstr "Não foi possível determinar a versão: {error_msg}"
4150+
4151+#: ../../uaclient/messages/__init__.py:2487
4152+msgid "features.disable_auto_attach set in config"
4153+msgstr "features.disable_auto_attach definida na configuração"
4154+
4155+#: ../../uaclient/messages/__init__.py:2492
4156+#, python-brace-format
4157+msgid "Unable to determine unattended-upgrades status: {error_msg}"
4158+msgstr ""
4159+"Não foi possível determinar o status do unattended-upgrades: {error_msg}"
4160+
4161+#: ../../uaclient/messages/__init__.py:2498
4162+#, python-brace-format
4163+msgid "Expected value with type {expected_type} but got type: {got_type}"
4164+msgstr "Esperava valor com tipo {expected_type}, mas recebeu tipo {got_type}"
4165+
4166+#: ../../uaclient/messages/__init__.py:2504
4167+#, python-brace-format
4168+msgid ""
4169+"Got value with incorrect type at index {index}:\n"
4170+"{nested_msg}"
4171+msgstr ""
4172+"Valor com tipo incorreto na posição {index}:\n"
4173+"{nested_msg}"
4174+
4175+#: ../../uaclient/messages/__init__.py:2510
4176+#, python-brace-format
4177+msgid ""
4178+"Got value with incorrect type for field \"{key}\":\n"
4179+"{nested_msg}"
4180+msgstr ""
4181+"Valor com tipo incorreto para o campo \"{key}\":\n"
4182+"{nested_msg}"
4183+
4184+#: ../../uaclient/messages/__init__.py:2517
4185+#, python-brace-format
4186+msgid "Value provided was not found in {enum_class}'s allowed: value: {values}"
4187+msgstr ""
4188+"Valor fornecido não está presente nos valores permitidos de {enum_class}: "
4189+"{values}"
4190diff --git a/debian/po/templates.pot b/debian/po/templates.pot
4191deleted file mode 100644
4192index ffd2763..0000000
4193--- a/debian/po/templates.pot
4194+++ /dev/null
4195@@ -1,36 +0,0 @@
4196-# SOME DESCRIPTIVE TITLE.
4197-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
4198-# This file is distributed under the same license as the ubuntu-advantage-tools package.
4199-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4200-#
4201-#, fuzzy
4202-msgid ""
4203-msgstr ""
4204-"Project-Id-Version: ubuntu-advantage-tools\n"
4205-"Report-Msgid-Bugs-To: ubuntu-advantage-tools@packages.debian.org\n"
4206-"POT-Creation-Date: 2021-02-26 16:29+0100\n"
4207-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
4208-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
4209-"Language-Team: LANGUAGE <LL@li.org>\n"
4210-"Language: \n"
4211-"MIME-Version: 1.0\n"
4212-"Content-Type: text/plain; charset=CHARSET\n"
4213-"Content-Transfer-Encoding: 8bit\n"
4214-
4215-#. Type: note
4216-#. Description
4217-#: ../ubuntu-advantage-tools.templates:1001
4218-msgid "Ubuntu Pro support now requires ubuntu-advantage-pro"
4219-msgstr ""
4220-
4221-#. Type: note
4222-#. Description
4223-#: ../ubuntu-advantage-tools.templates:1001
4224-msgid "To install run the following:"
4225-msgstr ""
4226-
4227-#. Type: note
4228-#. Description
4229-#: ../ubuntu-advantage-tools.templates:1001
4230-msgid "sudo apt install ubuntu-advantage-pro"
4231-msgstr ""
4232diff --git a/debian/po/ubuntu-pro.pot b/debian/po/ubuntu-pro.pot
4233new file mode 100644
4234index 0000000..142f69b
4235--- /dev/null
4236+++ b/debian/po/ubuntu-pro.pot
4237@@ -0,0 +1,3056 @@
4238+# SOME DESCRIPTIVE TITLE.
4239+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
4240+# This file is distributed under the same license as the PACKAGE package.
4241+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
4242+#
4243+#, fuzzy
4244+msgid ""
4245+msgstr ""
4246+"Project-Id-Version: PACKAGE VERSION\n"
4247+"Report-Msgid-Bugs-To: \n"
4248+"POT-Creation-Date: 2023-10-27 11:01-0400\n"
4249+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
4250+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
4251+"Language-Team: LANGUAGE <LL@li.org>\n"
4252+"Language: \n"
4253+"MIME-Version: 1.0\n"
4254+"Content-Type: text/plain; charset=UTF-8\n"
4255+"Content-Transfer-Encoding: 8bit\n"
4256+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
4257+
4258+#: ../../apt-hook/json-hook.cc:159
4259+msgid "1 standard LTS security update"
4260+msgstr ""
4261+
4262+#: ../../apt-hook/json-hook.cc:164
4263+#, c-format
4264+msgid "%lu standard LTS security updates"
4265+msgstr ""
4266+
4267+#: ../../apt-hook/json-hook.cc:171
4268+msgid "1 esm-infra security update"
4269+msgstr ""
4270+
4271+#: ../../apt-hook/json-hook.cc:173
4272+msgid "1 standard LTS security update and 1 esm-infra security update"
4273+msgstr ""
4274+
4275+#: ../../apt-hook/json-hook.cc:178
4276+#, c-format
4277+msgid "%lu standard LTS security updates and 1 esm-infra security update"
4278+msgstr ""
4279+
4280+#: ../../apt-hook/json-hook.cc:188
4281+#, c-format
4282+msgid "%lu esm-infra security updates"
4283+msgstr ""
4284+
4285+#: ../../apt-hook/json-hook.cc:196
4286+#, c-format
4287+msgid "1 standard LTS security update and %lu esm-infra security updates"
4288+msgstr ""
4289+
4290+#: ../../apt-hook/json-hook.cc:204
4291+#, c-format
4292+msgid "%lu standard LTS security updates and %lu esm-infra security updates"
4293+msgstr ""
4294+
4295+#: ../../apt-hook/json-hook.cc:214
4296+msgid "1 esm-apps security update"
4297+msgstr ""
4298+
4299+#: ../../apt-hook/json-hook.cc:216
4300+msgid "1 standard LTS security update and 1 esm-apps security update"
4301+msgstr ""
4302+
4303+#: ../../apt-hook/json-hook.cc:221
4304+#, c-format
4305+msgid "%lu standard LTS security updates and 1 esm-apps security update"
4306+msgstr ""
4307+
4308+#: ../../apt-hook/json-hook.cc:228
4309+msgid "1 esm-infra security update and 1 esm-apps security update"
4310+msgstr ""
4311+
4312+#: ../../apt-hook/json-hook.cc:230
4313+msgid ""
4314+"1 standard LTS security update, 1 esm-infra security update and 1 esm-apps "
4315+"security update"
4316+msgstr ""
4317+
4318+#: ../../apt-hook/json-hook.cc:235
4319+#, c-format
4320+msgid ""
4321+"%lu standard LTS security updates, 1 esm-infra security update and 1 esm-"
4322+"apps security update"
4323+msgstr ""
4324+
4325+#: ../../apt-hook/json-hook.cc:245
4326+#, c-format
4327+msgid "%lu esm-infra security updates and 1 esm-apps security update"
4328+msgstr ""
4329+
4330+#: ../../apt-hook/json-hook.cc:253
4331+#, c-format
4332+msgid ""
4333+"1 standard LTS security update, %lu esm-infra security updates and 1 esm-"
4334+"apps security update"
4335+msgstr ""
4336+
4337+#: ../../apt-hook/json-hook.cc:261
4338+#, c-format
4339+msgid ""
4340+"%lu standard LTS security updates, %lu esm-infra security updates and 1 esm-"
4341+"apps security update"
4342+msgstr ""
4343+
4344+#: ../../apt-hook/json-hook.cc:274
4345+#, c-format
4346+msgid "%lu esm-apps security updates"
4347+msgstr ""
4348+
4349+#: ../../apt-hook/json-hook.cc:282
4350+#, c-format
4351+msgid "1 standard LTS security update and %lu esm-apps security updates"
4352+msgstr ""
4353+
4354+#: ../../apt-hook/json-hook.cc:290
4355+#, c-format
4356+msgid "%lu standard LTS security updates and %lu esm-apps security updates"
4357+msgstr ""
4358+
4359+#: ../../apt-hook/json-hook.cc:301
4360+#, c-format
4361+msgid "1 esm-infra security update and %lu esm-apps security updates"
4362+msgstr ""
4363+
4364+#: ../../apt-hook/json-hook.cc:309
4365+#, c-format
4366+msgid ""
4367+"1 standard LTS security update, 1 esm-infra security update and %lu esm-apps "
4368+"security updates"
4369+msgstr ""
4370+
4371+#: ../../apt-hook/json-hook.cc:317
4372+#, c-format
4373+msgid ""
4374+"%lu standard LTS security updates, 1 esm-infra security update and %lu esm-"
4375+"apps security updates"
4376+msgstr ""
4377+
4378+#: ../../apt-hook/json-hook.cc:328
4379+#, c-format
4380+msgid "%lu esm-infra security updates and %lu esm-apps security updates"
4381+msgstr ""
4382+
4383+#: ../../apt-hook/json-hook.cc:337
4384+#, c-format
4385+msgid ""
4386+"1 standard LTS security update, %lu esm-infra security updates and %lu esm-"
4387+"apps security updates"
4388+msgstr ""
4389+
4390+#: ../../apt-hook/json-hook.cc:346
4391+#, c-format
4392+msgid ""
4393+"%lu standard LTS security updates, %lu esm-infra security updates and %lu "
4394+"esm-apps security updates"
4395+msgstr ""
4396+
4397+#: ../../apt-hook/json-hook.cc:403
4398+#, c-format
4399+msgid "Learn more about Ubuntu Pro for 16.04 on Azure at %s"
4400+msgstr ""
4401+
4402+#: ../../apt-hook/json-hook.cc:412
4403+#, c-format
4404+msgid "Learn more about Ubuntu Pro for 16.04 at %s"
4405+msgstr ""
4406+
4407+#: ../../apt-hook/json-hook.cc:423
4408+#, c-format
4409+msgid "Learn more about Ubuntu Pro for 18.04 on Azure at %s"
4410+msgstr ""
4411+
4412+#: ../../apt-hook/json-hook.cc:432
4413+#, c-format
4414+msgid "Learn more about Ubuntu Pro for 18.04 at %s"
4415+msgstr ""
4416+
4417+#: ../../apt-hook/json-hook.cc:443
4418+#, c-format
4419+msgid "Learn more about Ubuntu Pro on Azure at %s"
4420+msgstr ""
4421+
4422+#: ../../apt-hook/json-hook.cc:452
4423+#, c-format
4424+msgid "Learn more about Ubuntu Pro on AWS at %s"
4425+msgstr ""
4426+
4427+#: ../../apt-hook/json-hook.cc:461
4428+#, c-format
4429+msgid "Learn more about Ubuntu Pro on GCP at %s"
4430+msgstr ""
4431+
4432+#: ../../apt-hook/json-hook.cc:472
4433+#, c-format
4434+msgid "Learn more about Ubuntu Pro at %s"
4435+msgstr ""
4436+
4437+#: ../../apt-hook/json-hook.cc:485
4438+#, c-format
4439+msgid "Get another security update through Ubuntu Pro with 'esm-apps' enabled:"
4440+msgid_plural ""
4441+"Get more security updates through Ubuntu Pro with 'esm-apps' enabled:"
4442+msgstr[0] ""
4443+msgstr[1] ""
4444+
4445+#: ../../apt-hook/json-hook.cc:494
4446+#, c-format
4447+msgid ""
4448+"The following security update requires Ubuntu Pro with 'esm-infra' enabled:"
4449+msgid_plural ""
4450+"The following security updates require Ubuntu Pro with 'esm-infra' enabled:"
4451+msgstr[0] ""
4452+msgstr[1] ""
4453+
4454+#. Description
4455+#: ../ubuntu-advantage-tools.templates:3
4456+msgid "Ubuntu Pro support now requires ubuntu-advantage-pro"
4457+msgstr ""
4458+
4459+#. Description
4460+#: ../ubuntu-advantage-tools.templates:3
4461+msgid "To install run the following:"
4462+msgstr ""
4463+
4464+#. Description
4465+#: ../ubuntu-advantage-tools.templates:3
4466+msgid "sudo apt install ubuntu-advantage-pro"
4467+msgstr ""
4468+
4469+#: ../../uaclient/messages/__init__.py:43
4470+msgid "yes"
4471+msgstr ""
4472+
4473+#: ../../uaclient/messages/__init__.py:44
4474+msgid "no"
4475+msgstr ""
4476+
4477+#: ../../uaclient/messages/__init__.py:50
4478+msgid "Are you sure? (y/N) "
4479+msgstr ""
4480+
4481+#: ../../uaclient/messages/__init__.py:51
4482+msgid "Do you want to proceed? (y/N) "
4483+msgstr ""
4484+
4485+#: ../../uaclient/messages/__init__.py:53
4486+msgid "Interrupt received; exiting."
4487+msgstr ""
4488+
4489+#: ../../uaclient/messages/__init__.py:55
4490+#, python-brace-format
4491+msgid "Operation in progress: {lock_holder} (pid:{pid})"
4492+msgstr ""
4493+
4494+#: ../../uaclient/messages/__init__.py:58
4495+msgid "Successfully refreshed your subscription."
4496+msgstr ""
4497+
4498+#: ../../uaclient/messages/__init__.py:61
4499+msgid "Successfully processed your pro configuration."
4500+msgstr ""
4501+
4502+#: ../../uaclient/messages/__init__.py:64
4503+msgid "Successfully updated Ubuntu Pro related APT and MOTD messages."
4504+msgstr ""
4505+
4506+#: ../../uaclient/messages/__init__.py:68
4507+msgid "Failed running reboot_cmds script. See: /var/log/ubuntu-advantage.log"
4508+msgstr ""
4509+
4510+#: ../../uaclient/messages/__init__.py:72
4511+msgid ""
4512+"APT lock is held. Ubuntu Pro configuration will wait until it is released"
4513+msgstr ""
4514+
4515+#: ../../uaclient/messages/__init__.py:75
4516+#, python-brace-format
4517+msgid "Could not find past release for {release}"
4518+msgstr ""
4519+
4520+#: ../../uaclient/messages/__init__.py:78
4521+msgid "Starting upgrade of Ubuntu Pro service configuration"
4522+msgstr ""
4523+
4524+#: ../../uaclient/messages/__init__.py:81
4525+msgid "Finished upgrade of Ubuntu Pro service configuration"
4526+msgstr ""
4527+
4528+#: ../../uaclient/messages/__init__.py:85
4529+msgid ""
4530+"Couldn't import the YAML module.\n"
4531+"Make sure the 'python3-yaml' package is installed correctly\n"
4532+"and /usr/lib/python3/dist-packages is in your PYTHONPATH."
4533+msgstr ""
4534+
4535+#: ../../uaclient/messages/__init__.py:91
4536+#, python-brace-format
4537+msgid "Error while trying to parse a yaml file using 'yaml' from {path}"
4538+msgstr ""
4539+
4540+#: ../../uaclient/messages/__init__.py:95
4541+msgid ""
4542+"snapd does not have a wait command.\n"
4543+"Enabling Livepatch can fail under this scenario.\n"
4544+"Please, upgrade snapd if Livepatch enable fails and try again."
4545+msgstr ""
4546+
4547+#: ../../uaclient/messages/__init__.py:104
4548+#, python-brace-format
4549+msgid ""
4550+" A new version is available: {version}\n"
4551+"Please run:\n"
4552+" sudo apt-get install ubuntu-advantage-tools\n"
4553+"to get the latest bug fixes and new features."
4554+msgstr ""
4555+
4556+#. ##############################################################################
4557+#. GENERIC SYSTEM OPERATIONS #
4558+#. ##############################################################################
4559+#: ../../uaclient/messages/__init__.py:118
4560+#, python-brace-format
4561+msgid "Executing `{command}`"
4562+msgstr ""
4563+
4564+#: ../../uaclient/messages/__init__.py:119
4565+#, python-brace-format
4566+msgid "Executing `{command}` failed."
4567+msgstr ""
4568+
4569+#: ../../uaclient/messages/__init__.py:120
4570+#, python-brace-format
4571+msgid "Invalid command specified '{cmd}'."
4572+msgstr ""
4573+
4574+#: ../../uaclient/messages/__init__.py:122
4575+#, python-brace-format
4576+msgid "Failed running command '{cmd}' [exit({exit_code})]. Message: {stderr}"
4577+msgstr ""
4578+
4579+#: ../../uaclient/messages/__init__.py:125
4580+#, python-brace-format
4581+msgid "Installing {packages}"
4582+msgstr ""
4583+
4584+#: ../../uaclient/messages/__init__.py:126
4585+#, python-brace-format
4586+msgid "Installing {title} packages"
4587+msgstr ""
4588+
4589+#: ../../uaclient/messages/__init__.py:127
4590+msgid "Installing required snaps"
4591+msgstr ""
4592+
4593+#: ../../uaclient/messages/__init__.py:129
4594+#, python-brace-format
4595+msgid "Installing required snap: {snap}"
4596+msgstr ""
4597+
4598+#: ../../uaclient/messages/__init__.py:132
4599+#, python-brace-format
4600+msgid "Skipping installing packages: {packages}"
4601+msgstr ""
4602+
4603+#: ../../uaclient/messages/__init__.py:134
4604+#, python-brace-format
4605+msgid "Uninstalling {packages}"
4606+msgstr ""
4607+
4608+#: ../../uaclient/messages/__init__.py:136
4609+#, python-brace-format
4610+msgid "Failure when uninstalling {packages}"
4611+msgstr ""
4612+
4613+#: ../../uaclient/messages/__init__.py:139
4614+#, python-brace-format
4615+msgid "Cannot install package {package} version {version}"
4616+msgstr ""
4617+
4618+#: ../../uaclient/messages/__init__.py:142
4619+msgid "Failure checking APT policy."
4620+msgstr ""
4621+
4622+#: ../../uaclient/messages/__init__.py:143
4623+msgid "Updating package lists"
4624+msgstr ""
4625+
4626+#: ../../uaclient/messages/__init__.py:144
4627+#, python-brace-format
4628+msgid "Updating {name} package lists"
4629+msgstr ""
4630+
4631+#: ../../uaclient/messages/__init__.py:145
4632+msgid "APT update failed."
4633+msgstr ""
4634+
4635+#: ../../uaclient/messages/__init__.py:146
4636+msgid "APT install failed."
4637+msgstr ""
4638+
4639+#: ../../uaclient/messages/__init__.py:148
4640+#, python-brace-format
4641+msgid "Backing up {original} as {backup}"
4642+msgstr ""
4643+
4644+#: ../../uaclient/messages/__init__.py:149
4645+msgid "The following package(s) will be REMOVED:"
4646+msgstr ""
4647+
4648+#: ../../uaclient/messages/__init__.py:151
4649+msgid "The following package(s) will be reinstalled from the archive:"
4650+msgstr ""
4651+
4652+#: ../../uaclient/messages/__init__.py:162
4653+#, python-brace-format
4654+msgid ""
4655+"*Your Ubuntu Pro subscription has EXPIRED*\n"
4656+"{{pkg_num}} additional security update(s) require Ubuntu Pro with "
4657+"'{{service}}' enabled.\n"
4658+"Renew your service at {url}"
4659+msgid_plural ""
4660+"*Your Ubuntu Pro subscription has EXPIRED*\n"
4661+"{{pkg_num}} additional security update(s) require Ubuntu Pro with "
4662+"'{{service}}' enabled.\n"
4663+"Renew your service at {url}"
4664+msgstr[0] ""
4665+msgstr[1] ""
4666+
4667+#: ../../uaclient/messages/__init__.py:175
4668+#, python-brace-format
4669+msgid ""
4670+"CAUTION: Your Ubuntu Pro subscription will expire in {{remaining_days}} "
4671+"day.\n"
4672+"Renew your subscription at {url} to ensure\n"
4673+"continued security coverage for your applications."
4674+msgid_plural ""
4675+"CAUTION: Your Ubuntu Pro subscription will expire in {{remaining_days}} "
4676+"days.\n"
4677+"Renew your subscription at {url} to ensure\n"
4678+"continued security coverage for your applications."
4679+msgstr[0] ""
4680+msgstr[1] ""
4681+
4682+#: ../../uaclient/messages/__init__.py:188
4683+#, python-brace-format
4684+msgid ""
4685+"CAUTION: Your Ubuntu Pro subscription expired on {{expired_date}}.\n"
4686+"Renew your subscription at {url} to ensure\n"
4687+"continued security coverage for your applications.\n"
4688+"Your grace period will expire in {{remaining_days}} day."
4689+msgid_plural ""
4690+"CAUTION: Your Ubuntu Pro subscription expired on {{expired_date}}.\n"
4691+"Renew your subscription at {url} to ensure\n"
4692+"continued security coverage for your applications.\n"
4693+"Your grace period will expire in {{remaining_days}} days."
4694+msgstr[0] ""
4695+msgstr[1] ""
4696+
4697+#: ../../uaclient/messages/__init__.py:202
4698+#, python-brace-format
4699+msgid ""
4700+"*Your Ubuntu Pro subscription has EXPIRED*\n"
4701+"Renew your service at {url}"
4702+msgstr ""
4703+
4704+#. ##############################################################################
4705+#. CONFIGURATION #
4706+#. ##############################################################################
4707+#: ../../uaclient/messages/__init__.py:213
4708+#, python-brace-format
4709+msgid "Setting {service} proxy"
4710+msgstr ""
4711+
4712+#: ../../uaclient/messages/__init__.py:215
4713+#, python-brace-format
4714+msgid ""
4715+"No proxy set in config; however, proxy is configured for: {{services}}.\n"
4716+"See {url} for more information on pro proxy configuration.\n"
4717+msgstr ""
4718+
4719+#: ../../uaclient/messages/__init__.py:220
4720+#, python-brace-format
4721+msgid "Setting {scope} APT proxy"
4722+msgstr ""
4723+
4724+#: ../../uaclient/messages/__init__.py:222
4725+msgid ""
4726+"\n"
4727+"Error: Setting global apt proxy and pro scoped apt proxy at the same time is "
4728+"unsupported. No apt proxy is set."
4729+msgstr ""
4730+
4731+#: ../../uaclient/messages/__init__.py:226
4732+#, python-brace-format
4733+msgid "Warning: {old} has been renamed to {new}."
4734+msgstr ""
4735+
4736+#: ../../uaclient/messages/__init__.py:230
4737+#, python-brace-format
4738+msgid ""
4739+"Warning: Setting the {current_proxy} proxy will overwrite the "
4740+"{previous_proxy}\n"
4741+"proxy previously set via `pro config`.\n"
4742+msgstr ""
4743+
4744+#: ../../uaclient/messages/__init__.py:236
4745+#, python-brace-format
4746+msgid ""
4747+"Using deprecated \"{old}\" config field.\n"
4748+"Please migrate to using \"{new}\"\n"
4749+msgstr ""
4750+
4751+#: ../../uaclient/messages/__init__.py:243
4752+msgid "Migrating /etc/ubuntu-advantage/uaclient.conf"
4753+msgstr ""
4754+
4755+#: ../../uaclient/messages/__init__.py:246
4756+msgid ""
4757+"Warning: Failed to load /etc/ubuntu-advantage/uaclient.conf.preinst-backup\n"
4758+" No automatic migration will occur.\n"
4759+" You may need to use \"pro config set\" to re-set your settings."
4760+msgstr ""
4761+
4762+#: ../../uaclient/messages/__init__.py:253
4763+msgid ""
4764+"Warning: Failed to migrate user_config from /etc/ubuntu-advantage/uaclient."
4765+"conf\n"
4766+" Please run the following to keep your custom settings:"
4767+msgstr ""
4768+
4769+#: ../../uaclient/messages/__init__.py:259
4770+msgid ""
4771+"Warning: Failed to migrate /etc/ubuntu-advantage/uaclient.conf\n"
4772+" Please add following to uaclient.conf to keep your config:"
4773+msgstr ""
4774+
4775+#: ../../uaclient/messages/__init__.py:272
4776+msgid ""
4777+"Currently attempting to automatically attach this machine to Ubuntu Pro "
4778+"services"
4779+msgstr ""
4780+
4781+#: ../../uaclient/messages/__init__.py:276
4782+#, python-brace-format
4783+msgid "This machine is now attached to '{contract_name}'\n"
4784+msgstr ""
4785+
4786+#: ../../uaclient/messages/__init__.py:281
4787+msgid "This machine is now successfully attached'\n"
4788+msgstr ""
4789+
4790+#: ../../uaclient/messages/__init__.py:285
4791+#, python-brace-format
4792+msgid "Enabling default service {name}"
4793+msgstr ""
4794+
4795+#: ../../uaclient/messages/__init__.py:287
4796+#, python-brace-format
4797+msgid "Service {name} is recommended by default. Run: sudo pro enable {name}"
4798+msgstr ""
4799+
4800+#: ../../uaclient/messages/__init__.py:290
4801+msgid "Initiating attach operation..."
4802+msgstr ""
4803+
4804+#: ../../uaclient/messages/__init__.py:291
4805+msgid "Failed to perform attach..."
4806+msgstr ""
4807+
4808+#: ../../uaclient/messages/__init__.py:293
4809+#, python-brace-format
4810+msgid ""
4811+"Please sign in to your Ubuntu Pro account at this link:\n"
4812+"{url}\n"
4813+"And provide the following code: {bold}{{user_code}}{end_bold}"
4814+msgstr ""
4815+
4816+#: ../../uaclient/messages/__init__.py:302
4817+msgid "Attaching the machine..."
4818+msgstr ""
4819+
4820+#: ../../uaclient/messages/__init__.py:307
4821+msgid "Detach will disable the following service:"
4822+msgid_plural "Detach will disable the following services:"
4823+msgstr[0] ""
4824+msgstr[1] ""
4825+
4826+#: ../../uaclient/messages/__init__.py:312
4827+msgid "This machine is now detached."
4828+msgstr ""
4829+
4830+#: ../../uaclient/messages/__init__.py:316
4831+msgid "One moment, checking your subscription first"
4832+msgstr ""
4833+
4834+#: ../../uaclient/messages/__init__.py:318
4835+#, python-brace-format
4836+msgid "{title} enabled"
4837+msgstr ""
4838+
4839+#: ../../uaclient/messages/__init__.py:319
4840+#, python-brace-format
4841+msgid "{title} access enabled"
4842+msgstr ""
4843+
4844+#: ../../uaclient/messages/__init__.py:320
4845+#, python-brace-format
4846+msgid "Could not enable {title}."
4847+msgstr ""
4848+
4849+#: ../../uaclient/messages/__init__.py:322
4850+#, python-brace-format
4851+msgid ""
4852+"{service_being_enabled} cannot be enabled with {incompatible_service}.\n"
4853+"Disable {incompatible_service} and proceed to enable "
4854+"{service_being_enabled}? (y/N) "
4855+msgstr ""
4856+
4857+#: ../../uaclient/messages/__init__.py:328
4858+#, python-brace-format
4859+msgid "Disabling incompatible service: {service}"
4860+msgstr ""
4861+
4862+#: ../../uaclient/messages/__init__.py:331
4863+#, python-brace-format
4864+msgid ""
4865+"{service_being_enabled} cannot be enabled with {required_service} disabled.\n"
4866+"Enable {required_service} and proceed to enable {service_being_enabled}? (y/"
4867+"N) "
4868+msgstr ""
4869+
4870+#: ../../uaclient/messages/__init__.py:336
4871+#, python-brace-format
4872+msgid "Enabling required service: {service}"
4873+msgstr ""
4874+
4875+#: ../../uaclient/messages/__init__.py:338
4876+#, python-brace-format
4877+msgid "A reboot is required to complete {operation}."
4878+msgstr ""
4879+
4880+#. DISABLE
4881+#: ../../uaclient/messages/__init__.py:343
4882+#, python-brace-format
4883+msgid "Could not disable {title}."
4884+msgstr ""
4885+
4886+#: ../../uaclient/messages/__init__.py:345
4887+#, python-brace-format
4888+msgid ""
4889+"{dependent_service} depends on {service_being_disabled}.\n"
4890+"Disable {dependent_service} and proceed to disable {service_being_disabled}? "
4891+"(y/N) "
4892+msgstr ""
4893+
4894+#: ../../uaclient/messages/__init__.py:351
4895+#, python-brace-format
4896+msgid "Disabling dependent service: {required_service}"
4897+msgstr ""
4898+
4899+#: ../../uaclient/messages/__init__.py:354
4900+#, python-brace-format
4901+msgid "Removing apt source file: {filename}"
4902+msgstr ""
4903+
4904+#: ../../uaclient/messages/__init__.py:356
4905+#, python-brace-format
4906+msgid "Removing apt preferences file: {filename}"
4907+msgstr ""
4908+
4909+#: ../../uaclient/messages/__init__.py:361
4910+msgid "(The --purge flag is still experimental - use with caution)"
4911+msgstr ""
4912+
4913+#: ../../uaclient/messages/__init__.py:364
4914+#, python-brace-format
4915+msgid "Purging the {service} packages would uninstall the following kernel(s):"
4916+msgstr ""
4917+
4918+#: ../../uaclient/messages/__init__.py:367
4919+#, python-brace-format
4920+msgid "{kernel_version} is the current running kernel."
4921+msgstr ""
4922+
4923+#: ../../uaclient/messages/__init__.py:370
4924+msgid ""
4925+"No other valid Ubuntu kernel was found in the system.\n"
4926+"Removing the package would potentially make the system unbootable.\n"
4927+"Aborting.\n"
4928+msgstr ""
4929+
4930+#: ../../uaclient/messages/__init__.py:377
4931+msgid ""
4932+"If you cannot guarantee that other kernels in this system are bootable and\n"
4933+"working properly, *do not proceed*. You may end up with an unbootable "
4934+"system.\n"
4935+msgstr ""
4936+
4937+#: ../../uaclient/messages/__init__.py:386
4938+#, python-brace-format
4939+msgid ""
4940+"Failed to automatically attach to Ubuntu Pro services {num_attempts} "
4941+"time(s).\n"
4942+"The failure was due to: {reason}.\n"
4943+"The next attempt is scheduled for {next_run_datestring}.\n"
4944+"You can try manually with `sudo pro auto-attach`."
4945+msgstr ""
4946+
4947+#: ../../uaclient/messages/__init__.py:394
4948+#, python-brace-format
4949+msgid ""
4950+"Failed to automatically attach to Ubuntu Pro services {num_attempts} "
4951+"time(s).\n"
4952+"The most recent failure was due to: {reason}.\n"
4953+"Try re-launching the instance or report this issue by running `ubuntu-bug "
4954+"ubuntu-advantage-tools`\n"
4955+"You can try manually with `sudo pro auto-attach`."
4956+msgstr ""
4957+
4958+#: ../../uaclient/messages/__init__.py:402
4959+#, python-brace-format
4960+msgid ""
4961+"Canonical servers did not recognize this machine as Ubuntu Pro: \"{detail}\""
4962+msgstr ""
4963+
4964+#: ../../uaclient/messages/__init__.py:406
4965+msgid "Canonical servers did not recognize this image as Ubuntu Pro"
4966+msgstr ""
4967+
4968+#: ../../uaclient/messages/__init__.py:408
4969+#, python-brace-format
4970+msgid "the pro lock was held by pid {pid}"
4971+msgstr ""
4972+
4973+#: ../../uaclient/messages/__init__.py:410
4974+#, python-brace-format
4975+msgid "an error from Canonical servers: \"{error_msg}\""
4976+msgstr ""
4977+
4978+#: ../../uaclient/messages/__init__.py:412
4979+msgid "a connectivity error"
4980+msgstr ""
4981+
4982+#: ../../uaclient/messages/__init__.py:413
4983+#, python-brace-format
4984+msgid "an error while reaching {url}"
4985+msgstr ""
4986+
4987+#: ../../uaclient/messages/__init__.py:414
4988+msgid "an unknown error"
4989+msgstr ""
4990+
4991+#: ../../uaclient/messages/__init__.py:418
4992+#, python-brace-format
4993+msgid "Due to contract refresh, '{service}' is now disabled."
4994+msgstr ""
4995+
4996+#: ../../uaclient/messages/__init__.py:421
4997+#, python-brace-format
4998+msgid ""
4999+"Unable to disable '{service}' as recommended during contract refresh. "
5000+"Service is still active. See `pro status`"
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to status/vote changes: